Package cc.carm.lib.configuration.source
Class ConfigurationFactory<SOURCE extends ConfigureSource<?,?,SOURCE>,HOLDER extends ConfigurationHolder<SOURCE>,SELF>
- java.lang.Object
-
- cc.carm.lib.configuration.source.ConfigurationFactory<SOURCE,HOLDER,SELF>
-
- Type Parameters:
SOURCE
- TheConfigureSource
typeHOLDER
- TheConfigurationHolder
type.SELF
- Self builder, for further implement support.
public abstract class ConfigurationFactory<SOURCE extends ConfigureSource<?,?,SOURCE>,HOLDER extends ConfigurationHolder<SOURCE>,SELF> extends java.lang.Object
ConfigurationFactory, used to create configuration holder.
-
-
Field Summary
Fields Modifier and Type Field Description protected ValueAdapterRegistry
adapters
protected ConfigurationInitializer
initializer
protected @NotNull java.util.Map<java.lang.String,ConfigurationMetaHolder>
metadata
protected ConfigurationOptionHolder
options
-
Constructor Summary
Constructors Constructor Description ConfigurationFactory()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description <T> SELF
adapter(@NotNull ValueAdapter<T> adapter)
<FROM,TO>
SELFadapter(@NotNull ValueType<FROM> from, @NotNull ValueType<TO> to, @NotNull DataFunction<FROM,TO> parser, @NotNull DataFunction<TO,FROM> serializer)
<T> SELF
adapter(@NotNull ValueType<T> type, @NotNull ValueParser<T> parser)
<T> SELF
adapter(@NotNull ValueType<T> type, @NotNull ValueSerializer<T> serializer)
<T> SELF
adapter(@NotNull ValueType<T> type, @NotNull ValueSerializer<T> serializer, @NotNull ValueParser<T> parser)
<FROM,TO>
SELFadapter(@NotNull java.lang.Class<FROM> from, @NotNull java.lang.Class<TO> to, @NotNull DataFunction<FROM,TO> parser, @NotNull DataFunction<TO,FROM> serializer)
<T> SELF
adapter(@NotNull java.lang.Class<T> type, @NotNull ValueSerializer<T> serializer, @NotNull ValueParser<T> parser)
SELF
adapter(java.util.function.Consumer<ValueAdapterRegistry> adapterRegistryConsumer)
SELF
adapters(ValueAdapterRegistry adapters)
abstract HOLDER
build()
Build the configuration holder.SELF
initializer(ConfigurationInitializer initializer)
SELF
initializer(java.util.function.Consumer<ConfigurationInitializer> initializerConsumer)
<M,A extends java.lang.annotation.Annotation>
SELFmetaAnnotation(@NotNull java.lang.Class<A> annotation, @NotNull ConfigurationMetadata<M> metadata, @NotNull java.util.function.Function<A,M> extractor)
Register a new annotation for metadata to the configuration loaderSELF
metadata(@NotNull java.util.function.Consumer<java.util.Map<java.lang.String,ConfigurationMetaHolder>> handler)
SELF
metadata(@NotNull java.util.Map<java.lang.String,ConfigurationMetaHolder> metadata)
SELF
metadata(@Nullable java.lang.String path, @NotNull ConfigurationMetaHolder meta)
SELF
metadata(@Nullable java.lang.String path, @NotNull java.util.function.Consumer<ConfigurationMetaHolder> handler)
<O> SELF
option(ConfigurationOption<O> type, java.util.function.Consumer<O> modifier)
<O> SELF
option(ConfigurationOption<O> type, java.util.function.Supplier<O> value)
<O> SELF
option(ConfigurationOption<O> type, O value)
SELF
option(java.util.function.Consumer<ConfigurationOptionHolder> modifier)
SELF
options(ConfigurationOptionHolder options)
SELF
pathGenerator(PathGenerator generator)
Supply the base path generator for this configuration holderprotected abstract SELF
self()
-
-
-
Field Detail
-
adapters
protected ValueAdapterRegistry adapters
-
options
protected ConfigurationOptionHolder options
-
metadata
@NotNull protected @NotNull java.util.Map<java.lang.String,ConfigurationMetaHolder> metadata
-
initializer
protected ConfigurationInitializer initializer
-
-
Method Detail
-
self
protected abstract SELF self()
-
adapters
public SELF adapters(ValueAdapterRegistry adapters)
-
adapter
public SELF adapter(java.util.function.Consumer<ValueAdapterRegistry> adapterRegistryConsumer)
-
adapter
public <T> SELF adapter(@NotNull @NotNull ValueAdapter<T> adapter)
-
adapter
public <T> SELF adapter(@NotNull @NotNull ValueType<T> type, @NotNull @NotNull ValueSerializer<T> serializer)
-
adapter
public <T> SELF adapter(@NotNull @NotNull ValueType<T> type, @NotNull @NotNull ValueParser<T> parser)
-
adapter
public <FROM,TO> SELF adapter(@NotNull @NotNull java.lang.Class<FROM> from, @NotNull @NotNull java.lang.Class<TO> to, @NotNull @NotNull DataFunction<FROM,TO> parser, @NotNull @NotNull DataFunction<TO,FROM> serializer)
-
adapter
public <FROM,TO> SELF adapter(@NotNull @NotNull ValueType<FROM> from, @NotNull @NotNull ValueType<TO> to, @NotNull @NotNull DataFunction<FROM,TO> parser, @NotNull @NotNull DataFunction<TO,FROM> serializer)
-
adapter
public <T> SELF adapter(@NotNull @NotNull ValueType<T> type, @NotNull @NotNull ValueSerializer<T> serializer, @NotNull @NotNull ValueParser<T> parser)
-
adapter
public <T> SELF adapter(@NotNull @NotNull java.lang.Class<T> type, @NotNull @NotNull ValueSerializer<T> serializer, @NotNull @NotNull ValueParser<T> parser)
-
options
public SELF options(ConfigurationOptionHolder options)
-
option
public SELF option(java.util.function.Consumer<ConfigurationOptionHolder> modifier)
-
option
public <O> SELF option(ConfigurationOption<O> type, O value)
-
option
public <O> SELF option(ConfigurationOption<O> type, java.util.function.Supplier<O> value)
-
option
public <O> SELF option(ConfigurationOption<O> type, java.util.function.Consumer<O> modifier)
-
metadata
public SELF metadata(@NotNull @NotNull java.util.Map<java.lang.String,ConfigurationMetaHolder> metadata)
-
metadata
public SELF metadata(@NotNull @NotNull java.util.function.Consumer<java.util.Map<java.lang.String,ConfigurationMetaHolder>> handler)
-
metadata
public SELF metadata(@Nullable @Nullable java.lang.String path, @NotNull @NotNull ConfigurationMetaHolder meta)
-
metadata
public SELF metadata(@Nullable @Nullable java.lang.String path, @NotNull @NotNull java.util.function.Consumer<ConfigurationMetaHolder> handler)
-
initializer
public SELF initializer(ConfigurationInitializer initializer)
-
initializer
public SELF initializer(java.util.function.Consumer<ConfigurationInitializer> initializerConsumer)
-
pathGenerator
public SELF pathGenerator(PathGenerator generator)
Supply the base path generator for this configuration holder- Parameters:
generator
-PathGenerator
- Returns:
- this
-
metaAnnotation
public <M,A extends java.lang.annotation.Annotation> SELF metaAnnotation(@NotNull @NotNull java.lang.Class<A> annotation, @NotNull @NotNull ConfigurationMetadata<M> metadata, @NotNull @NotNull java.util.function.Function<A,M> extractor)
Register a new annotation for metadata to the configuration loader- Type Parameters:
M
- The metadata typeA
- The annotation type- Parameters:
annotation
- TheAnnotation
metadata
- TheConfigurationMetadata
typeextractor
- TheFunction
to extract the metadata from the annotation- Returns:
- this
-
build
@NotNull public abstract HOLDER build()
Build the configuration holder.- Returns:
- The configuration holder
-
-