in src/main/java/com/epam/eco/commons/avro/modification/SortSchemaFields.java [51:80]
public void applyToGeneric(Map<String, Object> schemaMap) {
List<List<Map<String, Object>>> schemasFields = new ArrayList<>();
new GenericSchemaTraverser(new GenericSchemaTraverseListener() {
@Override
public void onSchemaField(
String path,
Map<String, Object> parentSchema,
Map<String, Object> field) {
// do nothing
}
@Override
public void onSchema(String path, Object parentSchema, Object schema) {
if (AvroUtils.typeOfGenericSchema(schema) == Type.RECORD) {
@SuppressWarnings("unchecked")
List<Map<String, Object>> fields =
(List<Map<String, Object>>)((Map<String, Object>)schema).get(
AvroConstants.SCHEMA_KEY_FIELDS);
schemasFields.add(fields);
}
}
}).walk(schemaMap);
for (List<Map<String, Object>> fields : schemasFields) {
if (fields == null || fields.isEmpty()) {
continue;
}
fields.sort(comparator);
}
}