Class BuilderBase<T extends BuilderBase<T>>

    • Constructor Detail

      • BuilderBase

        protected BuilderBase​(@Nullable
                              DataHolder options)
      • BuilderBase

        protected BuilderBase()
    • Method Detail

      • removeApiPoint

        protected abstract void removeApiPoint​(@NotNull
                                               java.lang.Object apiPoint)
        Remove apiPoint from state information
        Parameters:
        apiPoint - api point object
      • preloadExtension

        protected abstract void preloadExtension​(@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
                                                 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
                                  java.util.Collection<? extends Extension> extensions)
        Parameters:
        extensions - extensions to load
        Returns:
        this
      • build

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

        protected void addExtensionApiPoint​(@NotNull
                                            java.lang.Object apiPoint)
        Call to add extension API point to track
        Parameters:
        apiPoint - point registered
      • set

        @NotNull
        public <V> MutableDataSet set​(@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> MutableDataSet set​(@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
                         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
                                                  DataHolder options,
                                                  @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 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.