类 ConfigValue<T,U>

java.lang.Object
cc.carm.lib.configuration.value.ValueManifest<T,U>
cc.carm.lib.configuration.value.ConfigValue<T,U>
直接已知子类:
CachedConfigValue

public abstract class ConfigValue<T,U> extends ValueManifest<T,U>
Represents a configurable value with type safety and null-handling capabilities.

This abstract class provides core functionalities for managing configuration values, including value retrieval with fallback defaults, null safety enforcement, and value persistence controls. It serves as the foundation for type-specific configuration implementations.

Functions:

Persistence Behavior:

Value modifications via set(Object) or setDefault() methods do NOT automatically persist to configuration sources. Explicit calls to ConfigurationHolder.save() are required for permanent storage.
另请参阅:
  • 构造器详细资料

    • ConfigValue

      protected ConfigValue(@NotNull @NotNull ValueManifest<T,U> manifest)
  • 方法详细资料

    • get

      @Nullable public abstract T get()
      Gets the configured value (i.e., the value read from the source).
      If no default value was written during initialization, you can use the getOrDefault() method to obtain the default value when this value is empty.
      返回:
      Configured value
    • getOrDefault

      public T getOrDefault()
      Gets the configured value, or returns the default value if not present.
      返回:
      Configured value or default value
    • resolve

      @NotNull public T resolve()
      Gets the non-null value of this configuration.
      返回:
      Non-null value
      抛出:
      NullPointerException - Thrown when the corresponding data is null
    • getNotNull

      @NotNull public T getNotNull()
      Gets the non-null value of this configuration.
      返回:
      Non-null value
      抛出:
      NullPointerException - Thrown when the corresponding data is null
      另请参阅:
    • optional

      @NotNull public @NotNull Optional<@Nullable T> optional()
      Gets the value of this configuration as an Optional.
      返回:
      Optional value
    • set

      public abstract void set(@Nullable T value)
      Sets the value of this configuration.
      After setting, the configuration file will NOT be saved automatically. To save, call ConfigurationHolder.save().
      参数:
      value - The value to set
    • setDefault

      public void setDefault()
      Initializes the default value for this configuration.
      After setting, the configuration file will NOT be saved automatically. To save, call ConfigurationHolder.save().
    • setDefault

      public void setDefault(boolean override)
      Sets the configuration value to its default.
      After setting, the configuration file will NOT be saved automatically. To save, call ConfigurationHolder.save().
      参数:
      override - Whether to overwrite existing configured value
    • isDefault

      public boolean isDefault()
      Checks if the loaded configuration value matches the default value.
      返回:
      Whether the current value is the default value
    • save

      public void save() throws Exception
      Try to save the configuration.
      To save multiple modifications, it is recommended to call ConfigurationHolder.save() after all modifications are completed instead of this.
      抛出:
      Exception - Thrown when an error occurs during saving