public Extension toExtension()

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


    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_KEY, manifest);
                        }
                        if (reportErrors.containsKey(id) || reportWarnings.containsKey(id)) {
                            JsonObjectBuilder report = Json.createObjectBuilder();
                            if (reportErrors.containsKey(id)) {
                                report.add(ERROR_KEY, reportErrors.get(id));
                            }
                            if (reportWarnings.containsKey(id)) {
                                report.add(WARNING_KEY, reportWarnings.get(id));
                            }
                            metadata.add(REPORT_KEY, report);
                        }
                        builder.add(id.toMvnId(), metadata);
                    });
            extension.setJSONStructure(builder.build());
        }
        return extension;
    }