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