Package org.bukkit.configuration

# Class MemorySection

java.lang.Object
org.bukkit.configuration.MemorySection

All Implemented Interfaces:
  `ConfigurationSection`

Direct Known Subclasses:
  `MemoryConfiguration`

public class MemorySection extends Object implements ConfigurationSection
A type of `ConfigurationSection` that is stored in memory.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected final Map<String,Object>`
`map`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`MemorySection()`
Creates an empty MemorySection for use as a root `Configuration` section.
`protected`
`MemorySection(@NotNull ConfigurationSection parent, @NotNull String path)`
Creates an empty MemorySection with the specified parent and path.

## Method Summary

Modifier and Type
Method
Description
`void`
`addDefault(@NotNull String path, @Nullable Object value)`
Sets the default value in the root at the given path as provided.
`boolean`
`contains(@NotNull String path)`
Checks if this `ConfigurationSection` contains the given path.
`boolean`
`contains(@NotNull String path, boolean ignoreDefault)`
Checks if this `ConfigurationSection` contains the given path.
`static @NotNull String`
`createPath(@NotNull ConfigurationSection section, @Nullable String key)`
Creates a full path to the given `ConfigurationSection` from its root `Configuration`.
`static @NotNull String`
`createPath(@NotNull ConfigurationSection section, @Nullable String key, @Nullable ConfigurationSection relativeTo)`
Creates a relative path to the given `ConfigurationSection` from the given relative section.
`@NotNull ConfigurationSection`
`createSection(@NotNull String path)`
Creates an empty `ConfigurationSection` at the specified path.
`@NotNull ConfigurationSection`
`createSection(@NotNull String path, @NotNull Map<?,?> map)`
Creates a `ConfigurationSection` at the specified path, with specified values.
`@Nullable Object`
`get(@NotNull String path)`
Gets the requested Object by path.
`@Nullable Object`
`get(@NotNull String path, @Nullable Object def)`
Gets the requested Object by path, returning a default value if not found.
`boolean`
`getBoolean(@NotNull String path)`
Gets the requested boolean by path.
`boolean`
`getBoolean(@NotNull String path, boolean def)`
Gets the requested boolean by path, returning a default value if not found.
`@NotNull List<Boolean>`
`getBooleanList(@NotNull String path)`
Gets the requested List of Boolean by path.
`@NotNull List<Byte>`
`getByteList(@NotNull String path)`
Gets the requested List of Byte by path.
`@NotNull List<Character>`
`getCharacterList(@NotNull String path)`
Gets the requested List of Character by path.
`@Nullable Color`
`getColor(@NotNull String path)`
Gets the requested Color by path.
`@Nullable Color`
`getColor(@NotNull String path, @Nullable Color def)`
Gets the requested `Color` by path, returning a default value if not found.
`@Nullable ConfigurationSection`
`getConfigurationSection(@NotNull String path)`
Gets the requested ConfigurationSection by path.
`@NotNull String`
`getCurrentPath()`
Gets the path of this `ConfigurationSection` from its root `Configuration`
`protected @Nullable Object`
`getDefault(@NotNull String path)`
`@Nullable ConfigurationSection`
`getDefaultSection()`
Gets the equivalent `ConfigurationSection` from the default `Configuration` defined in `ConfigurationSection.getRoot()`.
`double`
`getDouble(@NotNull String path)`
Gets the requested double by path.
`double`
`getDouble(@NotNull String path, double def)`
Gets the requested double by path, returning a default value if not found.
`@NotNull List<Double>`
`getDoubleList(@NotNull String path)`
Gets the requested List of Double by path.
`@NotNull List<Float>`
`getFloatList(@NotNull String path)`
Gets the requested List of Float by path.
`int`
`getInt(@NotNull String path)`
Gets the requested int by path.
`int`
`getInt(@NotNull String path, int def)`
Gets the requested int by path, returning a default value if not found.
`@NotNull List<Integer>`
`getIntegerList(@NotNull String path)`
Gets the requested List of Integer by path.
`@Nullable ItemStack`
`getItemStack(@NotNull String path)`
Gets the requested ItemStack by path.
`@Nullable ItemStack`
`getItemStack(@NotNull String path, @Nullable ItemStack def)`
Gets the requested `ItemStack` by path, returning a default value if not found.
`@NotNull Set<String>`
`getKeys(boolean deep)`
Gets a set containing all keys in this section.
`@Nullable List<?>`
`getList(@NotNull String path)`
Gets the requested List by path.
`@Nullable List<?>`
`getList(@NotNull String path, @Nullable List<?> def)`
Gets the requested List by path, returning a default value if not found.
`@Nullable Location`
`getLocation(@NotNull String path)`
Gets the requested Location by path.
`@Nullable Location`
`getLocation(@NotNull String path, @Nullable Location def)`
Gets the requested `Location` by path, returning a default value if not found.
`long`
`getLong(@NotNull String path)`
Gets the requested long by path.
`long`
`getLong(@NotNull String path, long def)`
Gets the requested long by path, returning a default value if not found.
`@NotNull List<Long>`
`getLongList(@NotNull String path)`
Gets the requested List of Long by path.
`@NotNull List<Map<?,?>>`
`getMapList(@NotNull String path)`
Gets the requested List of Maps by path.
`@NotNull String`
`getName()`
Gets the name of this individual `ConfigurationSection`, in the path.
`<T> T`
`getObject(@NotNull String path, @NotNull Class<T> clazz)`
Gets the requested object at the given path.
`<T> T`
`getObject(@NotNull String path, @NotNull Class<T> clazz, T def)`
Gets the requested object at the given path, returning a default value if not found 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`.
`@Nullable OfflinePlayer`
`getOfflinePlayer(@NotNull String path)`
Gets the requested OfflinePlayer by path.
`@Nullable OfflinePlayer`
`getOfflinePlayer(@NotNull String path, @Nullable OfflinePlayer def)`
Gets the requested `OfflinePlayer` by path, returning a default value if not found.
`@Nullable ConfigurationSection`
`getParent()`
Gets the parent `ConfigurationSection` that directly contains this `ConfigurationSection`.
`@Nullable Configuration`
`getRoot()`
Gets the root `Configuration` that contains this `ConfigurationSection`
`<T extends ConfigurationSerializable>
T`
`getSerializable(@NotNull String path, @NotNull Class<T> clazz)`
Gets the requested `ConfigurationSerializable` object at the given path.
`<T extends ConfigurationSerializable>
T`
`getSerializable(@NotNull String path, @NotNull Class<T> clazz, T def)`
Gets the requested `ConfigurationSerializable` object at the given path, returning a default value if not found 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`.
`@NotNull List<Short>`
`getShortList(@NotNull String path)`
Gets the requested List of Short by path.
`@Nullable String`
`getString(@NotNull String path)`
Gets the requested String by path.
`@Nullable String`
`getString(@NotNull String path, @Nullable String def)`
Gets the requested String by path, returning a default value if not found.
`@NotNull List<String>`
`getStringList(@NotNull String path)`
Gets the requested List of String by path.
`@NotNull Map<String,Object>`
`getValues(boolean deep)`
Gets a Map containing all keys and their values for this section.
`@Nullable Vector`
`getVector(@NotNull String path)`
Gets the requested Vector by path.
`@Nullable Vector`
`getVector(@NotNull String path, @Nullable Vector def)`
Gets the requested `Vector` by path, returning a default value if not found.
`boolean`
`isBoolean(@NotNull String path)`
Checks if the specified path is a boolean.
`boolean`
`isColor(@NotNull String path)`
Checks if the specified path is a Color.
`boolean`
`isConfigurationSection(@NotNull String path)`
Checks if the specified path is a ConfigurationSection.
`boolean`
`isDouble(@NotNull String path)`
Checks if the specified path is a double.
`boolean`
`isInt(@NotNull String path)`
Checks if the specified path is an int.
`boolean`
`isItemStack(@NotNull String path)`
Checks if the specified path is an ItemStack.
`boolean`
`isList(@NotNull String path)`
Checks if the specified path is a List.
`boolean`
`isLocation(@NotNull String path)`
Checks if the specified path is a Location.
`boolean`
`isLong(@NotNull String path)`
Checks if the specified path is a long.
`boolean`
`isOfflinePlayer(@NotNull String path)`
Checks if the specified path is an OfflinePlayer.
`protected boolean`
`isPrimitiveWrapper(@Nullable Object input)`
`boolean`
`isSet(@NotNull String path)`
Checks if this `ConfigurationSection` has a value set for the given path.
`boolean`
`isString(@NotNull String path)`
Checks if the specified path is a String.
`boolean`
`isVector(@NotNull String path)`
Checks if the specified path is a Vector.
`protected void`
`mapChildrenKeys(@NotNull Set<String> output, @NotNull ConfigurationSection section, boolean deep)`
`protected void`
`mapChildrenValues(@NotNull Map<String,Object> output, @NotNull ConfigurationSection section, boolean deep)`
`void`
`set(@NotNull String path, @Nullable Object value)`
Sets the specified path to the given value.
`String`
`toString()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Field Details

### map

protected final Map<String,Object> map

## Constructor Details

### MemorySection

protected MemorySection()
Creates an empty MemorySection for use as a root `Configuration` section.

Note that calling this without being yourself a `Configuration` will throw an exception!

Throws:
  `IllegalStateException` - Thrown if this is not a `Configuration` root.

### MemorySection

protected MemorySection(@NotNull @NotNull ConfigurationSection parent, @NotNull @NotNull String path)
Creates an empty MemorySection with the specified parent and path.

Parameters:
  `parent` - Parent section that contains this own section.
  `path` - Path that you may access this section from via the root `Configuration`.
Throws:
  `IllegalArgumentException` - Thrown is parent or path is null, or if parent contains no root Configuration.

## Method Details

### getKeys

@NotNull public @NotNull Set<String> getKeys(boolean deep)
Description copied from interface: `ConfigurationSection`
Gets a set containing all keys in this section.

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.

Specified by:
  `getKeys` in interface `ConfigurationSection`
Parameters:
  `deep` - Whether or not to get a deep list, as opposed to a shallow list.
Returns:
  Set of keys contained within this ConfigurationSection.

### getValues

@NotNull public @NotNull Map<String,Object> getValues(boolean deep)
Description copied from interface: `ConfigurationSection`
Gets a Map containing all keys and their values for this section.

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.

Specified by:
  `getValues` in interface `ConfigurationSection`
Parameters:
  `deep` - Whether or not to get a deep list, as opposed to a shallow list.
Returns:
  Map of keys and values of this section.

### contains

public boolean contains(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Checks if this `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.

Specified by:
  `contains` in interface `ConfigurationSection`
Parameters:
  `path` - Path to check for existence.
Returns:
  True if this section contains the requested path, either via default or being set.

### contains

public boolean contains(@NotNull @NotNull String path, boolean ignoreDefault)
Description copied from interface: `ConfigurationSection`
Checks if this `ConfigurationSection` contains the given path.

If the value for the requested path does not exist, the boolean parameter of true has been specified, a default value for the path exists, this will return true.

If a boolean parameter of false has been specified, true will only be returned if there is a set value for the specified path.

Specified by:
  `contains` in interface `ConfigurationSection`
Parameters:
  `path` - Path to check for existence.
  `ignoreDefault` - Whether or not to ignore if a default value for the specified path exists.
Returns:
  True if this section contains the requested path, or if a default value exist and the boolean parameter for this method is true.

### isSet

public boolean isSet(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Checks if this `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.

Specified by:
  `isSet` in interface `ConfigurationSection`
Parameters:
  `path` - Path to check for existence.
Returns:
  True if this section contains the requested path, regardless of having a default.

### getCurrentPath

@NotNull public @NotNull String getCurrentPath()
Description copied from interface: `ConfigurationSection`
Gets the path of this `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()`.

Specified by:
  `getCurrentPath` in interface `ConfigurationSection`
Returns:
  Path of this section relative to its root

### getName

@NotNull public @NotNull String getName()
Description copied from interface: `ConfigurationSection`
Gets the name of this individual `ConfigurationSection`, in the path.

This will always be the final part of `ConfigurationSection.getCurrentPath()`, unless the section is orphaned.

Specified by:
  `getName` in interface `ConfigurationSection`
Returns:
  Name of this section

### getRoot

@Nullable public @Nullable Configuration getRoot()
Description copied from interface: `ConfigurationSection`
Gets the root `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.

Specified by:
  `getRoot` in interface `ConfigurationSection`
Returns:
  Root configuration containing this section.

### getParent

@Nullable public @Nullable ConfigurationSection getParent()
Description copied from interface: `ConfigurationSection`
Gets the parent `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.

Specified by:
  `getParent` in interface `ConfigurationSection`
Returns:
  Parent section containing this section.

### addDefault

public void addDefault(@NotNull @NotNull String path, @Nullable @Nullable Object value)
Description copied from interface: `ConfigurationSection`
Sets the default value in the root at the given path as provided.

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.

Specified by:
  `addDefault` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the value to set.
  `value` - Value to set the default to.

### getDefaultSection

@Nullable public @Nullable ConfigurationSection getDefaultSection()
Description copied from interface: `ConfigurationSection`
Gets the equivalent `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.

Specified by:
  `getDefaultSection` in interface `ConfigurationSection`
Returns:
  Equivalent section in root configuration

### set

public void set(@NotNull @NotNull String path, @Nullable @Nullable Object value)
Description copied from interface: `ConfigurationSection`
Sets the specified path to the given value.

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(java.lang.String)` for that.

Specified by:
  `set` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the object to set.
  `value` - New value to set the path to.

### get

@Nullable public @Nullable Object get(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Gets the requested Object by path.

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.

Specified by:
  `get` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the Object to get.
Returns:
  Requested Object.

### get

@Contract("_, !null -> !null") @Nullable public @Nullable Object get(@NotNull @NotNull String path, @Nullable @Nullable Object def)
Description copied from interface: `ConfigurationSection`
Gets the requested Object by path, returning a default value if not found.

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`.

Specified by:
  `get` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the Object to get.
  `def` - The default value to return if the path is not found.
Returns:
  Requested Object.

### createSection

@NotNull public @NotNull ConfigurationSection createSection(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Creates an empty `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.

Specified by:
  `createSection` in interface `ConfigurationSection`
Parameters:
  `path` - Path to create the section at.
Returns:
  Newly created section

### createSection

@NotNull public @NotNull ConfigurationSection createSection(@NotNull @NotNull String path, @NotNull @NotNull Map<?,?> map)
Description copied from interface: `ConfigurationSection`
Creates a `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.

Specified by:
  `createSection` in interface `ConfigurationSection`
Parameters:
  `path` - Path to create the section at.
  `map` - The values to used.
Returns:
  Newly created section

### getString

@Nullable public @Nullable String getString(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Gets the requested String by path.

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.

Specified by:
  `getString` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the String to get.
Returns:
  Requested String.

### getString

@Contract("_, !null -> !null") @Nullable public @Nullable String getString(@NotNull @NotNull String path, @Nullable @Nullable String def)
Description copied from interface: `ConfigurationSection`
Gets the requested String by path, returning a default value if not found.

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`.

Specified by:
  `getString` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the String to get.
  `def` - The default value to return if the path is not found or is not a String.
Returns:
  Requested String.

### isString

public boolean isString(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Checks if the specified path is a String.

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.

Specified by:
  `isString` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the String to check.
Returns:
  Whether or not the specified path is a String.

### getInt

public int getInt(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Gets the requested int by path.

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.

Specified by:
  `getInt` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the int to get.
Returns:
  Requested int.

### getInt

public int getInt(@NotNull @NotNull String path, int def)
Description copied from interface: `ConfigurationSection`
Gets the requested int by path, returning a default value if not found.

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`.

Specified by:
  `getInt` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the int to get.
  `def` - The default value to return if the path is not found or is not an int.
Returns:
  Requested int.

### isInt

public boolean isInt(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Checks if the specified path is an int.

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.

Specified by:
  `isInt` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the int to check.
Returns:
  Whether or not the specified path is an int.

### getBoolean

public boolean getBoolean(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Gets the requested boolean by path.

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.

Specified by:
  `getBoolean` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the boolean to get.
Returns:
  Requested boolean.

### getBoolean

public boolean getBoolean(@NotNull @NotNull String path, boolean def)
Description copied from interface: `ConfigurationSection`
Gets the requested boolean by path, returning a default value if not found.

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`.

Specified by:
  `getBoolean` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the boolean to get.
  `def` - The default value to return if the path is not found or is not a boolean.
Returns:
  Requested boolean.

### isBoolean

public boolean isBoolean(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Checks if the specified path is a boolean.

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.

Specified by:
  `isBoolean` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the boolean to check.
Returns:
  Whether or not the specified path is a boolean.

### getDouble

public double getDouble(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Gets the requested double by path.

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.

Specified by:
  `getDouble` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the double to get.
Returns:
  Requested double.

### getDouble

public double getDouble(@NotNull @NotNull String path, double def)
Description copied from interface: `ConfigurationSection`
Gets the requested double by path, returning a default value if not found.

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`.

Specified by:
  `getDouble` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the double to get.
  `def` - The default value to return if the path is not found or is not a double.
Returns:
  Requested double.

### isDouble

public boolean isDouble(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Checks if the specified path is a double.

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.

Specified by:
  `isDouble` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the double to check.
Returns:
  Whether or not the specified path is a double.

### getLong

public long getLong(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Gets the requested long by path.

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.

Specified by:
  `getLong` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the long to get.
Returns:
  Requested long.

### getLong

public long getLong(@NotNull @NotNull String path, long def)
Description copied from interface: `ConfigurationSection`
Gets the requested long by path, returning a default value if not found.

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`.

Specified by:
  `getLong` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the long to get.
  `def` - The default value to return if the path is not found or is not a long.
Returns:
  Requested long.

### isLong

public boolean isLong(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Checks if the specified path is a long.

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.

Specified by:
  `isLong` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the long to check.
Returns:
  Whether or not the specified path is a long.

### getList

@Nullable public @Nullable List<?> getList(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Gets the requested List by path.

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.

Specified by:
  `getList` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the List to get.
Returns:
  Requested List.

### getList

@Contract("_, !null -> !null") @Nullable public @Nullable List<?> getList(@NotNull @NotNull String path, @Nullable @Nullable List<?> def)
Description copied from interface: `ConfigurationSection`
Gets the requested List by path, returning a default value if not found.

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`.

Specified by:
  `getList` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the List to get.
  `def` - The default value to return if the path is not found or is not a List.
Returns:
  Requested List.

### isList

public boolean isList(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Checks if the specified path is a List.

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.

Specified by:
  `isList` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the List to check.
Returns:
  Whether or not the specified path is a List.

### getStringList

@NotNull public @NotNull List<String> getStringList(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Gets the requested List of String by path.

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.

Specified by:
  `getStringList` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the List to get.
Returns:
  Requested List of String.

### getIntegerList

@NotNull public @NotNull List<Integer> getIntegerList(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Gets the requested List of Integer by path.

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.

Specified by:
  `getIntegerList` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the List to get.
Returns:
  Requested List of Integer.

### getBooleanList

@NotNull public @NotNull List<Boolean> getBooleanList(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Gets the requested List of Boolean by path.

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.

Specified by:
  `getBooleanList` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the List to get.
Returns:
  Requested List of Boolean.

### getDoubleList

@NotNull public @NotNull List<Double> getDoubleList(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Gets the requested List of Double by path.

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.

Specified by:
  `getDoubleList` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the List to get.
Returns:
  Requested List of Double.

### getFloatList

@NotNull public @NotNull List<Float> getFloatList(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Gets the requested List of Float by path.

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.

Specified by:
  `getFloatList` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the List to get.
Returns:
  Requested List of Float.

### getLongList

@NotNull public @NotNull List<Long> getLongList(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Gets the requested List of Long by path.

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.

Specified by:
  `getLongList` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the List to get.
Returns:
  Requested List of Long.

### getByteList

@NotNull public @NotNull List<Byte> getByteList(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Gets the requested List of Byte by path.

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.

Specified by:
  `getByteList` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the List to get.
Returns:
  Requested List of Byte.

### getCharacterList

@NotNull public @NotNull List<Character> getCharacterList(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Gets the requested List of Character by path.

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.

Specified by:
  `getCharacterList` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the List to get.
Returns:
  Requested List of Character.

### getShortList

@NotNull public @NotNull List<Short> getShortList(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Gets the requested List of Short by path.

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.

Specified by:
  `getShortList` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the List to get.
Returns:
  Requested List of Short.

### getMapList

@NotNull public @NotNull List<Map<?,?>> getMapList(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Gets the requested List of Maps by path.

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.

Specified by:
  `getMapList` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the List to get.
Returns:
  Requested List of Maps.

### getObject

@Nullable public <T> T getObject(@NotNull @NotNull String path, @NotNull @NotNull Class<T> clazz)
Description copied from interface: `ConfigurationSection`
Gets the requested object at the given path. 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. Note: For example #getObject(path, String.class) is not equivalent to `#getString(path)` because `#getString(path)` converts internally all Objects to Strings. However, #getObject(path, Boolean.class) is equivalent to `#getBoolean(path)` for example.

Specified by:
  `getObject` in interface `ConfigurationSection`
Type Parameters:
  `T` - the type of the requested object
Parameters:
  `path` - the path to the object.
  `clazz` - the type of the requested object
Returns:
  Requested object

### getObject

@Contract("_, _, !null -> !null") @Nullable public <T> T getObject(@NotNull @NotNull String path, @NotNull @NotNull Class<T> clazz, @Nullable T def)
Description copied from interface: `ConfigurationSection`
Gets the requested object at the given path, returning a default value if not found 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`. Note: For example #getObject(path, String.class, def) is not equivalent to `#getString(path, def)` because `#getString(path, def)` converts internally all Objects to Strings. However, #getObject(path, Boolean.class, def) is equivalent to `#getBoolean(path, def)` for example.

Specified by:
  `getObject` in interface `ConfigurationSection`
Type Parameters:
  `T` - the type of the requested object
Parameters:
  `path` - the path to the object.
  `clazz` - the type of the requested object
  `def` - the default object to return if the object is not present at the path
Returns:
  Requested object

### getSerializable

@Nullable public <T extends ConfigurationSerializable> T getSerializable(@NotNull @NotNull String path, @NotNull @NotNull Class<T> clazz)
Description copied from interface: `ConfigurationSection`
Gets the requested `ConfigurationSerializable` object at the given path. 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.

Specified by:
  `getSerializable` in interface `ConfigurationSection`
Type Parameters:
  `T` - the type of `ConfigurationSerializable`
Parameters:
  `path` - the path to the object.
  `clazz` - the type of `ConfigurationSerializable`
Returns:
  Requested `ConfigurationSerializable` object

### getSerializable

@Contract("_, _, !null -> !null") @Nullable public <T extends ConfigurationSerializable> T getSerializable(@NotNull @NotNull String path, @NotNull @NotNull Class<T> clazz, @Nullable T def)
Description copied from interface: `ConfigurationSection`
Gets the requested `ConfigurationSerializable` object at the given path, returning a default value if not found 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`.

Specified by:
  `getSerializable` in interface `ConfigurationSection`
Type Parameters:
  `T` - the type of `ConfigurationSerializable`
Parameters:
  `path` - the path to the object.
  `clazz` - the type of `ConfigurationSerializable`
  `def` - the default object to return if the object is not present at the path
Returns:
  Requested `ConfigurationSerializable` object

### getVector

@Nullable public @Nullable Vector getVector(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Gets the requested Vector by path.

If the Vector does not exist but a default value has been specified, this will return the default value. If the Vector does not exist and no default value was specified, this will return null.

Specified by:
  `getVector` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the Vector to get.
Returns:
  Requested Vector.

### getVector

@Contract("_, !null -> !null") @Nullable public @Nullable Vector getVector(@NotNull @NotNull String path, @Nullable @Nullable Vector def)
Description copied from interface: `ConfigurationSection`
Gets the requested `Vector` by path, returning a default value if not found.

If the Vector does not exist then the specified default value will returned regardless of if a default has been identified in the root `Configuration`.

Specified by:
  `getVector` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the Vector to get.
  `def` - The default value to return if the path is not found or is not a Vector.
Returns:
  Requested Vector.

### isVector

public boolean isVector(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Checks if the specified path is a Vector.

If the path exists but is not a Vector, 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 Vector and return appropriately.

Specified by:
  `isVector` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the Vector to check.
Returns:
  Whether or not the specified path is a Vector.

### getOfflinePlayer

@Nullable public @Nullable OfflinePlayer getOfflinePlayer(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Gets the requested OfflinePlayer by path.

If the OfflinePlayer does not exist but a default value has been specified, this will return the default value. If the OfflinePlayer does not exist and no default value was specified, this will return null.

Specified by:
  `getOfflinePlayer` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the OfflinePlayer to get.
Returns:
  Requested OfflinePlayer.

### getOfflinePlayer

@Contract("_, !null -> !null") @Nullable public @Nullable OfflinePlayer getOfflinePlayer(@NotNull @NotNull String path, @Nullable @Nullable OfflinePlayer def)
Description copied from interface: `ConfigurationSection`
Gets the requested `OfflinePlayer` by path, returning a default value if not found.

If the OfflinePlayer does not exist then the specified default value will returned regardless of if a default has been identified in the root `Configuration`.

Specified by:
  `getOfflinePlayer` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the OfflinePlayer to get.
  `def` - The default value to return if the path is not found or is not an OfflinePlayer.
Returns:
  Requested OfflinePlayer.

### isOfflinePlayer

public boolean isOfflinePlayer(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Checks if the specified path is an OfflinePlayer.

If the path exists but is not a OfflinePlayer, 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 OfflinePlayer and return appropriately.

Specified by:
  `isOfflinePlayer` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the OfflinePlayer to check.
Returns:
  Whether or not the specified path is an OfflinePlayer.

### getItemStack

@Nullable public @Nullable ItemStack getItemStack(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Gets the requested ItemStack by path.

If the ItemStack does not exist but a default value has been specified, this will return the default value. If the ItemStack does not exist and no default value was specified, this will return null.

Specified by:
  `getItemStack` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the ItemStack to get.
Returns:
  Requested ItemStack.

### getItemStack

@Contract("_, !null -> !null") @Nullable public @Nullable ItemStack getItemStack(@NotNull @NotNull String path, @Nullable @Nullable ItemStack def)
Description copied from interface: `ConfigurationSection`
Gets the requested `ItemStack` by path, returning a default value if not found.

If the ItemStack does not exist then the specified default value will returned regardless of if a default has been identified in the root `Configuration`.

Specified by:
  `getItemStack` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the ItemStack to get.
  `def` - The default value to return if the path is not found or is not an ItemStack.
Returns:
  Requested ItemStack.

### isItemStack

public boolean isItemStack(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Checks if the specified path is an ItemStack.

If the path exists but is not a ItemStack, 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 ItemStack and return appropriately.

Specified by:
  `isItemStack` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the ItemStack to check.
Returns:
  Whether or not the specified path is an ItemStack.

### getColor

@Nullable public @Nullable Color getColor(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Gets the requested Color by path.

If the Color does not exist but a default value has been specified, this will return the default value. If the Color does not exist and no default value was specified, this will return null.

Specified by:
  `getColor` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the Color to get.
Returns:
  Requested Color.

### getColor

@Contract("_, !null -> !null") @Nullable public @Nullable Color getColor(@NotNull @NotNull String path, @Nullable @Nullable Color def)
Description copied from interface: `ConfigurationSection`
Gets the requested `Color` by path, returning a default value if not found.

If the Color does not exist then the specified default value will returned regardless of if a default has been identified in the root `Configuration`.

Specified by:
  `getColor` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the Color to get.
  `def` - The default value to return if the path is not found or is not a Color.
Returns:
  Requested Color.

### isColor

public boolean isColor(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Checks if the specified path is a Color.

If the path exists but is not a Color, 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 Color and return appropriately.

Specified by:
  `isColor` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the Color to check.
Returns:
  Whether or not the specified path is a Color.

### getLocation

@Nullable public @Nullable Location getLocation(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Gets the requested Location by path.

If the Location does not exist but a default value has been specified, this will return the default value. If the Location does not exist and no default value was specified, this will return null.

Specified by:
  `getLocation` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the Location to get.
Returns:
  Requested Location.

### getLocation

@Contract("_, !null -> !null") @Nullable public @Nullable Location getLocation(@NotNull @NotNull String path, @Nullable @Nullable Location def)
Description copied from interface: `ConfigurationSection`
Gets the requested `Location` by path, returning a default value if not found.

If the Location does not exist then the specified default value will returned regardless of if a default has been identified in the root `Configuration`.

Specified by:
  `getLocation` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the Location to get.
  `def` - The default value to return if the path is not found or is not a Location.
Returns:
  Requested Location.

### isLocation

public boolean isLocation(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Checks if the specified path is a Location.

If the path exists but is not a Location, 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 Location and return appropriately.

Specified by:
  `isLocation` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the Location to check.
Returns:
  Whether or not the specified path is a Location.

### getConfigurationSection

@Nullable public @Nullable ConfigurationSection getConfigurationSection(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Gets the requested ConfigurationSection by path.

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.

Specified by:
  `getConfigurationSection` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the ConfigurationSection to get.
Returns:
  Requested ConfigurationSection.

### isConfigurationSection

public boolean isConfigurationSection(@NotNull @NotNull String path)
Description copied from interface: `ConfigurationSection`
Checks if the specified path is a 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.

Specified by:
  `isConfigurationSection` in interface `ConfigurationSection`
Parameters:
  `path` - Path of the ConfigurationSection to check.
Returns:
  Whether or not the specified path is a ConfigurationSection.

### isPrimitiveWrapper

protected boolean isPrimitiveWrapper(@Nullable @Nullable Object input)

### getDefault

@Nullable protected @Nullable Object getDefault(@NotNull @NotNull String path)

### mapChildrenKeys

protected void mapChildrenKeys(@NotNull @NotNull Set<String> output, @NotNull @NotNull ConfigurationSection section, boolean deep)

### mapChildrenValues

protected void mapChildrenValues(@NotNull @NotNull Map<String,Object> output, @NotNull @NotNull ConfigurationSection section, boolean deep)

### createPath

@NotNull public static @NotNull String createPath(@NotNull @NotNull ConfigurationSection section, @Nullable @Nullable String key)
Creates a full path to the given `ConfigurationSection` from its root `Configuration`.

You may use this method for any given `ConfigurationSection`, not only `MemorySection`.

Parameters:
  `section` - Section to create a path for.
  `key` - Name of the specified section.
Returns:
  Full path of the section from its root.

### createPath

@NotNull public static @NotNull String createPath(@NotNull @NotNull ConfigurationSection section, @Nullable @Nullable String key, @Nullable @Nullable ConfigurationSection relativeTo)
Creates a relative path to the given `ConfigurationSection` from the given relative section.

You may use this method for any given `ConfigurationSection`, not only `MemorySection`.

Parameters:
  `section` - Section to create a path for.
  `key` - Name of the specified section.
  `relativeTo` - Section to create the path relative to.
Returns:
  Full path of the section from its root.

### toString

public String toString()

Overrides:
  `toString` in class `Object`