Class ConfigureSource<SECTION extends ConfigureSection,ORIGINAL,SELF extends ConfigureSource<SECTION,ORIGINAL,SELF>>
- java.lang.Object
-
- cc.carm.lib.configuration.source.section.ConfigureSource<SECTION,ORIGINAL,SELF>
-
- Type Parameters:
SECTION- The type of the root section.ORIGINAL- The original configuration object.SELF- The type of the source itself, for further implement support.
- All Implemented Interfaces:
ConfigureSection
public abstract class ConfigureSource<SECTION extends ConfigureSection,ORIGINAL,SELF extends ConfigureSource<SECTION,ORIGINAL,SELF>> extends java.lang.Object implements ConfigureSection
ConfigureSource represents the source of configuration, which can be a file, a database, or any other source.- See Also:
ConfigureSection
-
-
Field Summary
Fields Modifier and Type Field Description protected @NotNull ConfigurationHolder<? extends SELF>holderprotected longlastUpdateMillis
-
Constructor Summary
Constructors Modifier Constructor Description protectedConfigureSource(@NotNull ConfigurationHolder<? extends SELF> holder, long lastUpdateMillis)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description @NotNull ConfigureSectioncreateSection(@NotNull java.lang.String path, @NotNull java.util.Map<?,?> data)Creates a newConfigureSectionwith specified values.@Nullable java.lang.Objectget(@NotNull java.lang.String path)Get the origin value of the path.@NotNull @UnmodifiableView java.util.Set<java.lang.String>getKeys(boolean deep)Gets a set containing all keys in this section.longgetLastUpdateMillis()@NotNull java.util.Map<java.lang.String,java.lang.Object>getValues(boolean deep)Gets a set containing all values in this section.@NotNull ConfigurationHolder<? extends SELF>holder()booleanisExpired(long parsedTime)protected abstract voidonReload()Reload the configuration.abstract ORIGINALoriginal()@Nullable ConfigureSectionparent()Source also represents the root section, so it has no parent@NotNull java.lang.Stringpath()Get the current section's path fromConfigureSection.parent()of this section.charpathSeparator()Get the path separator for the section.voidreload()voidremove(@NotNull java.lang.String path)Removes the value at the given path.abstract voidsave()Save the whole configuration.abstract SECTIONsection()protected abstract SELFself()voidset(@NotNull java.lang.String path, @Nullable java.lang.Object value)Sets the value at the given path.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface cc.carm.lib.configuration.source.section.ConfigureSection
childPath, computeSection, computeSection, computeSection, computeSection, contains, containsValue, createSection, createSection, createSection, forEach, fullPath, get, get, get, get, getBoolean, getBoolean, getByte, getByte, getByteList, getChar, getChar, getCharList, getCollection, getDouble, getDouble, getDoubleList, getFloat, getFloat, getFloatList, getInt, getInt, getIntegerList, getList, getList, getLong, getLong, getLongList, getSection, getShort, getShort, getString, getString, getStringList, isBoolean, isByte, isChar, isDouble, isEmpty, isFloat, isInt, isList, isLong, isRoot, isSection, isShort, isString, isType, keys, size, stream, stream, stream, values
-
-
-
-
Field Detail
-
holder
@NotNull protected final @NotNull ConfigurationHolder<? extends SELF extends ConfigureSource<SECTION,ORIGINAL,SELF>> holder
-
lastUpdateMillis
protected long lastUpdateMillis
-
-
Constructor Detail
-
ConfigureSource
protected ConfigureSource(@NotNull @NotNull ConfigurationHolder<? extends SELF> holder, long lastUpdateMillis)
-
-
Method Detail
-
holder
@NotNull public @NotNull ConfigurationHolder<? extends SELF> holder()
-
reload
public void reload() throws java.lang.Exception- Throws:
java.lang.Exception
-
self
@Contract(pure=true) @Internal @NotNull protected abstract SELF self()
-
original
@Contract(pure=true) @NotNull public abstract ORIGINAL original()
- Returns:
- The original configuration object.
-
section
@NotNull public abstract SECTION section()
- Returns:
- The root
ConfigureSection, which represents the entire configuration.
-
save
public abstract void save() throws java.lang.ExceptionSave the whole configuration.- Throws:
java.lang.Exception- If any error occurs while saving.
-
onReload
@OverrideOnly protected abstract void onReload() throws java.lang.ExceptionReload the configuration.
This used for implementation, for external usage, usereload()- Throws:
java.lang.Exception- If any error occurs while reloading.
-
pathSeparator
public char pathSeparator()
Description copied from interface:ConfigureSectionGet the path separator for the section.- Specified by:
pathSeparatorin interfaceConfigureSection- Returns:
- The path separator
-
getLastUpdateMillis
public long getLastUpdateMillis()
-
isExpired
public boolean isExpired(long parsedTime)
-
parent
@Contract(pure=true, value="->null") @Nullable public @Nullable ConfigureSection parent()Source also represents the root section, so it has no parent- Specified by:
parentin interfaceConfigureSection- Returns:
- null
-
path
@NotNull public @NotNull java.lang.String path()
Description copied from interface:ConfigureSectionGet the current section's path fromConfigureSection.parent()of this section.- Specified by:
pathin interfaceConfigureSection- Returns:
- The current path of this section, if
ConfigureSection.isRoot(), return empty string.
-
getValues
@NotNull public @NotNull java.util.Map<java.lang.String,java.lang.Object> getValues(boolean deep)
Description copied from interface:ConfigureSectionGets a set containing all values in this section.If deep is set to true, then this will contain all the keys within any child
ConfigureSections (and their children paths).If deep is set to false, then this will contain only the keys of any direct children, and not their own children.
- Specified by:
getValuesin interfaceConfigureSection- Parameters:
deep- Whether to get a deep list.- Returns:
- Map of data values contained within this Section.
-
getKeys
@NotNull public @NotNull @UnmodifiableView java.util.Set<java.lang.String> getKeys(boolean deep)
Description copied from interface:ConfigureSectionGets a set containing all keys in this section.If deep is set to true, then this will contain all the keys within any child
ConfigureSections (and their children paths).If deep is set to false, then this will contain only the keys of any direct children, and not their own children.
- Specified by:
getKeysin interfaceConfigureSection- Parameters:
deep- Whether to get a deep list.- Returns:
- Set of keys contained within this Section.
-
createSection
@NotNull public @NotNull ConfigureSection createSection(@NotNull @NotNull java.lang.String path, @NotNull @NotNull java.util.Map<?,?> data)
Description copied from interface:ConfigureSectionCreates a newConfigureSectionwith specified values.The
ConfigureSection.parent()of the new section will be this section.This section will not be saved until
ConfigureSection.set(String, Object)is called.If you want to create and use a section and set it to this section, use
ConfigureSection.computeSection(String).- Specified by:
createSectionin interfaceConfigureSectiondata- The data to be used to create section.- Returns:
- Newly created section
-
set
public void set(@NotNull @NotNull java.lang.String path, @Nullable @Nullable java.lang.Object value)Description copied from interface:ConfigureSectionSets the value at the given path.Null values will be kept, if you want to remove a value use
ConfigureSection.remove(String)Path separator depends on holder'sStandardOptions.PATH_SEPARATOR- Specified by:
setin interfaceConfigureSection- Parameters:
path- The path to set the value at.value- The value to set.
-
remove
public void remove(@NotNull @NotNull java.lang.String path)Description copied from interface:ConfigureSectionRemoves the value at the given path.Path separator depends on holder's
StandardOptions.PATH_SEPARATOR- Specified by:
removein interfaceConfigureSection- Parameters:
path- The path to remove the value at.
-
get
@Nullable public @Nullable java.lang.Object get(@NotNull @NotNull java.lang.String path)Description copied from interface:ConfigureSectionGet the origin value of the path.- Specified by:
getin interfaceConfigureSection- Parameters:
path- The path to get the value from.- Returns:
- The value at the path, or null if not found.
-
-