private AnalyserMetaDataExtension()

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


    private AnalyserMetaDataExtension(JsonObject json) {

        for (Map.Entry<String, JsonValue> entry : json.entrySet()) {

            // handle system bundle separately
            if (entry.getKey().equals(SYSTEM_BUNDLE_KEY)) {
                JsonObject systemBundleConfig = entry.getValue().asJsonObject();
                JsonObject manifestObj = systemBundleConfig.getJsonObject(MANIFEST_KEY);
                String artifactId =
                        systemBundleConfig.getJsonString(ARTIFACT_ID_KEY).getString();
                String scannerCacheKey =
                        systemBundleConfig.getJsonString(SCANNER_CACHE_KEY).getString();

                Map<String, String> manifest = new HashMap<>();
                for (String key : manifestObj.keySet()) {
                    manifest.put(key, manifestObj.getString(key));
                }
                systemBundle = new SystemBundle(manifest, ArtifactId.fromMvnId(artifactId), scannerCacheKey);

                continue;
            }

            ArtifactId id = ArtifactId.fromMvnId(entry.getKey());
            JsonObject headers = entry.getValue().asJsonObject();
            if (headers.containsKey(MANIFEST_KEY)) {
                Map<String, String> manifest = new LinkedHashMap<>();
                JsonObject manifestHeaders = headers.getJsonObject(MANIFEST_KEY);
                for (String name : manifestHeaders.keySet()) {
                    manifest.put(name, manifestHeaders.getString(name));
                }
                this.manifests.put(id, manifest);
            }
            if (headers.containsKey(REPORT_KEY)) {
                JsonObject report = headers.getJsonObject(REPORT_KEY);
                if (report.containsKey(WARNING_KEY)) {
                    reportWarnings.put(id, report.getBoolean(WARNING_KEY));
                }
                if (report.containsKey(ERROR_KEY)) {
                    reportErrors.put(id, report.getBoolean(ERROR_KEY));
                }
            }
        }
    }