Class AbstractMapSection<R extends AbstractMapSection<R>>

    • Field Detail

      • data

        @NotNull
        protected final @NotNull java.util.Map<java.lang.String,​java.lang.Object> data
      • path

        @NotNull
        protected final @NotNull java.lang.String path
    • Constructor Detail

      • AbstractMapSection

        protected AbstractMapSection​(@Nullable
                                     R parent,
                                     @NotNull
                                     @NotNull java.lang.String path)
    • Method Detail

      • migrate

        public void migrate​(java.util.Map<?,​?> data)
      • self

        @NotNull
        public abstract R self()
      • contains

        public boolean contains​(@NotNull
                                @NotNull java.lang.String path)
        Description copied from interface: ConfigureSection
        Check if the given path is present.

        Path separator depends on holder's StandardOptions.PATH_SEPARATOR

        Specified by:
        contains in interface ConfigureSection
        Parameters:
        path - The path to check.
        Returns:
        True if the value is present, false otherwise.
      • data

        @NotNull
        public @NotNull java.util.Map<java.lang.String,​java.lang.Object> data()
      • isEmpty

        public boolean isEmpty()
        Description copied from interface: ConfigureSection
        Gets if this section is empty.
        Specified by:
        isEmpty in interface ConfigureSection
        Returns:
        True if this section is empty, false otherwise.
      • size

        public int size​(boolean deep)
        Description copied from interface: ConfigureSection
        Gets the number of keys in this section.
        Specified by:
        size in interface ConfigureSection
        Returns:
        Number of keys in this section.
      • asMap

        @NotNull
        public @UnmodifiableView @NotNull java.util.Map<java.lang.String,​java.lang.Object> asMap()
        Description copied from interface: ConfigureSection
        Get this section as a map.

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

        Specified by:
        asMap in interface ConfigureSection
        Returns:
        Map of data values contained within this Section.
      • parent

        @Nullable
        public R parent()
        Description copied from interface: ConfigureSection
        Gets the parent section of this section.

        For root sections, this will return null.

        Specified by:
        parent in interface ConfigureSection
        Returns:
        Parent section, or null if this is a root section.
      • getValues

        @NotNull
        public @NotNull java.util.Map<java.lang.String,​java.lang.Object> getValues​(boolean deep)
        Description copied from interface: ConfigureSection
        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.

        Specified by:
        getValues in interface ConfigureSection
        Parameters:
        deep - Whether to get a deep list.
        Returns:
        Map of data values contained within this Section.
      • getKeys

        @NotNull
        public @NotNull @UnmodifiableView java.util.Set<java.lang.String> getKeys​(boolean deep)
        Description copied from interface: ConfigureSection
        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.

        Specified by:
        getKeys in interface ConfigureSection
        Parameters:
        deep - Whether to get a deep list.
        Returns:
        Set of keys contained within this Section.
      • set

        public void set​(@NotNull
                        @NotNull java.lang.String path,
                        @Nullable
                        @Nullable java.lang.Object value)
        Description copied from interface: ConfigureSection
        Sets the value at the given path.

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

        Specified by:
        set in interface ConfigureSection
        Parameters:
        path - The path to set the value at.
        value - The value to set.
      • get

        @Nullable
        public @Nullable java.lang.Object get​(@NotNull
                                              @NotNull java.lang.String path)
        Description copied from interface: ConfigureSection
        Get the origin value of the path.
        Specified by:
        get in interface ConfigureSection
        Parameters:
        path - The path to get the value from.
        Returns:
        The value at the path, or null if not found.
      • mappingValues

        protected static java.util.Map<java.lang.String,​java.lang.Object> mappingValues​(@NotNull
                                                                                              @NotNull AbstractMapSection<?> section,
                                                                                              @Nullable
                                                                                              @Nullable java.lang.String parent,
                                                                                              boolean deep,
                                                                                              java.lang.String pathSeparator)
        Map the values of the children of the section to the output map.
        Parameters:
        section - The section to map the values from
        parent - The parent path
        deep - If the mapping should be deep
      • mappingKeys

        protected static java.util.Set<java.lang.String> mappingKeys​(@NotNull
                                                                     @NotNull AbstractMapSection<?> section,
                                                                     @Nullable
                                                                     @Nullable java.lang.String parent,
                                                                     boolean deep,
                                                                     java.lang.String pathSeparator)