Class ConfigurationIntrospector

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

public class ConfigurationIntrospector extends Object
Discovers and filters configuration fields using reflection and annotations.

This is the core of the Configuration Introspection system, providing automatic field discovery based on ConfigField annotations and application capabilities.

Usage


 // Discover all fields for an application
 List<ConfigFieldInfo> fields = ConfigurationIntrospector.discoverFields(gitlabSpec);

 // Discover fields in a specific category
 List<ConfigFieldInfo> databaseFields = ConfigurationIntrospector.discoverFields(gitlabSpec, "database");

 // Filter by visibility
 List<ConfigFieldInfo> visibleFields = fields.stream()
     .filter(f -> f.isVisible(config))
     .toList();
 
Since:
3.0.0
  • Constructor Details

    • ConfigurationIntrospector

      public ConfigurationIntrospector()
  • Method Details

    • discoverFields

      public static List<ConfigFieldInfo> discoverFields(ApplicationSpec appSpec)
      Discovers all configuration fields from DeploymentConfig.

      Returns fields sorted by category order, then field order, then display name.

      Parameters:
      appSpec - application spec for determining field visibility
      Returns:
      list of all discovered fields
    • discoverFields

      public static List<ConfigFieldInfo> discoverFields(ApplicationSpec appSpec, String category)
      Discovers configuration fields for a specific category.

      Returns fields sorted by field order, then display name.

      Parameters:
      appSpec - application spec for determining field visibility
      category - category to filter by, or null for all categories
      Returns:
      list of discovered fields matching the category
    • discoverVisibleFields

      public static List<ConfigFieldInfo> discoverVisibleFields(ApplicationSpec appSpec, Object config)
      Discovers visible fields only (based on application capabilities and configuration state).
      Parameters:
      appSpec - application spec for determining field visibility
      config - current configuration state for evaluating visibility expressions
      Returns:
      list of visible fields
    • discoverVisibleFields

      public static List<ConfigFieldInfo> discoverVisibleFields(ApplicationSpec appSpec, Object config, String category)
      Discovers fields by category with visibility filtering.
      Parameters:
      appSpec - application spec
      config - current configuration state
      category - category to filter by
      Returns:
      list of visible fields in the category