private void setInternalData()

in src/main/java/org/apache/sling/feature/io/json/FeatureJSONReader.java [744:773]


    private void setInternalData(final Extension internalData) throws IOException {
        final JsonValue val = internalData.getJSONStructure();
        for (final Map.Entry<String, JsonValue> entry : checkTypeObject("Extension ".concat(internalData.getName()), val).entrySet()) {
            final String key = entry.getKey();
            if ( JSONConstants.FRAMEWORK_PROPERTIES_METADATA.equals(key) ) {
                for (final Map.Entry<String, JsonValue> propEntry : checkTypeObject(key, entry.getValue()).entrySet()) {
                    final Map<String, Object> metadata = this.feature.getFrameworkPropertyMetadata(propEntry.getKey());
                    if ( metadata == null ) {
                        throw new IOException("Framework property " + propEntry.getKey() + " does not exists (metadata)");
                    }
                    for(final Map.Entry<String, JsonValue> ve : checkTypeObject(JSONConstants.FRAMEWORK_PROPERTIES_METADATA.concat(".").concat(propEntry.getKey()), propEntry.getValue()).entrySet()) {
                        metadata.put(ve.getKey(), org.apache.felix.cm.json.io.Configurations.convertToObject(ve.getValue()));
                    }
                }
            } else if ( JSONConstants.VARIABLES_METADATA.equals(key) ) {
                for (final Map.Entry<String, JsonValue> varEntry : checkTypeObject(key, entry.getValue()).entrySet()) {
                    final Map<String, Object> metadata = this.feature.getVariableMetadata(varEntry.getKey());
                    if ( metadata == null ) {
                        throw new IOException("Variable " + varEntry.getKey() + " does not exists (metadata)");
                    }
                    for(final Map.Entry<String, JsonValue> ve : checkTypeObject(JSONConstants.VARIABLES_METADATA.concat(".").concat(varEntry.getKey()), varEntry.getValue()).entrySet()) {
                        metadata.put(ve.getKey(), org.apache.felix.cm.json.io.Configurations.convertToObject(ve.getValue()));
                    }
                }

            } else {
                throw new IOException("Unknown data in " + internalData.getName() + " : " + key);
            }
        }
    }