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.
    • 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()
      • 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.
      • 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.
      • contains

        public boolean contains​(@NotNull
                                @NotNull java.lang.String path)
        Description copied from interface: ConfigureSection
        Check if the value of 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.
      • getList

        @Nullable
        public @Nullable java.util.List<?> getList​(@NotNull
                                                   @NotNull java.lang.String path)
        Description copied from interface: ConfigureSection
        Get the value as a List from the specified path.
        Specified by:
        getList in interface ConfigureSection
        Parameters:
        path - The path to get the List.
        Returns:
        The list if the path exists and is a list, otherwise null.
      • getSection

        @Nullable
        public @Nullable ConfigureSection getSection​(@NotNull
                                                     @NotNull java.lang.String path)
        Description copied from interface: ConfigureSection
        Get the value as a ConfigureSection from the specified path.
        Specified by:
        getSection in interface ConfigureSection
        Parameters:
        path - The path to get the section.
        Returns:
        The section if the path exists and is a section, otherwise null.
      • 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.