public ArrayNode toJson()

in src/main/java/com/amazonaws/services/neptune/propertygraph/schema/GraphElementSchemas.java [174:218]


    public ArrayNode toJson(boolean includeFilenames) {
        ArrayNode arrayNode = JsonNodeFactory.instance.arrayNode();

        for (Map.Entry<Label, LabelSchemaContainer> entry : labelSchemas.entrySet()) {

            Label label = entry.getKey();

            ObjectNode labelNode = JsonNodeFactory.instance.objectNode();
            labelNode.set("label", label.toJson());

            LabelSchema labelSchema = entry.getValue().labelSchema();

            ArrayNode propertiesNode = JsonNodeFactory.instance.arrayNode();

            for (PropertySchema propertySchema : labelSchema.propertySchemas()) {

                ArrayNode allTypesNode = JsonNodeFactory.instance.arrayNode();
                for (DataType dataType : propertySchema.allTypes()) {
                    allTypesNode.add(dataType.name());
                }

                ObjectNode propertyNode = JsonNodeFactory.instance.objectNode();
                propertyNode.put("property", propertySchema.property().toString());
                propertyNode.put("dataType", propertySchema.dataType().name());
                propertyNode.put("isMultiValue", propertySchema.isMultiValue());
                propertyNode.put("isNullable", propertySchema.isNullable());
                propertyNode.set("allTypes", allTypesNode);
                propertiesNode.add(propertyNode);
            }

            labelNode.set("properties", propertiesNode);

            if (includeFilenames){
                ArrayNode filesNode = JsonNodeFactory.instance.arrayNode();
                for (String outputId : entry.getValue().outputIds()) {
                    filesNode.add(outputId);
                }
                labelNode.set("files", filesNode);
            }

            arrayNode.add(labelNode);
        }

        return arrayNode;
    }