public class MemorySection extends Object implements ConfigurationSection
ConfigurationSection
that is stored in memory.Modifier | Constructor and Description |
---|---|
protected |
MemorySection()
Creates an empty MemorySection for use as a root
Configuration
section. |
protected |
MemorySection(ConfigurationSection parent,
String path)
Creates an empty MemorySection with the specified parent and path.
|
Modifier and Type | Method and Description |
---|---|
void |
addDefault(String path,
Object value)
Sets the default value in the root at the given path as provided.
|
boolean |
contains(String path)
Checks if this
ConfigurationSection contains the given path. |
static String |
createPath(ConfigurationSection section,
String key)
Creates a full path to the given
ConfigurationSection from its
root Configuration . |
static String |
createPath(ConfigurationSection section,
String key,
ConfigurationSection relativeTo)
Creates a relative path to the given
ConfigurationSection from
the given relative section. |
ConfigurationSection |
createSection(String path)
Creates an empty
ConfigurationSection at the specified path. |
ConfigurationSection |
createSection(String path,
Map<?,?> map)
Creates a
ConfigurationSection at the specified path, with
specified values. |
Object |
get(String path)
Gets the requested Object by path.
|
Object |
get(String path,
Object def)
Gets the requested Object by path, returning a default value if not
found.
|
boolean |
getBoolean(String path)
Gets the requested boolean by path.
|
boolean |
getBoolean(String path,
boolean def)
Gets the requested boolean by path, returning a default value if not
found.
|
List<Boolean> |
getBooleanList(String path)
Gets the requested List of Boolean by path.
|
List<Byte> |
getByteList(String path)
Gets the requested List of Byte by path.
|
List<Character> |
getCharacterList(String path)
Gets the requested List of Character by path.
|
ConfigurationSection |
getConfigurationSection(String path)
Gets the requested ConfigurationSection by path.
|
String |
getCurrentPath()
Gets the path of this
ConfigurationSection from its root Configuration
For any Configuration themselves, this will return an empty
string. |
protected Object |
getDefault(String path) |
ConfigurationSection |
getDefaultSection()
Gets the equivalent
ConfigurationSection from the default
Configuration defined in ConfigurationSection.getRoot() . |
double |
getDouble(String path)
Gets the requested double by path.
|
double |
getDouble(String path,
double def)
Gets the requested double by path, returning a default value if not
found.
|
List<Double> |
getDoubleList(String path)
Gets the requested List of Double by path.
|
List<Float> |
getFloatList(String path)
Gets the requested List of Float by path.
|
int |
getInt(String path)
Gets the requested int by path.
|
int |
getInt(String path,
int def)
Gets the requested int by path, returning a default value if not found.
|
List<Integer> |
getIntegerList(String path)
Gets the requested List of Integer by path.
|
Set<String> |
getKeys(boolean deep)
Gets a set containing all keys in this section.
|
List<?> |
getList(String path)
Gets the requested List by path.
|
List<?> |
getList(String path,
List<?> def)
Gets the requested List by path, returning a default value if not
found.
|
long |
getLong(String path)
Gets the requested long by path.
|
long |
getLong(String path,
long def)
Gets the requested long by path, returning a default value if not
found.
|
List<Long> |
getLongList(String path)
Gets the requested List of Long by path.
|
List<Map<?,?>> |
getMapList(String path)
Gets the requested List of Maps by path.
|
Map<String,Object> |
getMapValues(boolean deep)
Gets a Map containing all keys and their values for this section.
|
String |
getName()
Gets the name of this individual
ConfigurationSection , in the
path. |
ConfigurationSection |
getParent()
Gets the parent
ConfigurationSection that directly contains
this ConfigurationSection . |
Configuration |
getRoot()
Gets the root
Configuration that contains this ConfigurationSection
For any Configuration themselves, this will return its own
object. |
List<Short> |
getShortList(String path)
Gets the requested List of Short by path.
|
String |
getString(String path)
Gets the requested String by path.
|
String |
getString(String path,
String def)
Gets the requested String by path, returning a default value if not
found.
|
List<String> |
getStringList(String path)
Gets the requested List of String by path.
|
Map<String,Object> |
getValues(boolean deep)
Gets a Map containing all keys and their values for this section.
|
boolean |
isBoolean(String path)
Checks if the specified path is a boolean.
|
boolean |
isConfigurationSection(String path)
Checks if the specified path is a ConfigurationSection.
|
boolean |
isDouble(String path)
Checks if the specified path is a double.
|
boolean |
isEmpty()
Gets if this configuration section is empty.
|
boolean |
isInt(String path)
Checks if the specified path is an int.
|
boolean |
isList(String path)
Checks if the specified path is a List.
|
boolean |
isLong(String path)
Checks if the specified path is a long.
|
protected boolean |
isPrimitiveWrapper(Object input) |
boolean |
isSet(String path)
Checks if this
ConfigurationSection has a value set for the
given path. |
boolean |
isString(String path)
Checks if the specified path is a String.
|
protected void |
mapChildrenKeys(Set<String> output,
ConfigurationSection section,
boolean deep) |
protected void |
mapChildrenValues(Map<String,Object> output,
ConfigurationSection section,
boolean deep) |
void |
set(String path,
Object value)
Sets the specified path to the given value.
|
int |
size()
Gets the size of this configuration section.
|
String |
toString() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
remove
protected MemorySection()
Configuration
section.
Note that calling this without being yourself a Configuration
will throw an exception!
IllegalStateException
- Thrown if this is not a Configuration
root.protected MemorySection(ConfigurationSection parent, String path)
parent
- Parent section that contains this own section.path
- Path that you may access this section from via the root
Configuration
.IllegalArgumentException
- Thrown is parent or path is null, or
if parent contains no root Configuration.public static String createPath(ConfigurationSection section, String key)
ConfigurationSection
from its
root Configuration
.
You may use this method for any given ConfigurationSection
, not
only MemorySection
.
section
- Section to create a path for.key
- Name of the specified section.public static String createPath(ConfigurationSection section, String key, ConfigurationSection relativeTo)
ConfigurationSection
from
the given relative section.
You may use this method for any given ConfigurationSection
, not
only MemorySection
.
section
- Section to create a path for.key
- Name of the specified section.relativeTo
- Section to create the path relative to.public Set<String> getKeys(boolean deep)
ConfigurationSection
If deep is set to true, then this will contain all the keys within any
child ConfigurationSection
s (and their children, etc). These
will be in a valid path notation for you to use.
If deep is set to false, then this will contain only the keys of any direct children, and not their own children.
getKeys
in interface ConfigurationSection
deep
- Whether or not to get a deep list, as opposed to a shallow
list.public Map<String,Object> getValues(boolean deep)
ConfigurationSection
If deep is set to true, then this will contain all the keys and values
within any child ConfigurationSection
s (and their children,
etc). These keys will be in a valid path notation for you to use.
If deep is set to false, then this will contain only the keys and values of any direct children, and not their own children.
getValues
in interface ConfigurationSection
deep
- Whether or not to get a deep list, as opposed to a shallow
list.public Map<String,Object> getMapValues(boolean deep)
ConfigurationSection
If deep is set to true, then this will contain all the keys and values
within any child Map
s (and their children, etc).
These keys will be in a valid path notation for you to use.
If deep is set to false, then this will contain only the keys and values of any direct children, and not their own children.
getMapValues
in interface ConfigurationSection
deep
- Whether or not to get a deep list, as opposed to a shallow
list.public boolean contains(String path)
ConfigurationSection
ConfigurationSection
contains the given path.
If the value for the requested path does not exist but a default value has been specified, this will return true.
contains
in interface ConfigurationSection
path
- Path to check for existence.public boolean isSet(String path)
ConfigurationSection
ConfigurationSection
has a value set for the
given path.
If the value for the requested path does not exist but a default value has been specified, this will still return false.
isSet
in interface ConfigurationSection
path
- Path to check for existence.public int size()
ConfigurationSection
size
in interface ConfigurationSection
public boolean isEmpty()
ConfigurationSection
isEmpty
in interface ConfigurationSection
public String getCurrentPath()
ConfigurationSection
ConfigurationSection
from its root Configuration
For any Configuration
themselves, this will return an empty
string.
If the section is no longer contained within its root for any reason, such as being replaced with a different value, this may return null.
To retrieve the single name of this section, that is, the final part of
the path returned by this method, you may use ConfigurationSection.getName()
.
getCurrentPath
in interface ConfigurationSection
public String getName()
ConfigurationSection
ConfigurationSection
, in the
path.
This will always be the final part of ConfigurationSection.getCurrentPath()
, unless
the section is orphaned.
getName
in interface ConfigurationSection
public Configuration getRoot()
ConfigurationSection
Configuration
that contains this ConfigurationSection
For any Configuration
themselves, this will return its own
object.
If the section is no longer contained within its root for any reason, such as being replaced with a different value, this may return null.
getRoot
in interface ConfigurationSection
public ConfigurationSection getParent()
ConfigurationSection
ConfigurationSection
that directly contains
this ConfigurationSection
.
For any Configuration
themselves, this will return null.
If the section is no longer contained within its parent for any reason, such as being replaced with a different value, this may return null.
getParent
in interface ConfigurationSection
public Object get(String path)
ConfigurationSection
If the Object does not exist but a default value has been specified, this will return the default value. If the Object does not exist and no default value was specified, this will return null.
get
in interface ConfigurationSection
path
- Path of the Object to get.public Object get(String path, Object def)
ConfigurationSection
If the Object does not exist then the specified default value will
returned regardless of if a default has been identified in the root
Configuration
.
get
in interface ConfigurationSection
path
- Path of the Object to get.def
- The default value to return if the path is not found.public void set(String path, Object value)
ConfigurationSection
If value is null, the entry will be removed. Any existing entry will be replaced, regardless of what the new value is.
Some implementations may have limitations on what you may store. See
their individual javadocs for details. No implementations should allow
you to store Configuration
s or ConfigurationSection
s,
please use ConfigurationSection.createSection(String)
for that.
set
in interface ConfigurationSection
path
- Path of the object to set.value
- New value to set the path to.public ConfigurationSection createSection(String path)
ConfigurationSection
ConfigurationSection
at the specified path.
Any value that was previously set at this path will be overwritten. If
the previous value was itself a ConfigurationSection
, it will
be orphaned.
createSection
in interface ConfigurationSection
path
- Path to create the section at.public String getString(String path)
ConfigurationSection
If the String does not exist but a default value has been specified, this will return the default value. If the String does not exist and no default value was specified, this will return null.
getString
in interface ConfigurationSection
path
- Path of the String to get.public String getString(String path, String def)
ConfigurationSection
If the String does not exist then the specified default value will
returned regardless of if a default has been identified in the root
Configuration
.
getString
in interface ConfigurationSection
path
- Path of the String to get.def
- The default value to return if the path is not found or is
not a String.public boolean isString(String path)
ConfigurationSection
If the path exists but is not a String, this will return false. If the path does not exist, this will return false. If the path does not exist but a default value has been specified, this will check if that default value is a String and return appropriately.
isString
in interface ConfigurationSection
path
- Path of the String to check.public int getInt(String path)
ConfigurationSection
If the int does not exist but a default value has been specified, this will return the default value. If the int does not exist and no default value was specified, this will return 0.
getInt
in interface ConfigurationSection
path
- Path of the int to get.public int getInt(String path, int def)
ConfigurationSection
If the int does not exist then the specified default value will
returned regardless of if a default has been identified in the root
Configuration
.
getInt
in interface ConfigurationSection
path
- Path of the int to get.def
- The default value to return if the path is not found or is
not an int.public boolean isInt(String path)
ConfigurationSection
If the path exists but is not a int, this will return false. If the path does not exist, this will return false. If the path does not exist but a default value has been specified, this will check if that default value is a int and return appropriately.
isInt
in interface ConfigurationSection
path
- Path of the int to check.public boolean getBoolean(String path)
ConfigurationSection
If the boolean does not exist but a default value has been specified, this will return the default value. If the boolean does not exist and no default value was specified, this will return false.
getBoolean
in interface ConfigurationSection
path
- Path of the boolean to get.public boolean getBoolean(String path, boolean def)
ConfigurationSection
If the boolean does not exist then the specified default value will
returned regardless of if a default has been identified in the root
Configuration
.
getBoolean
in interface ConfigurationSection
path
- Path of the boolean to get.def
- The default value to return if the path is not found or is
not a boolean.public boolean isBoolean(String path)
ConfigurationSection
If the path exists but is not a boolean, this will return false. If the path does not exist, this will return false. If the path does not exist but a default value has been specified, this will check if that default value is a boolean and return appropriately.
isBoolean
in interface ConfigurationSection
path
- Path of the boolean to check.public double getDouble(String path)
ConfigurationSection
If the double does not exist but a default value has been specified, this will return the default value. If the double does not exist and no default value was specified, this will return 0.
getDouble
in interface ConfigurationSection
path
- Path of the double to get.public double getDouble(String path, double def)
ConfigurationSection
If the double does not exist then the specified default value will
returned regardless of if a default has been identified in the root
Configuration
.
getDouble
in interface ConfigurationSection
path
- Path of the double to get.def
- The default value to return if the path is not found or is
not a double.public boolean isDouble(String path)
ConfigurationSection
If the path exists but is not a double, this will return false. If the path does not exist, this will return false. If the path does not exist but a default value has been specified, this will check if that default value is a double and return appropriately.
isDouble
in interface ConfigurationSection
path
- Path of the double to check.public long getLong(String path)
ConfigurationSection
If the long does not exist but a default value has been specified, this will return the default value. If the long does not exist and no default value was specified, this will return 0.
getLong
in interface ConfigurationSection
path
- Path of the long to get.public long getLong(String path, long def)
ConfigurationSection
If the long does not exist then the specified default value will
returned regardless of if a default has been identified in the root
Configuration
.
getLong
in interface ConfigurationSection
path
- Path of the long to get.def
- The default value to return if the path is not found or is
not a long.public boolean isLong(String path)
ConfigurationSection
If the path exists but is not a long, this will return false. If the path does not exist, this will return false. If the path does not exist but a default value has been specified, this will check if that default value is a long and return appropriately.
isLong
in interface ConfigurationSection
path
- Path of the long to check.public List<?> getList(String path)
ConfigurationSection
If the List does not exist but a default value has been specified, this will return the default value. If the List does not exist and no default value was specified, this will return null.
getList
in interface ConfigurationSection
path
- Path of the List to get.public boolean isList(String path)
ConfigurationSection
If the path exists but is not a List, this will return false. If the path does not exist, this will return false. If the path does not exist but a default value has been specified, this will check if that default value is a List and return appropriately.
isList
in interface ConfigurationSection
path
- Path of the List to check.public List<String> getStringList(String path)
ConfigurationSection
If the List does not exist but a default value has been specified, this will return the default value. If the List does not exist and no default value was specified, this will return an empty List.
This method will attempt to cast any values into a String if possible, but may miss any values out if they are not compatible.
getStringList
in interface ConfigurationSection
path
- Path of the List to get.public List<Integer> getIntegerList(String path)
ConfigurationSection
If the List does not exist but a default value has been specified, this will return the default value. If the List does not exist and no default value was specified, this will return an empty List.
This method will attempt to cast any values into a Integer if possible, but may miss any values out if they are not compatible.
getIntegerList
in interface ConfigurationSection
path
- Path of the List to get.public List<Boolean> getBooleanList(String path)
ConfigurationSection
If the List does not exist but a default value has been specified, this will return the default value. If the List does not exist and no default value was specified, this will return an empty List.
This method will attempt to cast any values into a Boolean if possible, but may miss any values out if they are not compatible.
getBooleanList
in interface ConfigurationSection
path
- Path of the List to get.public List<Double> getDoubleList(String path)
ConfigurationSection
If the List does not exist but a default value has been specified, this will return the default value. If the List does not exist and no default value was specified, this will return an empty List.
This method will attempt to cast any values into a Double if possible, but may miss any values out if they are not compatible.
getDoubleList
in interface ConfigurationSection
path
- Path of the List to get.public List<Float> getFloatList(String path)
ConfigurationSection
If the List does not exist but a default value has been specified, this will return the default value. If the List does not exist and no default value was specified, this will return an empty List.
This method will attempt to cast any values into a Float if possible, but may miss any values out if they are not compatible.
getFloatList
in interface ConfigurationSection
path
- Path of the List to get.public List<Long> getLongList(String path)
ConfigurationSection
If the List does not exist but a default value has been specified, this will return the default value. If the List does not exist and no default value was specified, this will return an empty List.
This method will attempt to cast any values into a Long if possible, but may miss any values out if they are not compatible.
getLongList
in interface ConfigurationSection
path
- Path of the List to get.public List<Byte> getByteList(String path)
ConfigurationSection
If the List does not exist but a default value has been specified, this will return the default value. If the List does not exist and no default value was specified, this will return an empty List.
This method will attempt to cast any values into a Byte if possible, but may miss any values out if they are not compatible.
getByteList
in interface ConfigurationSection
path
- Path of the List to get.public List<Character> getCharacterList(String path)
ConfigurationSection
If the List does not exist but a default value has been specified, this will return the default value. If the List does not exist and no default value was specified, this will return an empty List.
This method will attempt to cast any values into a Character if possible, but may miss any values out if they are not compatible.
getCharacterList
in interface ConfigurationSection
path
- Path of the List to get.public List<Short> getShortList(String path)
ConfigurationSection
If the List does not exist but a default value has been specified, this will return the default value. If the List does not exist and no default value was specified, this will return an empty List.
This method will attempt to cast any values into a Short if possible, but may miss any values out if they are not compatible.
getShortList
in interface ConfigurationSection
path
- Path of the List to get.public List<Map<?,?>> getMapList(String path)
ConfigurationSection
If the List does not exist but a default value has been specified, this will return the default value. If the List does not exist and no default value was specified, this will return an empty List.
This method will attempt to cast any values into a Map if possible, but may miss any values out if they are not compatible.
getMapList
in interface ConfigurationSection
path
- Path of the List to get.public ConfigurationSection getConfigurationSection(String path)
ConfigurationSection
If the ConfigurationSection does not exist but a default value has been specified, this will return the default value. If the ConfigurationSection does not exist and no default value was specified, this will return null.
getConfigurationSection
in interface ConfigurationSection
path
- Path of the ConfigurationSection to get.public boolean isConfigurationSection(String path)
ConfigurationSection
If the path exists but is not a ConfigurationSection, this will return false. If the path does not exist, this will return false. If the path does not exist but a default value has been specified, this will check if that default value is a ConfigurationSection and return appropriately.
isConfigurationSection
in interface ConfigurationSection
path
- Path of the ConfigurationSection to check.public ConfigurationSection getDefaultSection()
ConfigurationSection
ConfigurationSection
from the default
Configuration
defined in ConfigurationSection.getRoot()
.
If the root contains no defaults, or the defaults doesn't contain a
value for this path, or the value at this path is not a ConfigurationSection
then this will return null.
getDefaultSection
in interface ConfigurationSection
public void addDefault(String path, Object value)
ConfigurationSection
If no source Configuration
was provided as a default
collection, then a new MemoryConfiguration
will be created to
hold the new default value.
If value is null, the value will be removed from the default Configuration source.
If the value as returned by ConfigurationSection.getDefaultSection()
is null, then
this will create a new section at the path, replacing anything that may
have existed there previously.
addDefault
in interface ConfigurationSection
path
- Path of the value to set.value
- Value to set the default to.public ConfigurationSection createSection(String path, Map<?,?> map)
ConfigurationSection
ConfigurationSection
at the specified path, with
specified values.
Any value that was previously set at this path will be overwritten. If
the previous value was itself a ConfigurationSection
, it will
be orphaned.
createSection
in interface ConfigurationSection
path
- Path to create the section at.map
- The values to used.public List<?> getList(String path, List<?> def)
ConfigurationSection
If the List does not exist then the specified default value will
returned regardless of if a default has been identified in the root
Configuration
.
getList
in interface ConfigurationSection
path
- Path of the List to get.def
- The default value to return if the path is not found or is
not a List.protected boolean isPrimitiveWrapper(Object input)
protected void mapChildrenKeys(Set<String> output, ConfigurationSection section, boolean deep)
protected void mapChildrenValues(Map<String,Object> output, ConfigurationSection section, boolean deep)
Copyright © 2023. All rights reserved.