Package com.vladsch.flexmark.util.data
Class DataSet
- java.lang.Object
-
- com.vladsch.flexmark.util.data.DataSet
-
- All Implemented Interfaces:
DataHolder
,MutableDataSetter
- Direct Known Subclasses:
MutableDataSet
,ScopedDataSet
public class DataSet extends java.lang.Object implements DataHolder
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.HashMap<DataKeyBase<?>,java.lang.Object>
dataSet
private static java.util.ArrayList<DataKeyAggregator>
ourDataKeyAggregators
-
Fields inherited from interface com.vladsch.flexmark.util.data.DataHolder
NULL
-
-
Constructor Summary
Constructors Constructor Description DataSet()
DataSet(@Nullable DataHolder other)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description @NotNull DataHolder
aggregate()
Apply aggregate action to data and return resultstatic @NotNull DataHolder
aggregate(@Nullable DataHolder other, @Nullable DataHolder overrides)
Aggregate two sets of options by aggregating their aggregate action keys then applying those actions on the resulting collectionstatic @NotNull DataHolder
aggregateActions(@NotNull DataHolder other, @NotNull DataHolder overrides)
aggregate actions of two data sets, actions not appliedboolean
contains(@NotNull DataKeyBase<?> key)
boolean
equals(java.lang.Object o)
@NotNull java.util.Map<? extends DataKeyBase<?>,java.lang.Object>
getAll()
@NotNull java.util.Collection<? extends DataKeyBase<?>>
getKeys()
@Nullable java.lang.Object
getOrCompute(@NotNull DataKeyBase<?> key, @NotNull DataValueFactory<?> factory)
Get key if it exists or compute using supplierint
hashCode()
(package private) static boolean
invokeSetContains(@Nullable java.util.Set<java.lang.Class<?>> invokeSet, @NotNull DataKeyAggregator aggregator)
(package private) static boolean
isAggregatorRegistered(@NotNull DataKeyAggregator keyAggregator)
static @NotNull DataSet
merge(@NotNull DataHolder... dataHolders)
static void
registerDataKeyAggregator(@NotNull DataKeyAggregator keyAggregator)
@NotNull DataSet
toDataSet()
@NotNull DataSet
toImmutable()
@NotNull MutableDataSet
toMutable()
java.lang.String
toString()
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.vladsch.flexmark.util.data.DataHolder
get, setIn
-
-
-
-
Field Detail
-
dataSet
protected final java.util.HashMap<DataKeyBase<?>,java.lang.Object> dataSet
-
ourDataKeyAggregators
private static final java.util.ArrayList<DataKeyAggregator> ourDataKeyAggregators
-
-
Constructor Detail
-
DataSet
public DataSet()
-
DataSet
public DataSet(@Nullable @Nullable DataHolder other)
-
-
Method Detail
-
aggregateActions
@NotNull public static @NotNull DataHolder aggregateActions(@NotNull @NotNull DataHolder other, @NotNull @NotNull DataHolder overrides)
aggregate actions of two data sets, actions not applied- Parameters:
other
- first set of optionsoverrides
- overrides on options- Returns:
- resulting options where aggregate action keys were aggregated but not applied
-
aggregate
@NotNull public @NotNull DataHolder aggregate()
Apply aggregate action to data and return result- Returns:
- resulting data holder
-
aggregate
@NotNull public static @NotNull DataHolder aggregate(@Nullable @Nullable DataHolder other, @Nullable @Nullable DataHolder overrides)
Aggregate two sets of options by aggregating their aggregate action keys then applying those actions on the resulting collection- Parameters:
other
- options with aggregate actions already applied, no aggregate action keys are expected or checkedoverrides
- overrides which may contain aggregate actions- Returns:
- resulting options with aggregate actions applied and removed from set
-
getAll
@NotNull public @NotNull java.util.Map<? extends DataKeyBase<?>,java.lang.Object> getAll()
- Specified by:
getAll
in interfaceDataHolder
-
getKeys
@NotNull public @NotNull java.util.Collection<? extends DataKeyBase<?>> getKeys()
- Specified by:
getKeys
in interfaceDataHolder
-
contains
public boolean contains(@NotNull @NotNull DataKeyBase<?> key)
- Specified by:
contains
in interfaceDataHolder
-
getOrCompute
@Nullable public @Nullable java.lang.Object getOrCompute(@NotNull @NotNull DataKeyBase<?> key, @NotNull @NotNull DataValueFactory<?> factory)
Description copied from interface:DataHolder
Get key if it exists or compute using supplierMethod used by DataKey classes to access data.
NOTE: MutableDataHolders will compute an absent key and add it to its dataSet. DataHolders will return computed value but not change contained dataSet because they are immutable. So value will be computed every time it is requested.
- Specified by:
getOrCompute
in interfaceDataHolder
- Parameters:
key
- data keyfactory
- factory taking this data holder and computing/providing default value- Returns:
- object value for the key
-
merge
@NotNull public static @NotNull DataSet merge(@NotNull @NotNull DataHolder... dataHolders)
-
toMutable
@NotNull public @NotNull MutableDataSet toMutable()
- Specified by:
toMutable
in interfaceDataHolder
-
toImmutable
@NotNull public @NotNull DataSet toImmutable()
- Specified by:
toImmutable
in interfaceDataHolder
-
toDataSet
@NotNull public @NotNull DataSet toDataSet()
- Specified by:
toDataSet
in interfaceDataHolder
-
registerDataKeyAggregator
public static void registerDataKeyAggregator(@NotNull @NotNull DataKeyAggregator keyAggregator)
-
isAggregatorRegistered
static boolean isAggregatorRegistered(@NotNull @NotNull DataKeyAggregator keyAggregator)
-
invokeSetContains
static boolean invokeSetContains(@Nullable @Nullable java.util.Set<java.lang.Class<?>> invokeSet, @NotNull @NotNull DataKeyAggregator aggregator)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
-