in src/main/java/com/epam/eco/commons/avro/modification/ChangeSchemaFieldNamesCase.java [99:122]
public void applyToGeneric(Map<String, Object> schemaMap) {
List<Map<String, Object>> fieldsToChange = new ArrayList<>();
new GenericSchemaTraverser(new GenericSchemaTraverseListener() {
@Override
public void onSchemaField(
String path,
Map<String, Object> parentSchema,
Map<String, Object> field) {
if (isFieldIncluded(path) && !isFieldExcluded(path)) {
fieldsToChange.add(field);
}
}
@Override
public void onSchema(String path, Object parentSchema, Object schema) {
// do nothing
}
}).walk(schemaMap);
for (Map<String, Object> field : fieldsToChange) {
String fieldName = (String)field.get(AvroConstants.SCHEMA_KEY_FIELD_NAME);
field.put(AvroConstants.SCHEMA_KEY_FIELD_NAME, caze.apply(fieldName));
}
}