class ConfigDef {

  public ConfigDef defineOverride(String name, Type type, Object defaultValue, Validator validator,
                                  Importance importance, String documentation) {
    if (!configKeys.containsKey(name)) {
      throw new ConfigException("Configuration " + name +
                                " is defined as an override but does not exist.");
    }
    Object parsedDefault =
            NO_DEFAULT_VALUE.equals(defaultValue) ? NO_DEFAULT_VALUE : parseType(name, defaultValue, type);
    configKeys
        .put(name, new ConfigKey(name, type, parsedDefault, validator, importance, documentation));
    return this;
  }

  public  ConfigDef();
  public  ConfigDef(ConfigDef configDef);

}