Class BuilderBase<T extends BuilderBase<T>>
- java.lang.Object
-
- com.vladsch.flexmark.util.data.DataSet
-
- com.vladsch.flexmark.util.data.MutableDataSet
-
- com.vladsch.flexmark.util.builder.BuilderBase<T>
-
- All Implemented Interfaces:
DataHolder,MutableDataHolder,MutableDataSetter
- Direct Known Subclasses:
FlexmarkHtmlConverter.Builder,Formatter.Builder,HtmlRenderer.Builder,Parser.Builder
public abstract class BuilderBase<T extends BuilderBase<T>> extends MutableDataSet
-
-
Field Summary
Fields Modifier and Type Field Description private ExtensioncurrentExtensionprivate java.util.HashMap<java.lang.Class<?>,java.util.HashSet<java.lang.Object>>extensionApiPointsprivate java.util.HashSet<java.lang.Class<?>>loadedExtensions-
Fields inherited from interface com.vladsch.flexmark.util.data.DataHolder
NULL
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedBuilderBase()protectedBuilderBase(@Nullable DataHolder options)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected voidaddExtensionApiPoint(@NotNull java.lang.Object apiPoint)Call to add extension API point to trackabstract @NotNull java.lang.Objectbuild()Textensions(@NotNull java.util.Collection<? extends Extension> extensions)<V> Vget(@NotNull DataKey<V> key)Deprecated.use key.get(dataHolder) instead, which will do the same thing an carries nullable information for the dataprotected abstract booleanloadExtension(@NotNull Extension extension)Load extension if it is validprotected voidloadExtensions()protected abstract voidpreloadExtension(@NotNull Extension extension)Preload operation for extension, perform any data config and other operation needed for loading extensionprotected abstract voidremoveApiPoint(@NotNull java.lang.Object apiPoint)Remove apiPoint from state informationstatic DataHolderremoveExtensions(@NotNull DataHolder options, @NotNull java.util.Collection<java.lang.Class<? extends Extension>> excludeExtensions)Remove given extensions from options[EXTENSIONS] data key.<V> @NotNull MutableDataSetset(@NotNull DataKey<V> key, V value)Tracks keys set by extension initialization<V> @NotNull MutableDataSetset(@NotNull NullableDataKey<V> key, V value)Store the given value for the key-
Methods inherited from class com.vladsch.flexmark.util.data.MutableDataSet
clear, getOrCompute, merge, remove, setAll, setFrom, setIn, toDataSet, toImmutable, toMutable
-
Methods inherited from class com.vladsch.flexmark.util.data.DataSet
aggregate, aggregate, aggregateActions, contains, equals, getAll, getKeys, hashCode, registerDataKeyAggregator, 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
contains, getAll, getKeys
-
-
-
-
Field Detail
-
loadedExtensions
private final java.util.HashSet<java.lang.Class<?>> loadedExtensions
-
extensionApiPoints
private final java.util.HashMap<java.lang.Class<?>,java.util.HashSet<java.lang.Object>> extensionApiPoints
-
currentExtension
private Extension currentExtension
-
-
Constructor Detail
-
BuilderBase
protected BuilderBase(@Nullable @Nullable DataHolder options)
-
BuilderBase
protected BuilderBase()
-
-
Method Detail
-
removeApiPoint
protected abstract void removeApiPoint(@NotNull @NotNull java.lang.Object apiPoint)Remove apiPoint from state information- Parameters:
apiPoint- api point object
-
preloadExtension
protected abstract void preloadExtension(@NotNull @NotNull Extension extension)Preload operation for extension, perform any data config and other operation needed for loading extension- Parameters:
extension- to preload
-
loadExtension
protected abstract boolean loadExtension(@NotNull @NotNull Extension extension)Load extension if it is valid- Parameters:
extension- to load- Returns:
- true if extension was loaded
-
extensions
@NotNull public final T extensions(@NotNull @NotNull java.util.Collection<? extends Extension> extensions)
- Parameters:
extensions- extensions to load- Returns:
this
-
build
@NotNull public abstract @NotNull java.lang.Object build()
- Returns:
- actual instance the builder is supposed to build
-
addExtensionApiPoint
protected void addExtensionApiPoint(@NotNull @NotNull java.lang.Object apiPoint)Call to add extension API point to track- Parameters:
apiPoint- point registered
-
set
@NotNull public <V> @NotNull MutableDataSet set(@NotNull @NotNull DataKey<V> key, @NotNull V value)
Tracks keys set by extension initialization- Specified by:
setin interfaceMutableDataHolder- Overrides:
setin classMutableDataSet- Type Parameters:
V- data type of the data referred by the key- Parameters:
key- data keyvalue- value for the key- Returns:
- builder
-
set
@NotNull public <V> @NotNull MutableDataSet set(@NotNull @NotNull NullableDataKey<V> key, @Nullable V value)
Description copied from interface:MutableDataHolderStore the given value for the key- Specified by:
setin interfaceMutableDataHolder- Overrides:
setin classMutableDataSet- Type Parameters:
V- data type of the data referred by the key- Parameters:
key- data keyvalue- value to store- Returns:
- mutable data holder for chained calls
-
get
@Deprecated public <V> V get(@NotNull @NotNull DataKey<V> key)Deprecated.use key.get(dataHolder) instead, which will do the same thing an carries nullable information for the dataGet the given key, if it does not exist then use the key's factory to create a new value and put it into the collection so that the following get of the same key will find a value- Type Parameters:
V- Type returned by key- Parameters:
key- data key- Returns:
- return stored value or newly created value
-
loadExtensions
protected void loadExtensions()
-
removeExtensions
public static DataHolder removeExtensions(@NotNull @NotNull DataHolder options, @NotNull @NotNull java.util.Collection<java.lang.Class<? extends Extension>> excludeExtensions)
Remove given extensions from options[EXTENSIONS] data key.- Parameters:
options- options where EXTENSIONS key is setexcludeExtensions- collection of extension classes to remove from extensions- Returns:
- modified options if removed and options were immutable or the same options if nothing to remove or options were mutable.
-
-