public void addTo()

in neptune-export/src/main/java/com/amazonaws/services/neptune/propertygraph/ExportStats.java [99:161]


    public void addTo(ObjectNode exportNode, GraphSchema graphSchema) {
        ObjectNode statsNode = JsonNodeFactory.instance.objectNode();
        exportNode.set("stats", statsNode);
        statsNode.put("nodes", nodeStats.values().stream().map(LabelStats::count).reduce(0L, Long::sum));
        statsNode.put("edges", edgeStats.values().stream().map(LabelStats::count).reduce(0L, Long::sum));
        statsNode.put("properties", getNumberOfProperties(graphSchema));
        ObjectNode detailsNode = JsonNodeFactory.instance.objectNode();

        statsNode.set("details", detailsNode);

        ArrayNode nodesArrayNode = JsonNodeFactory.instance.arrayNode();
        detailsNode.set("nodes", nodesArrayNode);

        GraphElementSchemas nodeSchemas = graphSchema.graphElementSchemasFor(GraphElementType.nodes);
        for (Map.Entry<Label, LabelStats> entry : nodeStats.entrySet()) {

            Label label = entry.getKey();
            LabelStats labelStats = entry.getValue();
            LabelSchema labelSchema = nodeSchemas.getSchemaFor(label);

            ObjectNode nodeNode = JsonNodeFactory.instance.objectNode();
            nodesArrayNode.add(nodeNode);
            nodeNode.put("label", label.fullyQualifiedLabel());
            nodeNode.put("count", labelStats.count());

            ArrayNode propertiesArray = JsonNodeFactory.instance.arrayNode();

            for (PropertySchemaStats stats : labelSchema.propertySchemaStats()) {
                ObjectNode propertyNode = JsonNodeFactory.instance.objectNode();
                propertyNode.put("name", stats.property().toString());
                propertyNode.put("count", stats.observationCount());
                propertiesArray.add(propertyNode);
            }

            nodeNode.set("properties", propertiesArray);
        }

        ArrayNode edgesArrayNode = JsonNodeFactory.instance.arrayNode();
        detailsNode.set("edges", edgesArrayNode);

        GraphElementSchemas edgeSchemas = graphSchema.graphElementSchemasFor(GraphElementType.edges);
        for (Map.Entry<Label, LabelStats> entry : edgeStats.entrySet()) {
            Label label = entry.getKey();
            LabelStats labelStats = entry.getValue();
            LabelSchema labelSchema = edgeSchemas.getSchemaFor(label);

            ObjectNode edgeNode = JsonNodeFactory.instance.objectNode();
            edgesArrayNode.add(edgeNode);
            edgeNode.put("label", label.fullyQualifiedLabel());
            edgeNode.put("count", labelStats.count());

            ArrayNode propertiesArray = JsonNodeFactory.instance.arrayNode();

            for (PropertySchemaStats stats : labelSchema.propertySchemaStats()) {
                ObjectNode propertyNode = JsonNodeFactory.instance.objectNode();
                propertyNode.put("name", stats.property().toString());
                propertyNode.put("count", stats.observationCount());
                propertiesArray.add(propertyNode);
            }

            edgeNode.set("properties", propertiesArray);
        }
    }