private Set getAllSchemaEntities()

in rest/src/main/java/com/epam/eco/schemacatalog/rest/utils/SchemaProfileCreator.java [76:112]


    private Set<SchemaEntity> getAllSchemaEntities(FullSchemaInfo schemaInfo, PartFormatter formatter) {
        Validate.notNull(schemaInfo, "Schema info can't be null");

        MetadataBrowser<FullSchemaInfo> metadataBrowser = schemaInfo.getMetadataBrowser();

        Map<String, SchemaEntity.Builder> builders = new HashMap<>();
        List<FieldInfo> fieldInfoList = schemaInfo.getSchemaFieldInfosAsList();
        for (FieldInfo fieldInfo : fieldInfoList) {
            Schema parent = fieldInfo.getParent();
            Schema.Field field = fieldInfo.getField();
            SchemaEntity.Builder builder = builders.get(parent.getFullName());
            if (builder == null) {
                builder = new SchemaEntity.Builder();
                builder.name(parent.getName()).namespace(parent.getNamespace());
                if (schemaInfo.getSchemaAvro().equals(parent)) {
                    builder.root(true);
                }
                builders.put(parent.getFullName(), builder);
            }
            builder.addField(SchemaField.builder()
                    .name(field.name())
                    .type(constructSchemaFieldType(parent, field.schema()))
                    .defaultValue(jsonNullToJava(field.defaultVal()))
                    .defaultValuePresent(field.defaultVal() != null)
                    .nativeDoc(field.doc())
                    .metadata(
                            FormattedMetadata.with(
                                    metadataBrowser.
                                            getFieldMetadata(parent.getFullName(), field.name()).orElse(null),
                                    formatter))
                    .build());
        }

        return builders.values().stream()
                .map(SchemaEntity.Builder::build)
                .collect(Collectors.toSet());
    }