/**
* Get a backward-compatible participant user config
* @return UserConfig
*/
public UserConfig getUserConfig() {
UserConfig userConfig = UserConfig.from(this);
try {
for (String simpleField : _record.getSimpleFields().keySet()) {
Optional<InstanceConfigProperty> enumField =
Enums.getIfPresent(InstanceConfigProperty.class, simpleField);
Optional<HelixPropertyAttribute> superEnumField =
Enums.getIfPresent(HelixPropertyAttribute.class, simpleField);
if (!simpleField.contains(NamespacedConfig.PREFIX_CHAR + "") && !enumField.isPresent()
&& !superEnumField.isPresent()) {
userConfig.setSimpleField(simpleField, _record.getSimpleField(simpleField));
}
}
for (String listField : _record.getListFields().keySet()) {
Optional<InstanceConfigProperty> enumField =
Enums.getIfPresent(InstanceConfigProperty.class, listField);
if (!listField.contains(NamespacedConfig.PREFIX_CHAR + "") && !enumField.isPresent()) {
userConfig.setListField(listField, _record.getListField(listField));
}
}
for (String mapField : _record.getMapFields().keySet()) {
Optional<InstanceConfigProperty> enumField =
Enums.getIfPresent(InstanceConfigProperty.class, mapField);
if (!mapField.contains(NamespacedConfig.PREFIX_CHAR + "") && !enumField.isPresent()) {
userConfig.setMapField(mapField, _record.getMapField(mapField));
}
}
} catch (NoSuchMethodError e) {
LOG.error("Could not parse InstanceConfig for additional user config");
}