Class ConfigureSource<SECTION extends ConfigureSection,​ORIGINAL,​SELF extends ConfigureSource<SECTION,​ORIGINAL,​SELF>>

  • Type Parameters:
    SECTION - The type of the root section.
    ORIGINAL - The original configuration object.
    SELF - The type of the source itself, for further implement support.
    All Implemented Interfaces:
    ConfigureSection

    public abstract class ConfigureSource<SECTION extends ConfigureSection,​ORIGINAL,​SELF extends ConfigureSource<SECTION,​ORIGINAL,​SELF>>
    extends java.lang.Object
    implements ConfigureSection
    ConfigureSource represents the source of configuration, which can be a file, a database, or any other source.
    See Also:
    ConfigureSection
    • Constructor Detail

      • ConfigureSource

        protected ConfigureSource​(@NotNull
                                  @NotNull ConfigurationHolder<? extends SELF> holder,
                                  long lastUpdateMillis)
    • Method Detail

      • reload

        public void reload()
                    throws java.lang.Exception
        Throws:
        java.lang.Exception
      • self

        @Contract(pure=true)
        @Internal
        @NotNull
        protected abstract SELF self()
      • original

        @Contract(pure=true)
        @NotNull
        public abstract ORIGINAL original()
        Returns:
        The original configuration object.
      • section

        @NotNull
        public abstract SECTION section()
        Returns:
        The root ConfigureSection, which represents the entire configuration.
      • save

        public abstract void save()
                           throws java.lang.Exception
        Save the whole configuration.
        Throws:
        java.lang.Exception - If any error occurs while saving.
      • onReload

        @OverrideOnly
        protected abstract void onReload()
                                  throws java.lang.Exception
        Reload the configuration.
        This used for implementation, for external usage, use reload()
        Throws:
        java.lang.Exception - If any error occurs while reloading.
      • pathSeparator

        public char pathSeparator()
        Description copied from interface: ConfigureSection
        Get the path separator for the section.
        Specified by:
        pathSeparator in interface ConfigureSection
        Returns:
        The path separator
      • getLastUpdateMillis

        public long getLastUpdateMillis()
      • isExpired

        public boolean isExpired​(long parsedTime)
      • parent

        @Contract(pure=true,
                  value="->null")
        @Nullable
        public @Nullable ConfigureSection parent()
        Source also represents the root section, so it has no parent
        Specified by:
        parent in interface ConfigureSection
        Returns:
        null
      • 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.
      • asMap

        @NotNull
        public @NotNull @UnmodifiableView 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.
      • 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.