Class BuilderBase<T extends 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 Details

  • Constructor Details

    • BuilderBase

      protected BuilderBase(@Nullable @Nullable DataHolder options)
    • BuilderBase

      protected BuilderBase()
  • Method Details

    • removeApiPoint

      protected abstract void removeApiPoint(@NotNull @NotNull 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 Collection<? extends Extension> extensions)
      Parameters:
      extensions - extensions to load
      Returns:
      this
    • build

      @NotNull public abstract @NotNull Object build()
      Returns:
      actual instance the builder is supposed to build
    • addExtensionApiPoint

      protected void addExtensionApiPoint(@NotNull @NotNull 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:
      set in interface MutableDataHolder
      Overrides:
      set in class MutableDataSet
      Type Parameters:
      V - data type of the data referred by the key
      Parameters:
      key - data key
      value - 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: MutableDataHolder
      Store the given value for the key
      Specified by:
      set in interface MutableDataHolder
      Overrides:
      set in class MutableDataSet
      Type Parameters:
      V - data type of the data referred by the key
      Parameters:
      key - data key
      value - 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 data
      Get 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 Collection<Class<? extends Extension>> excludeExtensions)
      Remove given extensions from options[EXTENSIONS] data key.
      Parameters:
      options - options where EXTENSIONS key is set
      excludeExtensions - 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.