Class MemorySection

java.lang.Object
com.fastasyncworldedit.core.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 Details

  • 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(ConfigurationSection parent, 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

    • toDouble

      public static double toDouble(Object obj, double def)
    • toInt

      public static int toInt(Object obj, int def)
    • toLong

      public static long toLong(Object obj, long def)
    • createPath

      public static String createPath(ConfigurationSection section, 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

      public static String createPath(ConfigurationSection section, String key, 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.
    • getKeys

      public 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 ConfigurationSections (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

      public 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 ConfigurationSections (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(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.
    • isSet

      public boolean isSet(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

      public 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

      public 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

      public 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

      public 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(String path, 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

      public 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(String path, 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 javadoc for details. No implementations should allow you to store Configurations or ConfigurationSections, please use ConfigurationSection.createSection(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

      public Object get(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

      public Object get(String path, Object def)
      Description copied from interface: ConfigurationSection
      Gets the requested Object by a path, returning a default value if not found.

      If the Object does not exist then the specified default value will return 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

      public ConfigurationSection createSection(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

      public ConfigurationSection createSection(String path, 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

      public String getString(String path)
      Description copied from interface: ConfigurationSection
      Gets the requested String by a 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

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

      If the String does not exist then the specified default value will return 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(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(String path)
      Description copied from interface: ConfigurationSection
      Gets the requested int by a 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(String path, int def)
      Description copied from interface: ConfigurationSection
      Gets the requested int by a path, returning a default value if not found.

      If the int does not exist then the specified default value will return 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(String path)
      Description copied from interface: ConfigurationSection
      Checks if the specified path is an int.

      If the path exists but is not an 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 an 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(String path)
      Description copied from interface: ConfigurationSection
      Gets the requested boolean by a 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(String path, boolean def)
      Description copied from interface: ConfigurationSection
      Gets the requested boolean by a path, returning a default value if not found.

      If the boolean does not exist then the specified default value will return 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(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(String path)
      Description copied from interface: ConfigurationSection
      Gets the requested double by a 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(String path, double def)
      Description copied from interface: ConfigurationSection
      Gets the requested double by a path, returning a default value if not found.

      If the double does not exist then the specified default value will return 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(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(String path)
      Description copied from interface: ConfigurationSection
      Gets the requested long by a 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(String path, long def)
      Description copied from interface: ConfigurationSection
      Gets the requested long by a path, returning a default value if not found.

      If the long does not exist then the specified default value will return 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(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

      public List<?> getList(String path)
      Description copied from interface: ConfigurationSection
      Gets the requested List by a 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

      public List<?> getList(String path, List<?> def)
      Description copied from interface: ConfigurationSection
      Gets the requested List by a path, returning a default value if not found.

      If the List does not exist then the specified default value will return 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(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

      public List<String> getStringList(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

      public List<Integer> getIntegerList(String path)
      Description copied from interface: ConfigurationSection
      Gets the requested List of an Integer by a 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 an 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

      public List<Boolean> getBooleanList(String path)
      Description copied from interface: ConfigurationSection
      Gets the requested List of Boolean by a 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

      public List<Double> getDoubleList(String path)
      Description copied from interface: ConfigurationSection
      Gets the requested List of Double by a 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

      public List<Float> getFloatList(String path)
      Description copied from interface: ConfigurationSection
      Gets the requested List of Float by a 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

      public List<Long> getLongList(String path)
      Description copied from interface: ConfigurationSection
      Gets the requested List of Long by a 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

      public List<Byte> getByteList(String path)
      Description copied from interface: ConfigurationSection
      Gets the requested List of Byte by a 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

      public List<Character> getCharacterList(String path)
      Description copied from interface: ConfigurationSection
      Gets the requested List of Character by a 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

      public List<Short> getShortList(String path)
      Description copied from interface: ConfigurationSection
      Gets the requested List of Short by a 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

      public List<Map<?,?>> getMapList(String path)
      Description copied from interface: ConfigurationSection
      Gets the requested List of Maps by a 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.
    • getConfigurationSection

      public ConfigurationSection getConfigurationSection(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(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(Object input)
    • getDefault

      protected Object getDefault(String path)
    • mapChildrenKeys

      protected void mapChildrenKeys(Set<String> output, ConfigurationSection section, boolean deep)
    • mapChildrenValues

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

      public String toString()
      Overrides:
      toString in class Object