All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.googlecode.gwt.test.internal.patchers.JSONObjectParser Maven / Gradle / Ivy

There is a newer version: 0.63
Show newest version
package com.googlecode.gwt.test.internal.patchers;

import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONValue;
import com.googlecode.gwt.test.patchers.PatchClass;
import com.googlecode.gwt.test.patchers.PatchMethod;
import com.googlecode.gwt.test.utils.JavaScriptObjects;

import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;

@PatchClass(JSONObject.class)
class JSONObjectParser {

    private static final String JSONOBJECT_MAP = "JSONOBJECT_MAP";

    @PatchMethod
    static void addAllKeys(JSONObject jsonObject, Collection s) {
        Map map = getInnerMap(jsonObject);
        s.addAll(map.keySet());
    }

    @PatchMethod
    static boolean containsKey(JSONObject jsonObject, String key) {
        Map map = getInnerMap(jsonObject);

        return map.containsKey(key);
    }

    @PatchMethod
    static JSONValue get0(JSONObject jsonObject, String key) {
        Map map = getInnerMap(jsonObject);

        return map.get(key);

    }

    @PatchMethod
    static void put0(JSONObject jsonObject, String key, JSONValue value) {
        Map map = getInnerMap(jsonObject);
        map.put(key, value);
    }

    private static Map getInnerMap(JSONObject jsonObject) {
        JavaScriptObject jsObject = jsonObject.getJavaScriptObject();

        Map map = JavaScriptObjects.getObject(jsObject, JSONOBJECT_MAP);
        if (map == null) {
            map = new LinkedHashMap();
            JavaScriptObjects.setProperty(jsObject, JSONOBJECT_MAP, map);
        }

        return map;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy