test_class.file: clients/src/test/java/org/apache/kafka/common/config/ConfigDefTest.java
test_class.identifier: ConfigDefTest
test_case.body: @Test
      public void testValidate() {
          Map<String, ConfigValue> expected = new HashMap<>();
          String errorMessageB = "Missing required configuration \"b\" which has no default value.";
          String errorMessageC = "Missing required configuration \"c\" which has no default value.";
  
          ConfigValue configA = new ConfigValue("a", 1, Arrays.<Object>asList(1, 2, 3), Collections.<String>emptyList());
          ConfigValue configB = new ConfigValue("b", null, Arrays.<Object>asList(4, 5), Arrays.asList(errorMessageB, errorMessageB));
          ConfigValue configC = new ConfigValue("c", null, Arrays.<Object>asList(4, 5), Arrays.asList(errorMessageC));
          ConfigValue configD = new ConfigValue("d", 10, Arrays.<Object>asList(1, 2, 3), Collections.<String>emptyList());
  
          expected.put("a", configA);
          expected.put("b", configB);
          expected.put("c", configC);
          expected.put("d", configD);
  
          ConfigDef def = new ConfigDef()
              .define("a", Type.INT, Importance.HIGH, "docs", "group", 1, Width.SHORT, "a", Arrays.asList("b", "c"), new IntegerRecommender(false))
              .define("b", Type.INT, Importance.HIGH, "docs", "group", 2, Width.SHORT, "b", new IntegerRecommender(true))
              .define("c", Type.INT, Importance.HIGH, "docs", "group", 3, Width.SHORT, "c", new IntegerRecommender(true))
              .define("d", Type.INT, Importance.HIGH, "docs", "group", 4, Width.SHORT, "d", Arrays.asList("b"), new IntegerRecommender(false));
  
          Map<String, String> props = new HashMap<>();
          props.put("a", "1");
          props.put("d", "10");
  
          List<ConfigValue> configs = def.validate(props);
          for (ConfigValue config : configs) {
              String name = config.name();
              ConfigValue expectedConfig = expected.get(name);
              assertEquals(expectedConfig, config);
          }
      }
test_case.class_method_signature: ConfigDefTest.testValidate()
test_case.full_signature: @Test public void testValidate()
test_case.identifier: testValidate
test_case.invocations: asList emptyList asList asList asList asList asList emptyList put put put put define define define define asList asList put put validate name get assertEquals
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testValidate()
focal_class.declarator: NO_DEFAULT_VALUE = new String("")
focal_class.modifier: public static final
focal_class.original_string: public static final Object NO_DEFAULT_VALUE = new String("");
focal_class.type: Object
focal_class.var_name: NO_DEFAULT_VALUE
focal_class.declarator: configKeys = new HashMap<>()
focal_class.modifier: private final
focal_class.original_string: private final Map<String, ConfigKey> configKeys = new HashMap<>();
focal_class.type: Map<String, ConfigKey>
focal_class.var_name: configKeys
focal_class.declarator: groups = new LinkedList<>()
focal_class.modifier: private final
focal_class.original_string: private final List<String> groups = new LinkedList<>();
focal_class.type: List<String>
focal_class.var_name: groups
focal_class.declarator: configsWithNoParent
focal_class.modifier: private
focal_class.original_string: private Set<String> configsWithNoParent;
focal_class.type: Set<String>
focal_class.var_name: configsWithNoParent
focal_class.file: clients/src/main/java/org/apache/kafka/common/config/ConfigDef.java
focal_class.identifier: ConfigDef
focal_class.class_method_signature: ConfigDef.names()
focal_class.full_signature: public Set<String> names()
focal_class.identifier: names
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Set<String>
focal_class.signature: Set<String> names()
focal_class.class_method_signature: ConfigDef.define(String name, Type type, Object defaultValue, Validator validator, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName, List<String> dependents, Recommender recommender)
focal_class.full_signature: public ConfigDef define(String name, Type type, Object defaultValue, Validator validator, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName, List<String> dependents, Recommender recommender)
focal_class.identifier: define
focal_class.modifiers: public
focal_class.parameters: (String name, Type type, Object defaultValue, Validator validator, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName, List<String> dependents, Recommender recommender)
focal_class.return: ConfigDef
focal_class.signature: ConfigDef define(String name, Type type, Object defaultValue, Validator validator, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName, List<String> dependents, Recommender recommender)
focal_class.class_method_signature: ConfigDef.define(String name, Type type, Object defaultValue, Validator validator, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName, List<String> dependents)
focal_class.full_signature: public ConfigDef define(String name, Type type, Object defaultValue, Validator validator, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName, List<String> dependents)
focal_class.identifier: define
focal_class.modifiers: public
focal_class.parameters: (String name, Type type, Object defaultValue, Validator validator, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName, List<String> dependents)
focal_class.return: ConfigDef
focal_class.signature: ConfigDef define(String name, Type type, Object defaultValue, Validator validator, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName, List<String> dependents)
focal_class.class_method_signature: ConfigDef.define(String name, Type type, Object defaultValue, Validator validator, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName, Recommender recommender)
focal_class.full_signature: public ConfigDef define(String name, Type type, Object defaultValue, Validator validator, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName, Recommender recommender)
focal_class.identifier: define
focal_class.modifiers: public
focal_class.parameters: (String name, Type type, Object defaultValue, Validator validator, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName, Recommender recommender)
focal_class.return: ConfigDef
focal_class.signature: ConfigDef define(String name, Type type, Object defaultValue, Validator validator, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName, Recommender recommender)
focal_class.class_method_signature: ConfigDef.define(String name, Type type, Object defaultValue, Validator validator, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName)
focal_class.full_signature: public ConfigDef define(String name, Type type, Object defaultValue, Validator validator, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName)
focal_class.identifier: define
focal_class.modifiers: public
focal_class.parameters: (String name, Type type, Object defaultValue, Validator validator, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName)
focal_class.return: ConfigDef
focal_class.signature: ConfigDef define(String name, Type type, Object defaultValue, Validator validator, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName)
focal_class.class_method_signature: ConfigDef.define(String name, Type type, Object defaultValue, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName, List<String> dependents, Recommender recommender)
focal_class.full_signature: public ConfigDef define(String name, Type type, Object defaultValue, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName, List<String> dependents, Recommender recommender)
focal_class.identifier: define
focal_class.modifiers: public
focal_class.parameters: (String name, Type type, Object defaultValue, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName, List<String> dependents, Recommender recommender)
focal_class.return: ConfigDef
focal_class.signature: ConfigDef define(String name, Type type, Object defaultValue, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName, List<String> dependents, Recommender recommender)
focal_class.class_method_signature: ConfigDef.define(String name, Type type, Object defaultValue, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName, List<String> dependents)
focal_class.full_signature: public ConfigDef define(String name, Type type, Object defaultValue, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName, List<String> dependents)
focal_class.identifier: define
focal_class.modifiers: public
focal_class.parameters: (String name, Type type, Object defaultValue, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName, List<String> dependents)
focal_class.return: ConfigDef
focal_class.signature: ConfigDef define(String name, Type type, Object defaultValue, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName, List<String> dependents)
focal_class.class_method_signature: ConfigDef.define(String name, Type type, Object defaultValue, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName, Recommender recommender)
focal_class.full_signature: public ConfigDef define(String name, Type type, Object defaultValue, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName, Recommender recommender)
focal_class.identifier: define
focal_class.modifiers: public
focal_class.parameters: (String name, Type type, Object defaultValue, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName, Recommender recommender)
focal_class.return: ConfigDef
focal_class.signature: ConfigDef define(String name, Type type, Object defaultValue, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName, Recommender recommender)
focal_class.class_method_signature: ConfigDef.define(String name, Type type, Object defaultValue, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName)
focal_class.full_signature: public ConfigDef define(String name, Type type, Object defaultValue, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName)
focal_class.identifier: define
focal_class.modifiers: public
focal_class.parameters: (String name, Type type, Object defaultValue, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName)
focal_class.return: ConfigDef
focal_class.signature: ConfigDef define(String name, Type type, Object defaultValue, Importance importance, String documentation,
                              String group, int orderInGroup, Width width, String displayName)
focal_class.class_method_signature: ConfigDef.define(String name, Type type, Importance importance, String documentation, String group, int orderInGroup,
                              Width width, String displayName, List<String> dependents, Recommender recommender)
focal_class.full_signature: public ConfigDef define(String name, Type type, Importance importance, String documentation, String group, int orderInGroup,
                              Width width, String displayName, List<String> dependents, Recommender recommender)
focal_class.identifier: define
focal_class.modifiers: public
focal_class.parameters: (String name, Type type, Importance importance, String documentation, String group, int orderInGroup,
                              Width width, String displayName, List<String> dependents, Recommender recommender)
focal_class.return: ConfigDef
focal_class.signature: ConfigDef define(String name, Type type, Importance importance, String documentation, String group, int orderInGroup,
                              Width width, String displayName, List<String> dependents, Recommender recommender)
focal_class.class_method_signature: ConfigDef.define(String name, Type type, Importance importance, String documentation, String group, int orderInGroup,
                              Width width, String displayName, List<String> dependents)
focal_class.full_signature: public ConfigDef define(String name, Type type, Importance importance, String documentation, String group, int orderInGroup,
                              Width width, String displayName, List<String> dependents)
focal_class.identifier: define
focal_class.modifiers: public
focal_class.parameters: (String name, Type type, Importance importance, String documentation, String group, int orderInGroup,
                              Width width, String displayName, List<String> dependents)
focal_class.return: ConfigDef
focal_class.signature: ConfigDef define(String name, Type type, Importance importance, String documentation, String group, int orderInGroup,
                              Width width, String displayName, List<String> dependents)
focal_class.class_method_signature: ConfigDef.define(String name, Type type, Importance importance, String documentation, String group, int orderInGroup,
                              Width width, String displayName, Recommender recommender)
focal_class.full_signature: public ConfigDef define(String name, Type type, Importance importance, String documentation, String group, int orderInGroup,
                              Width width, String displayName, Recommender recommender)
focal_class.identifier: define
focal_class.modifiers: public
focal_class.parameters: (String name, Type type, Importance importance, String documentation, String group, int orderInGroup,
                              Width width, String displayName, Recommender recommender)
focal_class.return: ConfigDef
focal_class.signature: ConfigDef define(String name, Type type, Importance importance, String documentation, String group, int orderInGroup,
                              Width width, String displayName, Recommender recommender)
focal_class.class_method_signature: ConfigDef.define(String name, Type type, Importance importance, String documentation, String group, int orderInGroup,
                              Width width, String displayName)
focal_class.full_signature: public ConfigDef define(String name, Type type, Importance importance, String documentation, String group, int orderInGroup,
                              Width width, String displayName)
focal_class.identifier: define
focal_class.modifiers: public
focal_class.parameters: (String name, Type type, Importance importance, String documentation, String group, int orderInGroup,
                              Width width, String displayName)
focal_class.return: ConfigDef
focal_class.signature: ConfigDef define(String name, Type type, Importance importance, String documentation, String group, int orderInGroup,
                              Width width, String displayName)
focal_class.class_method_signature: ConfigDef.define(String name, Type type, Object defaultValue, Validator validator, Importance importance, String documentation)
focal_class.full_signature: public ConfigDef define(String name, Type type, Object defaultValue, Validator validator, Importance importance, String documentation)
focal_class.identifier: define
focal_class.modifiers: public
focal_class.parameters: (String name, Type type, Object defaultValue, Validator validator, Importance importance, String documentation)
focal_class.return: ConfigDef
focal_class.signature: ConfigDef define(String name, Type type, Object defaultValue, Validator validator, Importance importance, String documentation)
focal_class.class_method_signature: ConfigDef.define(String name, Type type, Object defaultValue, Importance importance, String documentation)
focal_class.full_signature: public ConfigDef define(String name, Type type, Object defaultValue, Importance importance, String documentation)
focal_class.identifier: define
focal_class.modifiers: public
focal_class.parameters: (String name, Type type, Object defaultValue, Importance importance, String documentation)
focal_class.return: ConfigDef
focal_class.signature: ConfigDef define(String name, Type type, Object defaultValue, Importance importance, String documentation)
focal_class.class_method_signature: ConfigDef.define(String name, Type type, Importance importance, String documentation)
focal_class.full_signature: public ConfigDef define(String name, Type type, Importance importance, String documentation)
focal_class.identifier: define
focal_class.modifiers: public
focal_class.parameters: (String name, Type type, Importance importance, String documentation)
focal_class.return: ConfigDef
focal_class.signature: ConfigDef define(String name, Type type, Importance importance, String documentation)
focal_class.class_method_signature: ConfigDef.configKeys()
focal_class.full_signature: public Map<String, ConfigKey> configKeys()
focal_class.identifier: configKeys
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Map<String, ConfigKey>
focal_class.signature: Map<String, ConfigKey> configKeys()
focal_class.class_method_signature: ConfigDef.groups()
focal_class.full_signature: public List<String> groups()
focal_class.identifier: groups
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: List<String>
focal_class.signature: List<String> groups()
focal_class.class_method_signature: ConfigDef.withClientSslSupport()
focal_class.full_signature: public ConfigDef withClientSslSupport()
focal_class.identifier: withClientSslSupport
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: ConfigDef
focal_class.signature: ConfigDef withClientSslSupport()
focal_class.class_method_signature: ConfigDef.withClientSaslSupport()
focal_class.full_signature: public ConfigDef withClientSaslSupport()
focal_class.identifier: withClientSaslSupport
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: ConfigDef
focal_class.signature: ConfigDef withClientSaslSupport()
focal_class.class_method_signature: ConfigDef.parse(Map<?, ?> props)
focal_class.full_signature: public Map<String, Object> parse(Map<?, ?> props)
focal_class.identifier: parse
focal_class.modifiers: public
focal_class.parameters: (Map<?, ?> props)
focal_class.return: Map<String, Object>
focal_class.signature: Map<String, Object> parse(Map<?, ?> props)
focal_class.class_method_signature: ConfigDef.validate(Map<String, String> props)
focal_class.full_signature: public List<ConfigValue> validate(Map<String, String> props)
focal_class.identifier: validate
focal_class.modifiers: public
focal_class.parameters: (Map<String, String> props)
focal_class.return: List<ConfigValue>
focal_class.signature: List<ConfigValue> validate(Map<String, String> props)
focal_class.class_method_signature: ConfigDef.parseForValidate(Map<String, String> props, Map<String, ConfigValue> configValues)
focal_class.full_signature:  Map<String, Object> parseForValidate(Map<String, String> props, Map<String, ConfigValue> configValues)
focal_class.identifier: parseForValidate
focal_class.parameters: (Map<String, String> props, Map<String, ConfigValue> configValues)
focal_class.return: Map<String, Object>
focal_class.signature: Map<String, Object> parseForValidate(Map<String, String> props, Map<String, ConfigValue> configValues)
focal_class.class_method_signature: ConfigDef.validate(Map<String, Object> parsed, Map<String, ConfigValue> configValues)
focal_class.full_signature: private List<ConfigValue> validate(Map<String, Object> parsed, Map<String, ConfigValue> configValues)
focal_class.identifier: validate
focal_class.modifiers: private
focal_class.parameters: (Map<String, Object> parsed, Map<String, ConfigValue> configValues)
focal_class.return: List<ConfigValue>
focal_class.signature: List<ConfigValue> validate(Map<String, Object> parsed, Map<String, ConfigValue> configValues)
focal_class.class_method_signature: ConfigDef.undefinedDependentConfigs()
focal_class.full_signature: private List<String> undefinedDependentConfigs()
focal_class.identifier: undefinedDependentConfigs
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: List<String>
focal_class.signature: List<String> undefinedDependentConfigs()
focal_class.class_method_signature: ConfigDef.getConfigsWithNoParent()
focal_class.full_signature: private Set<String> getConfigsWithNoParent()
focal_class.identifier: getConfigsWithNoParent
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: Set<String>
focal_class.signature: Set<String> getConfigsWithNoParent()
focal_class.class_method_signature: ConfigDef.parseForValidate(String name, Map<String, String> props, Map<String, Object> parsed, Map<String, ConfigValue> configs)
focal_class.full_signature: private void parseForValidate(String name, Map<String, String> props, Map<String, Object> parsed, Map<String, ConfigValue> configs)
focal_class.identifier: parseForValidate
focal_class.modifiers: private
focal_class.parameters: (String name, Map<String, String> props, Map<String, Object> parsed, Map<String, ConfigValue> configs)
focal_class.return: void
focal_class.signature: void parseForValidate(String name, Map<String, String> props, Map<String, Object> parsed, Map<String, ConfigValue> configs)
focal_class.class_method_signature: ConfigDef.validate(String name, Map<String, Object> parsed, Map<String, ConfigValue> configs)
focal_class.full_signature: @SuppressWarnings("unchecked") private void validate(String name, Map<String, Object> parsed, Map<String, ConfigValue> configs)
focal_class.identifier: validate
focal_class.modifiers: @SuppressWarnings("unchecked") private
focal_class.parameters: (String name, Map<String, Object> parsed, Map<String, ConfigValue> configs)
focal_class.return: void
focal_class.signature: void validate(String name, Map<String, Object> parsed, Map<String, ConfigValue> configs)
focal_class.class_method_signature: ConfigDef.parseType(String name, Object value, Type type)
focal_class.full_signature: private Object parseType(String name, Object value, Type type)
focal_class.identifier: parseType
focal_class.modifiers: private
focal_class.parameters: (String name, Object value, Type type)
focal_class.return: Object
focal_class.signature: Object parseType(String name, Object value, Type type)
focal_class.class_method_signature: ConfigDef.convertToString(Object parsedValue, Type type)
focal_class.full_signature: public static String convertToString(Object parsedValue, Type type)
focal_class.identifier: convertToString
focal_class.modifiers: public static
focal_class.parameters: (Object parsedValue, Type type)
focal_class.return: String
focal_class.signature: String convertToString(Object parsedValue, Type type)
focal_class.class_method_signature: ConfigDef.toHtmlTable()
focal_class.full_signature: public String toHtmlTable()
focal_class.identifier: toHtmlTable
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String toHtmlTable()
focal_class.class_method_signature: ConfigDef.toRst()
focal_class.full_signature: public String toRst()
focal_class.identifier: toRst
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String toRst()
focal_class.class_method_signature: ConfigDef.sortedConfigs()
focal_class.full_signature: private List<ConfigKey> sortedConfigs()
focal_class.identifier: sortedConfigs
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: List<ConfigKey>
focal_class.signature: List<ConfigKey> sortedConfigs()
focal_method.body: public List<ConfigValue> validate(Map<String, String> props) {
          Map<String, ConfigValue> configValues = new HashMap<>();
          for (String name: configKeys.keySet()) {
              configValues.put(name, new ConfigValue(name));
          }
  
          List<String> undefinedConfigKeys = undefinedDependentConfigs();
          for (String undefinedConfigKey: undefinedConfigKeys) {
              ConfigValue undefinedConfigValue = new ConfigValue(undefinedConfigKey);
              undefinedConfigValue.addErrorMessage(undefinedConfigKey + " is referred in the dependents, but not defined.");
              undefinedConfigValue.visible(false);
              configValues.put(undefinedConfigKey, undefinedConfigValue);
          }
  
          Map<String, Object> parsed = parseForValidate(props, configValues);
          return validate(parsed, configValues);
      }
focal_method.class_method_signature: ConfigDef.validate(Map<String, String> props)
focal_method.full_signature: public List<ConfigValue> validate(Map<String, String> props)
focal_method.identifier: validate
focal_method.invocations: keySet put undefinedDependentConfigs addErrorMessage visible put parseForValidate validate
focal_method.modifiers: public
focal_method.parameters: (Map<String, String> props)
focal_method.return: List<ConfigValue>
focal_method.signature: List<ConfigValue> validate(Map<String, String> props)