Class DefaultValueResolver

java.lang.Object
com.cloudforge.core.config.DefaultValueResolver

public class DefaultValueResolver extends Object
Resolves default values for configuration fields using layered priority.

Default value priority (highest to lowest):

  1. User override in deployment-context.json (not handled here)
  2. FrameworkRules requirements (compliance-driven defaults)
  3. ApplicationSpec defaults (application-specific defaults via ConfigFieldInfo.defaultFrom())
  4. 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 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 metadata
      appSpec - application spec for application-specific defaults
      frameworks - 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 metadata
      appSpec - application spec
      frameworks - active frameworks
      config - current config (for reading current field value as fallback)
      Returns:
      resolved default value, or current field value if no default available