private static Object getValue()

in src/main/java/org/apache/sling/bundleresource/impl/BundleResource.java [189:219]


    private static Object getValue(final JsonValue value, final boolean topLevel) {
        switch ( value.getValueType() ) {
            // type NULL -> return null
            case NULL : return null;
            // type TRUE or FALSE -> return boolean
            case FALSE : return false;
            case TRUE : return true;
            // type String -> return String
            case STRING : return ((JsonString)value).getString();
            // type Number -> return long or double
            case NUMBER : final JsonNumber num = (JsonNumber)value;
                          if (num.isIntegral()) {
                               return num.longValue();
                          }
                          return num.doubleValue();
            // type ARRAY -> return list and call this method for each value
            case ARRAY : final List<Object> array = new ArrayList<>();
                         for(final JsonValue x : ((JsonArray)value)) {
                             array.add(getValue(x, false));
                         }
                         return array;
            // type OBJECT -> return map
            case OBJECT : final Map<String, Object> map = new HashMap<>();
                          final JsonObject obj = (JsonObject)value;
                          for(final Map.Entry<String, JsonValue> entry : obj.entrySet()) {
                              map.put(entry.getKey(), getValue(entry.getValue(), false));
                          }
                          return map;
        }
        return null;
    }