Interface ConfigureSection

All Known Implementing Classes:
ConfigureSource

public interface ConfigureSection
Represents a section of a configuration.
Since:
4.0.0
Author:
Carm
  • Method Details

    • parent

      @Contract(pure=true) @Nullable @Nullable ConfigureSection parent()
      Gets the parent section of this section.

      For root sections, this will return null.

      Returns:
      Parent section, or null if this is a root section.
    • path

      @NotNull @NotNull String path()
      Get the current section's path from parent() of this section.
      Returns:
      The current path of this section, if isRoot(), return empty string.
    • fullPath

      @NotNull default @NotNull String fullPath()
      Get the full path of this section.
      Returns:
      The full path of this section, if isRoot(), return empty string.
    • pathSeparator

      default char pathSeparator()
      Get the path separator for the section.
      Returns:
      The path separator
    • isRoot

      @Contract(pure=true) default boolean isRoot()
      Gets if this section is a root section.
      Returns:
      True if this section is a root section, false otherwise.
    • isEmpty

      default boolean isEmpty()
      Gets if this section is empty.
      Returns:
      True if this section is empty, false otherwise.
    • size

      default int size(boolean deep)
      Gets the number of keys in this section.
      Returns:
      Number of keys in this section.
    • getKeys

      @NotNull default @NotNull @UnmodifiableView Set<String> getKeys(boolean deep)
      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 ConfigureSections (and their children paths).

      If deep is set to false, then this will contain only the keys of any direct children, and not their own children.

      Parameters:
      deep - Whether to get a deep list.
      Returns:
      Set of keys contained within this Section.
    • keys

      @NotNull default @NotNull @UnmodifiableView Set<String> keys()
      Gets a set containing all primary keys in this section.
      Returns:
      Set of keys contained within this Section.
    • getValues

      @NotNull @NotNull @UnmodifiableView Map<String,Object> getValues(boolean deep)
      Gets a set containing all values in this section.

      If deep is set to true, then this will contain all the keys within any child ConfigureSections (and their children paths).

      If deep is set to false, then this will contain only the keys of any direct children, and not their own children.

      Parameters:
      deep - Whether to get a deep list.
      Returns:
      Map of data values contained within this Section.
    • values

      @NotNull default @NotNull @UnmodifiableView Map<String,Object> values()
      Gets a set containing all key-values in this section.
      Returns:
      Map of data values contained within this Section.
      See Also:
    • asMap

      @NotNull @NotNull @UnmodifiableView Map<String,Object> asMap()
      Get this section as a map.

      In this map, child ConfigureSections will also be represented as Maps.

      Returns:
      Map of data values contained within this Section.
    • stream

      default Stream<Map.Entry<String,Object>> stream()
      Create a stream of all values in this section.
      Returns:
      Stream of all values in this section.
    • forEach

      default void forEach(@NotNull @NotNull BiConsumer<String,Object> action)
      Iterates over all key-values in this section (include child sections)
      Parameters:
      action - The action to apply to each key.
    • set

      void set(@NotNull @NotNull String path, @Nullable @Nullable Object value)
      Sets the value at the given path.

      Null values will be kept, if you want to remove a value use remove(String) Path separator depends on holder's StandardOptions.PATH_SEPARATOR

      Parameters:
      path - The path to set the value at.
      value - The value to set.
    • remove

      void remove(@NotNull @NotNull String path)
      Removes the value at the given path.

      Path separator depends on holder's StandardOptions.PATH_SEPARATOR

      Parameters:
      path - The path to remove the value at.
    • contains

      default boolean contains(@NotNull @NotNull String path)
      Check if the given path is present.

      Path separator depends on holder's StandardOptions.PATH_SEPARATOR

      Parameters:
      path - The path to check.
      Returns:
      True if the value is present, false otherwise.
    • containsValue

      default boolean containsValue(@NotNull @NotNull String path)
      Check if the value of given path is present.

      Path separator depends on holder's StandardOptions.PATH_SEPARATOR

      Parameters:
      path - The path to check.
      Returns:
      True if the value is present, false otherwise.
    • isType

      default <T> boolean isType(@NotNull @NotNull String path, @NotNull @NotNull Class<T> typeClass)
      Predicate the value of given path is specific type.
      Type Parameters:
      T - The type to check.
      Parameters:
      path - The path to check.
      typeClass - The type's class
      Returns:
      True if the value is present and is the correct type, false otherwise.
    • isList

      default boolean isList(@NotNull @NotNull String path)
      Predicate the value of given path is a List.
      Parameters:
      path - The path to check.
      Returns:
      True if the value is present and is a list, false otherwise.
    • getList

      @Nullable default @Nullable List<?> getList(@NotNull @NotNull String path)
      Get the value as a List from the specified path.
      Parameters:
      path - The path to get the List.
      Returns:
      The list if the path exists and is a list, otherwise null.
    • isSection

      default boolean isSection(@NotNull @NotNull String path)
      Predicate the value of given path is a ConfigureSection.
      Parameters:
      path - The path to check.
      Returns:
      True if the value is present and is a section, false otherwise.
    • getSection

      @Nullable default @Nullable ConfigureSection getSection(@NotNull @NotNull String path)
      Get the value as a ConfigureSection from the specified path.
      Parameters:
      path - The path to get the section.
      Returns:
      The section if the path exists and is a section, otherwise null.
    • createSection

      @NotNull @NotNull ConfigureSection createSection(@NotNull @NotNull String path, @NotNull @NotNull Map<?,?> data)
      Creates a new ConfigureSection with specified values.

      The parent() of the new section will be this section.

      This section will not be saved until set(String, Object) is called.

      If you want to create and use a section and set it to this section, use computeSection(String).

      Parameters:
      data - The data to be used to create section.
      Returns:
      Newly created section
    • createSection

      @NotNull default @NotNull ConfigureSection createSection(@NotNull @NotNull String path, @NotNull @NotNull Consumer<Map<String,Object>> data)
      Creates a new ConfigureSection with specified values.

      The parent() of the new section will be this section.

      Parameters:
      data - The data to be used to create section.
      Returns:
      Newly created section
    • createSection

      @NotNull default @NotNull ConfigureSection createSection(@NotNull @NotNull String path, @NotNull @NotNull Supplier<Map<String,Object>> data)
      Creates a new ConfigureSection with specified values.

      The parent() of the new section will be this section.

      Parameters:
      data - The data to be used to create section.
      Returns:
      Newly created section
    • createSection

      @NotNull default @NotNull ConfigureSection createSection(@NotNull @NotNull String path)
      Creates a new empty ConfigureSection.

      The parent() of the new section will be this section.

      Returns:
      Newly created section
    • computeSection

      @NotNull default @NotNull ConfigureSection computeSection(@NotNull @NotNull String path)
      Get or create a section at the given path.

      Any value previously set at this path will be replaced if it is not a section or will be returned if it is an exists ConfigureSection.

      Parameters:
      path - The path to get the section from.
      Returns:
      The section at the path, or a new section if it does not exist.
      See Also:
    • computeSection

      @NotNull default @NotNull ConfigureSection computeSection(@NotNull @NotNull String path, @NotNull @NotNull Map<?,?> data)
      Get or create a section at the given path.

      Any value previously set at this path will be replaced if it is not a section or will be returned if it is an exists ConfigureSection.

      Parameters:
      path - The path to get the section from.
      Returns:
      The section at the path, or a new section if it does not exist.
      See Also:
    • computeSection

      @NotNull default @NotNull ConfigureSection computeSection(@NotNull @NotNull String path, @NotNull @NotNull Consumer<Map<String,Object>> data)
      Get or create a section at the given path.

      Any value previously set at this path will be replaced if it is not a section or will be returned if it is an exists ConfigureSection.

      Parameters:
      path - The path to get the section from.
      Returns:
      The section at the path, or a new section if it does not exist.
      See Also:
    • computeSection

      @NotNull default @NotNull ConfigureSection computeSection(@NotNull @NotNull String path, @NotNull @NotNull Supplier<Map<String,Object>> data)
      Get or create a section at the given path.

      Any value previously set at this path will be replaced if it is not a section or will be returned if it is an exists ConfigureSection.

      Parameters:
      path - The path to get the section from.
      Returns:
      The section at the path, or a new section if it does not exist.
      See Also:
    • get

      @Nullable @Nullable Object get(@NotNull @NotNull String path)
      Get the origin value of the path.
      Parameters:
      path - The path to get the value from.
      Returns:
      The value at the path, or null if not found.
    • get

      @Nullable default <T> T get(@NotNull @NotNull String path, @NotNull @NotNull Class<T> type)
      Get the value of the path for specific type, if the path does not exist, return null.
      Type Parameters:
      T - The type of the value
      Parameters:
      path - The path to get the value from.
      type - The type class of the value
      Returns:
      The value at the path, or the default value if not found.
    • get

      @Nullable default <T> T get(@NotNull @NotNull String path, @NotNull @NotNull DataFunction<@Nullable Object,T> parser)
      Get the value of the path using a parser function, if the path does not exist, return NULL.
      Type Parameters:
      T - The type of the value
      Parameters:
      path - The path to get the value from.
      parser - The function to parse the value
      Returns:
      The value at the path, or null if not found.
    • get

      @Contract("_,!null,_->!null") @Nullable default <T> T get(@NotNull @NotNull String path, @Nullable T defaults, @NotNull @NotNull Class<T> clazz)
      Get the value of the path for specific type, if the path does not exist, return the default value.
      Type Parameters:
      T - The type of the value
      Parameters:
      path - The path to get the value from.
      defaults - The default value to return if the path does not exist.
      clazz - The type class of the value
      Returns:
      The value at the path, or the default value if not found.
    • get

      @Contract("_,!null,_->!null") @Nullable default <T> T get(@NotNull @NotNull String path, @Nullable T defaultValue, @NotNull @NotNull DataFunction<Object,T> parser)
      Get the value of the path using a parser function, if the path does not exist, return the default value.
      Type Parameters:
      T - The type of the value
      Parameters:
      path - The path to get the value from.
      defaultValue - The default value to return if the path does not exist.
      parser - The function to parse the value
      Returns:
      The value at the path, or the default value if not found.
    • isBoolean

      default boolean isBoolean(@NotNull @NotNull String path)
      Predicate the value of given path is a Boolean.
      Parameters:
      path - The path to check.
      Returns:
      True if the value is present and is a boolean, false otherwise.
    • getBoolean

      default boolean getBoolean(@NotNull @NotNull String path)
      Get the value as a Boolean from the specified path.
      Parameters:
      path - The path to get the boolean.
      Returns:
      The boolean if the path exists and is a boolean, otherwise false.
    • getBoolean

      @Contract("_, !null -> !null") @Nullable default @Nullable Boolean getBoolean(@NotNull @NotNull String path, @Nullable @Nullable Boolean def)
      Get the value as a Boolean from the specified path.
      Parameters:
      path - The path to get the boolean.
      def - The default value to return if the path does not exist.
      Returns:
      The boolean if the path exists and is a boolean, otherwise the default value.
    • isByte

      @Nullable default @Nullable Boolean isByte(@NotNull @NotNull String path)
      Predicate the value of given path is a Byte.
      Parameters:
      path - The path to check.
      Returns:
      True if the value is present and is a byte, false otherwise.
    • getByte

      @Nullable default @Nullable Byte getByte(@NotNull @NotNull String path)
      Get the value as a Byte from the specified path.
      Parameters:
      path - The path to get the byte.
      Returns:
      The byte if the path exists and is a byte, otherwise 0.
    • getByte

      @Contract("_, !null -> !null") @Nullable default @Nullable Byte getByte(@NotNull @NotNull String path, @Nullable @Nullable Byte def)
      Get the value as a Byte from the specified path.
      Parameters:
      path - The path to get the byte.
      def - The default value to return if the path does not exist.
      Returns:
      The byte if the path exists and is a byte, otherwise the default value.
    • isShort

      default boolean isShort(@NotNull @NotNull String path)
      Predicate the value of given path is a Short.
      Parameters:
      path - The path to check.
      Returns:
      True if the value is present and is a short, false otherwise.
    • getShort

      @Nullable default @Nullable Short getShort(@NotNull @NotNull String path)
      Get the value as a Short from the specified path.
      Parameters:
      path - The path to get the short.
      Returns:
      The short if the path exists and is a short, otherwise 0.
    • getShort

      @Contract("_, !null -> !null") @Nullable default @Nullable Short getShort(@NotNull @NotNull String path, @Nullable @Nullable Short def)
      Get the value as a Short from the specified path.
      Parameters:
      path - The path to get the short.
      def - The default value to return if the path does not exist.
      Returns:
      The short if the path exists and is a short, otherwise the default value.
    • isInt

      default boolean isInt(@NotNull @NotNull String path)
      Predicate the value of given path is a Integer.
      Parameters:
      path - The path to check.
      Returns:
      True if the value is present and is an int, false otherwise.
    • getInt

      @Nullable default @Nullable Integer getInt(@NotNull @NotNull String path)
      Get the value as a Integer from the specified path.
      Parameters:
      path - The path to get the int.
      Returns:
      The int if the path exists and is an int, otherwise 0.
    • getInt

      @Contract("_, !null -> !null") @Nullable default @Nullable Integer getInt(@NotNull @NotNull String path, @Nullable @Nullable Integer def)
      Get the value as a Integer from the specified path.
      Parameters:
      path - The path to get the int.
      def - The default value to return if the path does not exist.
      Returns:
      The int if the path exists and is an int, otherwise the default value.
    • isLong

      default boolean isLong(@NotNull @NotNull String path)
      Predicate the value of given path is a Long.F
      Parameters:
      path - The path to check.
      Returns:
      True if the value is present and is a long, false otherwise.
    • getLong

      @Nullable default @Nullable Long getLong(@NotNull @NotNull String path)
      Get the value as a Long from the specified path.
      Parameters:
      path - The path to get the long.
      Returns:
      The long if the path exists and is a long, otherwise 0.
    • getLong

      @Contract("_, !null -> !null") @Nullable default @Nullable Long getLong(@NotNull @NotNull String path, @Nullable @Nullable Long def)
      Get the value as a Long from the specified path.
      Parameters:
      path - The path to get the long.
      def - The default value to return if the path does not exist.
      Returns:
      The long if the path exists and is a long, otherwise the default value.
    • isFloat

      default boolean isFloat(@NotNull @NotNull String path)
      Predicate the value of given path is a Float.
      Parameters:
      path - The path to check.
      Returns:
      True if the value is present and is a float, false otherwise.
    • getFloat

      @Nullable default @Nullable Float getFloat(@NotNull @NotNull String path)
      Get the value as a Float from the specified path.
      Parameters:
      path - The path to get the float.
      Returns:
      The float if the path exists and is a float, otherwise 0.
    • getFloat

      @Contract("_, !null -> !null") @Nullable default @Nullable Float getFloat(@NotNull @NotNull String path, @Nullable @Nullable Float def)
      Get the value as a Float from the specified path.
      Parameters:
      path - The path to get the float.
      def - The default value to return if the path does not exist.
      Returns:
      The float if the path exists and is a float, otherwise the default value.
    • isDouble

      default boolean isDouble(@NotNull @NotNull String path)
      Predicate the value of given path is a Double.
      Parameters:
      path - The path to check.
      Returns:
      True if the value is present and is a double, false otherwise.
    • getDouble

      @Nullable default @Nullable Double getDouble(@NotNull @NotNull String path)
      Get the value as a Double from the specified path.
      Parameters:
      path - The path to get the double.
      Returns:
      The double if the path exists and is a double, otherwise 0.
    • getDouble

      @Contract("_, !null -> !null") @Nullable default @Nullable Double getDouble(@NotNull @NotNull String path, @Nullable @Nullable Double def)
      Get the value as a Double from the specified path.
      Parameters:
      path - The path to get the double.
      def - The default value to return if the path does not exist.
      Returns:
      The double if the path exists and is a double, otherwise the default value.
    • isChar

      default boolean isChar(@NotNull @NotNull String path)
      Predicate the value of given path is a Character.
      Parameters:
      path - The path to check.
      Returns:
      True if the value is present and is a char, false otherwise.
    • getChar

      @Nullable default @Nullable Character getChar(@NotNull @NotNull String path)
      Get the value as a Character from the specified path.
      Parameters:
      path - The path to get the char.
      Returns:
      The char if the path exists and is a char, otherwise null.
    • getChar

      @Contract("_, !null -> !null") @Nullable default @Nullable Character getChar(@NotNull @NotNull String path, @Nullable @Nullable Character def)
      Get the value as a Character from the specified path.
      Parameters:
      path - The path to get the char.
      def - The default value to return if the path does not exist.
      Returns:
      The char if the path exists and is a char, otherwise the default value.
    • isString

      default boolean isString(@NotNull @NotNull String path)
      Predicate the value of given path is a String.
      Parameters:
      path - The path to check.
      Returns:
      True if the value is present and is a string, false otherwise.
    • getString

      @Nullable default @Nullable String getString(@NotNull @NotNull String path)
      Get the value as a String from the specified path.
      Parameters:
      path - The path to get the string.
      Returns:
      The string if the path exists and is a string, otherwise null.
    • getString

      @Contract("_, !null -> !null") @Nullable default @Nullable String getString(@NotNull @NotNull String path, @Nullable @Nullable String def)
      Get the value as a String from the specified path.
      Parameters:
      path - The path to get the string.
      def - The default value to return if the path does not exist.
      Returns:
      The string if the path exists and is a string, otherwise the default value.
    • getList

      @NotNull default <V> @NotNull List<V> getList(@NotNull @NotNull String path, @NotNull @NotNull DataFunction<Object,V> parser)
      Get a list of values from current section

      If the path does not exist, an empty list will be returned
      Any changes please use set(String, Object) after changes

      Type Parameters:
      V - The type of the values
      Parameters:
      path - The path to get the list from
      parser - The function to parse the values
      Returns:
      The list of values
    • getStringList

      @NotNull default @NotNull List<String> getStringList(@NotNull @NotNull String path)
      Get a list of strings from current section

      Limitations see getList(String, DataFunction)

      Parameters:
      path - The path to get the list from
      Returns:
      The list of strings
    • getIntegerList

      @NotNull default @NotNull List<Integer> getIntegerList(@NotNull @NotNull String path)
      Get a list of integer from current section

      Limitations see getList(String, DataFunction)

      Parameters:
      path - The path to get the list from
      Returns:
      The list of int values
    • getLongList

      @NotNull default @NotNull List<Long> getLongList(@NotNull @NotNull String path)
      Get a list of long from current section

      Limitations see getList(String, DataFunction)

      Parameters:
      path - The path to get the list from
      Returns:
      The list of long values
    • getDoubleList

      @NotNull default @NotNull List<Double> getDoubleList(@NotNull @NotNull String path)
      Get a list of double from current section

      Limitations see getList(String, DataFunction)

      Parameters:
      path - The path to get the list from
      Returns:
      The list of doubles
    • getFloatList

      @NotNull default @NotNull List<Float> getFloatList(@NotNull @NotNull String path)
      Get a list of floats from current section

      Limitations see getList(String, DataFunction)

      Parameters:
      path - The path to get the list from
      Returns:
      The list of floats
    • getByteList

      @NotNull default @NotNull List<Byte> getByteList(@NotNull @NotNull String path)
      Get a list of bytes from current section

      Limitations see getList(String, DataFunction)

      Parameters:
      path - The path to get the list from
      Returns:
      The list of bytes
    • getCharList

      @NotNull default @NotNull List<Character> getCharList(@NotNull @NotNull String path)
      Get a list of char from current section

      Limitations see getList(String, DataFunction)

      Parameters:
      path - The path to get the list from
      Returns:
      The list of char
    • getSectionList

      @NotNull default @NotNull List<ConfigureSection> getSectionList(@NotNull @NotNull String path)
      Get a list of ConfigureSection from current section
      Parameters:
      path - The path to get the list from
      Returns:
      The list of ConfigureSection
    • getCollection

      @NotNull default <T, C extends Collection<T>> C getCollection(@NotNull @NotNull String path, @NotNull @NotNull Supplier<C> constructor, @NotNull @NotNull DataFunction<Object,T> parser)
      Get the specific type of collection from current section.
      Type Parameters:
      T - The type of the values
      C - The type of the collection
      Parameters:
      path - The path to get the collection from
      constructor - The constructor of the collection
      parser - The function to parse the values
      Returns:
      The collection of values
    • stream

      @NotNull default @NotNull Stream<?> stream(@NotNull @NotNull String path)
      Get the specific type of steam from current section.
      Parameters:
      path - The path to get the stream from
      Returns:
      The stream of values
    • stream

      @NotNull default <T> @NotNull Stream<T> stream(@NotNull @NotNull String path, @NotNull @NotNull Function<Object,T> parser)
      Get the specific type of steam from current section.
      Type Parameters:
      T - The type of the values
      Parameters:
      path - The path to get the stream from
      parser - The function to parse the values
      Returns:
      The stream of values
    • childPath

      default String childPath(String path)
    • parseCollection

      @NotNull static <T, C extends Collection<T>> C parseCollection(@Nullable @Nullable List<?> data, @NotNull @NotNull Supplier<C> constructor, @NotNull @NotNull DataFunction<Object,T> parser)