public void applyToGeneric()

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));
        }
    }