Package com.cloudforge.core.config
Class DefaultValueResolver
java.lang.Object
com.cloudforge.core.config.DefaultValueResolver
Resolves default values for configuration fields using layered priority.
Default value priority (highest to lowest):
- User override in deployment-context.json (not handled here)
- FrameworkRules requirements (compliance-driven defaults)
- ApplicationSpec defaults (application-specific defaults via
ConfigFieldInfo.defaultFrom()) - ConfigField annotation default (system-wide defaults)
Convention-Based Lookup
The defaultFrom attribute in ConfigField
specifies a method name or chain to call on the ApplicationSpec:
@ConfigField(
displayName = "CPU Units",
defaultFrom = "defaultCpu" // Calls appSpec.defaultCpu()
)
public Integer cpu;
@ConfigField(
displayName = "Database Engine",
defaultFrom = "databaseRequirement().engine" // Chained: appSpec.databaseRequirement().engine()
)
public String databaseEngine;
- Since:
- 3.0.0
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic Objectresolve(ConfigFieldInfo fieldInfo, ApplicationSpec appSpec, List<FrameworkRules<?>> frameworks) Resolves the default value for a field using layered priority.static ObjectresolveWithFallback(ConfigFieldInfo fieldInfo, ApplicationSpec appSpec, List<FrameworkRules<?>> frameworks, Object config) Resolves default with fallback to field's annotated default.
-
Constructor Details
-
DefaultValueResolver
public DefaultValueResolver()
-
-
Method Details
-
resolve
public static Object resolve(ConfigFieldInfo fieldInfo, ApplicationSpec appSpec, List<FrameworkRules<?>> frameworks) Resolves the default value for a field using layered priority.- Parameters:
fieldInfo- field metadataappSpec- application spec for application-specific defaultsframeworks- active compliance frameworks- Returns:
- resolved default value, or null if no default available
-
resolveWithFallback
public static Object resolveWithFallback(ConfigFieldInfo fieldInfo, ApplicationSpec appSpec, List<FrameworkRules<?>> frameworks, Object config) Resolves default with fallback to field's annotated default.Convenience method that returns the field's current value as fallback.
- Parameters:
fieldInfo- field metadataappSpec- application specframeworks- active frameworksconfig- current config (for reading current field value as fallback)- Returns:
- resolved default value, or current field value if no default available
-