public void applyToGeneric()

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