public Extension toExtension()

in src/main/java/org/apache/sling/feature/analyser/extensions/AnalyserMetaDataExtension.java [96:123]


    public Extension toExtension(Extension extension) {
        if (isAnalyserMetaDataExtension(extension)) {
            JsonObjectBuilder builder = Json.createObjectBuilder(extension.getJSONStructure().asJsonObject());
            Stream.concat(Stream.concat(manifests.keySet().stream(), reportErrors.keySet().stream()), reportWarnings.keySet().stream()).distinct().forEachOrdered(
                    id -> {
                        JsonObjectBuilder metadata = Json.createObjectBuilder();
                        if (manifests.containsKey(id)) {
                            JsonObjectBuilder manifest = Json.createObjectBuilder();
                            manifests.get(id).forEach(manifest::add);
                            metadata.add("manifest", manifest);
                        }
                        if (reportErrors.containsKey(id) || reportWarnings.containsKey(id)) {
                            JsonObjectBuilder report = Json.createObjectBuilder();
                            if (reportErrors.containsKey(id)) {
                                report.add("error", reportErrors.get(id));
                            }
                            if (reportWarnings.containsKey(id)) {
                                report.add("warning", reportWarnings.get(id));
                            }
                            metadata.add("report", report);
                        }
                        builder.add(id.toMvnId(), metadata);
                    }
            );
            extension.setJSONStructure(builder.build());
        }
        return extension;
    }