/** * Constructor that wraps an existing object. The parameters on this method * are reversed to avoid conflicting with the other two-arg constructor for * {@code AutoBean<Splittable>} instances. */ protected AbstractAutoBean(T wrapped, AutoBeanFactory factory) { this.factory = factory; usingSimplePeer = false; data = null; this.wrapped = wrapped; // Used by AutoBeanUtils WeakMapping.setWeak(wrapped, AutoBean.class.getName(), this); }
private T createShim() { T toReturn = ProxyAutoBean.makeProxy(beanType, new ShimHandler<T>(this, getWrapped())); WeakMapping.setWeak(toReturn, AutoBean.class.getName(), this); return toReturn; } }
private synchronized JsonSplittable makeSplittable(Object object) { if (JSONObject.NULL.equals(object)) { return null; } /* * Maintain a 1:1 mapping between object instances and JsonSplittables. * Doing this with a WeakHashMap doesn't work, since our c.g.g.thirdparty.json * arrays, coming from Android, appear to have value-based equality. */ JsonSplittable seen = (JsonSplittable) WeakMapping.get(object, JsonSplittable.class.getName()); if (seen == null) { if (object instanceof JSONObject) { seen = new JsonSplittable((JSONObject) object); WeakMapping.setWeak(object, JsonSplittable.class.getName(), seen); } else if (object instanceof JSONArray) { seen = new JsonSplittable((JSONArray) object); WeakMapping.setWeak(object, JsonSplittable.class.getName(), seen); } else if (object instanceof String) { seen = new JsonSplittable(object.toString()); } else if (object instanceof Number) { seen = new JsonSplittable(((Number) object).doubleValue()); } else if (object instanceof Boolean) { seen = new JsonSplittable((Boolean) object); } else { throw new RuntimeException("Unhandled type " + object.getClass()); } } return seen; }
/** * Constructor that wraps an existing object. The parameters on this method * are reversed to avoid conflicting with the other two-arg constructor for * {@code AutoBean<Splittable>} instances. */ protected AbstractAutoBean(T wrapped, AutoBeanFactory factory) { this.factory = factory; usingSimplePeer = false; data = null; this.wrapped = wrapped; // Used by AutoBeanUtils WeakMapping.setWeak(wrapped, AutoBean.class.getName(), this); }
/** * Constructor that wraps an existing object. The parameters on this method * are reversed to avoid conflicting with the other two-arg constructor for * {@code AutoBean<Splittable>} instances. */ protected AbstractAutoBean(T wrapped, AutoBeanFactory factory) { this.factory = factory; usingSimplePeer = false; data = null; this.wrapped = wrapped; // Used by AutoBeanUtils WeakMapping.setWeak(wrapped, AutoBean.class.getName(), this); }
/** * Constructor that wraps an existing object. The parameters on this method * are reversed to avoid conflicting with the other two-arg constructor for * {@code AutoBean<Splittable>} instances. */ protected AbstractAutoBean(T wrapped, AutoBeanFactory factory) { this.factory = factory; usingSimplePeer = false; data = null; this.wrapped = wrapped; // Used by AutoBeanUtils WeakMapping.setWeak(wrapped, AutoBean.class.getName(), this); }
private T createShim() { T toReturn = ProxyAutoBean.makeProxy(beanType, new ShimHandler<T>(this, getWrapped())); WeakMapping.setWeak(toReturn, AutoBean.class.getName(), this); return toReturn; } }
private T createShim() { T toReturn = ProxyAutoBean.makeProxy(beanType, new ShimHandler<T>(this, getWrapped())); WeakMapping.setWeak(toReturn, AutoBean.class.getName(), this); return toReturn; } }
private T createShim() { T toReturn = ProxyAutoBean.makeProxy(beanType, new ShimHandler<T>(this, getWrapped())); WeakMapping.setWeak(toReturn, AutoBean.class.getName(), this); return toReturn; } }
private synchronized JsonSplittable makeSplittable(Object object) { if (JSONObject.NULL.equals(object)) { return null; } /* * Maintain a 1:1 mapping between object instances and JsonSplittables. * Doing this with a WeakHashMap doesn't work, since our c.g.g.thirdparty.json * arrays, coming from Android, appear to have value-based equality. */ JsonSplittable seen = (JsonSplittable) WeakMapping.get(object, JsonSplittable.class.getName()); if (seen == null) { if (object instanceof JSONObject) { seen = new JsonSplittable((JSONObject) object); WeakMapping.setWeak(object, JsonSplittable.class.getName(), seen); } else if (object instanceof JSONArray) { seen = new JsonSplittable((JSONArray) object); WeakMapping.setWeak(object, JsonSplittable.class.getName(), seen); } else if (object instanceof String) { seen = new JsonSplittable(object.toString()); } else if (object instanceof Number) { seen = new JsonSplittable(((Number) object).doubleValue()); } else if (object instanceof Boolean) { seen = new JsonSplittable((Boolean) object); } else { throw new RuntimeException("Unhandled type " + object.getClass()); } } return seen; }
private synchronized JsonSplittable makeSplittable(Object object) { if (JSONObject.NULL.equals(object)) { return null; } /* * Maintain a 1:1 mapping between object instances and JsonSplittables. * Doing this with a WeakHashMap doesn't work, since our c.g.g.thirdparty.json * arrays, coming from Android, appear to have value-based equality. */ JsonSplittable seen = (JsonSplittable) WeakMapping.get(object, JsonSplittable.class.getName()); if (seen == null) { if (object instanceof JSONObject) { seen = new JsonSplittable((JSONObject) object); WeakMapping.setWeak(object, JsonSplittable.class.getName(), seen); } else if (object instanceof JSONArray) { seen = new JsonSplittable((JSONArray) object); WeakMapping.setWeak(object, JsonSplittable.class.getName(), seen); } else if (object instanceof String) { seen = new JsonSplittable(object.toString()); } else if (object instanceof Number) { seen = new JsonSplittable(((Number) object).doubleValue()); } else if (object instanceof Boolean) { seen = new JsonSplittable((Boolean) object); } else { throw new RuntimeException("Unhandled type " + object.getClass()); } } return seen; }
private synchronized JsonSplittable makeSplittable(Object object) { if (JSONObject.NULL.equals(object)) { return null; } /* * Maintain a 1:1 mapping between object instances and JsonSplittables. * Doing this with a WeakHashMap doesn't work, since our c.g.g.thirdparty.json * arrays, coming from Android, appear to have value-based equality. */ JsonSplittable seen = (JsonSplittable) WeakMapping.get(object, JsonSplittable.class.getName()); if (seen == null) { if (object instanceof JSONObject) { seen = new JsonSplittable((JSONObject) object); WeakMapping.setWeak(object, JsonSplittable.class.getName(), seen); } else if (object instanceof JSONArray) { seen = new JsonSplittable((JSONArray) object); WeakMapping.setWeak(object, JsonSplittable.class.getName(), seen); } else if (object instanceof String) { seen = new JsonSplittable(object.toString()); } else if (object instanceof Number) { seen = new JsonSplittable(((Number) object).doubleValue()); } else if (object instanceof Boolean) { seen = new JsonSplittable((Boolean) object); } else { throw new RuntimeException("Unhandled type " + object.getClass()); } } return seen; }