Package cc.carm.lib.configuration.value
Class ConfigValue<T,U>
java.lang.Object
cc.carm.lib.configuration.value.ValueManifest<T,U>
cc.carm.lib.configuration.value.ConfigValue<T,U>
- Direct Known Subclasses:
CachedConfigValue
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:
- Type-safe value access through
get()
andoptional()
- Default value fallback via
getOrDefault()
- Null-safety enforcement with
resolve()
andgetNotNull()
- Default value initialization through
setDefault()
- Value comparison with
isDefault()
Persistence Behavior:
Value modifications viaset(Object)
or setDefault()
methods
do NOT automatically persist to configuration sources. Explicit calls to
ConfigurationHolder.save()
are required for permanent storage.- See Also:
-
Field Summary
Fields inherited from class cc.carm.lib.configuration.value.ValueManifest
defaultSupplier, holder, initializer, path, type, validator
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract T
get()
Gets the configured value (i.e., the value read from the source).Gets the non-null value of this configuration.Gets the configured value, or returns the default value if not present.boolean
Checks if the loaded configuration value matches the default value.optional()
Gets the value of this configuration as anOptional
.resolve()
Gets the non-null value of this configuration.void
save()
Try to save the configuration.abstract void
Sets the value of this configuration.void
Initializes the default value for this configuration.void
setDefault
(boolean override) Sets the configuration value to its default.Methods inherited from class cc.carm.lib.configuration.value.ValueManifest
config, defaults, defaults, defaults, getData, hasDefaults, holder, holder, initialize, initialize, metadata, path, path, setData, throwing, throwing, type, validate, validator, validator, withValidated
-
Constructor Details
-
ConfigValue
-
-
Method Details
-
get
Gets the configured value (i.e., the value read from the source).
If no default value was written during initialization, you can use thegetOrDefault()
method to obtain the default value when this value is empty.- Returns:
- Configured value
-
getOrDefault
Gets the configured value, or returns the default value if not present.- Returns:
- Configured value or default value
-
resolve
Gets the non-null value of this configuration.- Returns:
- Non-null value
- Throws:
NullPointerException
- Thrown when the corresponding data is null
-
getNotNull
Gets the non-null value of this configuration.- Returns:
- Non-null value
- Throws:
NullPointerException
- Thrown when the corresponding data is null- See Also:
-
optional
Gets the value of this configuration as anOptional
.- Returns:
Optional
value
-
set
Sets the value of this configuration.
After setting, the configuration file will NOT be saved automatically. To save, callConfigurationHolder.save()
.- Parameters:
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, callConfigurationHolder.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, callConfigurationHolder.save()
.- Parameters:
override
- Whether to overwrite existing configured value
-
isDefault
public boolean isDefault()Checks if the loaded configuration value matches the default value.- Returns:
- Whether the current value is the default value
-
save
Try to save the configuration.
To save multiple modifications, it is recommended to callConfigurationHolder.save()
after all modifications are completed instead of this.- Throws:
Exception
- Thrown when an error occurs during saving
-