@SuppressWarnings("unchecked") // Class.cast() would be better - but the Class object may be null public <T> T convertToObject(String string, Class<T> clazz) { return (T)convertToObject(string, (Type) clazz); }
public Map<String, Method> load(Class<?> type) { ImmutableMap.Builder<String, Method> builder = ImmutableMap.builder(); for (Method method : type.getMethods()) { if (method.getParameterTypes().length == 1) { String name = getPropertyName(method); if (name != null) { builder.put(name, method); } } } return builder.build(); } });
return convertToMap((JSONObject) value, null); } else if (value instanceof JSONArray) { return convertToList((JSONArray) value, null); return convertGeneric(value, (ParameterizedType) type); } else if (type.equals(String.class)) { return String.valueOf(value); return Uri.parse(String.valueOf(value)); } else if (type.equals(Map.class)) { return convertToMap((JSONObject) value, null); } else if (type.equals(List.class) || type.equals(Collection.class)) { return convertToList((JSONArray) value, null); } else if (type.equals(Set.class)) { return convertToSet((JSONArray) value, null); return convertToEnum((String) value, clazz); return convertToClass((JSONObject) value, clazz);
private Object convertGeneric(Object value, ParameterizedType type) { Type[] typeArgs = type.getActualTypeArguments(); Class<?> clazz = (Class<?>) type.getRawType(); if (Set.class.isAssignableFrom(clazz)) { return convertToSet((JSONArray) value, typeArgs[0]); } else if (Collection.class.isAssignableFrom(clazz)) { return convertToList((JSONArray) value, typeArgs[0]); } else if (Map.class.isAssignableFrom(clazz)) { return convertToMap((JSONObject) value, typeArgs[1]); } else if (org.apache.shindig.protocol.model.Enum.class.isAssignableFrom(clazz)) { // Special case for opensocial Enum objects. These really need to be refactored to not require // this handling. return convertToOsEnum((JSONObject) value, (Class<?>) typeArgs[0]); } return convertToClass((JSONObject) value, clazz); }
@Before public void setUp() throws Exception { beanJsonConverter = new BeanJsonConverter(Guice.createInjector()); }
@Test public void convertPersonToJson() { Person person = new PersonPopulate(entityManager).createPerson(1, System .currentTimeMillis(), new Random()); jsonConverter.convertToString(person); } }
private Set<Object> convertToSet(JSONArray in, Type type) { return ImmutableSet.copyOf(convertToList(in, type)); }
@Before public void setUp() throws Exception { beanJsonConverter = new BeanJsonConverter(Guice.createInjector()); }
private Object convertGeneric(Object value, ParameterizedType type) { Type[] typeArgs = type.getActualTypeArguments(); Class<?> clazz = (Class<?>) type.getRawType(); if (Set.class.isAssignableFrom(clazz)) { return convertToSet((JSONArray) value, typeArgs[0]); } else if (Collection.class.isAssignableFrom(clazz)) { return convertToList((JSONArray) value, typeArgs[0]); } else if (Map.class.isAssignableFrom(clazz)) { return convertToMap((JSONObject) value, typeArgs[1]); } else if (org.apache.shindig.protocol.model.Enum.class.isAssignableFrom(clazz)) { // Special case for opensocial Enum objects. These really need to be refactored to not require // this handling. return convertToOsEnum((JSONObject) value, (Class<?>) typeArgs[0]); } return convertToClass((JSONObject) value, clazz); }
@Test public void testMetadataMultipleGadgets() throws Exception { registerGadgetsHandler(null); JSONObject request = makeMetadataRequest("en", "US", GADGET1_URL, GADGET2_URL); RpcHandler operation = registry.getRpcHandler(request); Object responseObj = operation.execute(emptyFormItems, token, converter).get(); JSONObject response = new JSONObject(converter.convertToString(responseObj)); JSONObject modulePrefs1 = response.getJSONObject(GADGET1_URL).getJSONObject("modulePrefs"); assertEquals(FakeProcessor.SPEC_TITLE, modulePrefs1.getString("title")); JSONObject modulePrefs2 = response.getJSONObject(GADGET2_URL).getJSONObject("modulePrefs"); assertEquals(FakeProcessor.SPEC_TITLE2, modulePrefs2.getString("title")); }
private Set<Object> convertToSet(JSONArray in, Type type) { return ImmutableSet.copyOf(convertToList(in, type)); }
@SuppressWarnings("unchecked") // Class.cast() would be better - but the Class object may be null public <T> T convertToObject(String string, Class<T> clazz) { return (T)convertToObject(string, (Type) clazz); }
@Before public void setUp() throws Exception { beanJsonConverter = new BeanJsonConverter(Guice.createInjector()); }
return convertToMap((JSONObject) value, null); } else if (value instanceof JSONArray) { return convertToList((JSONArray) value, null); return convertGeneric(value, (ParameterizedType) type); } else if (type.equals(String.class)) { return String.valueOf(value); return Uri.parse(String.valueOf(value)); } else if (type.equals(Map.class)) { return convertToMap((JSONObject) value, null); } else if (type.equals(List.class) || type.equals(Collection.class)) { return convertToList((JSONArray) value, null); } else if (type.equals(Set.class)) { return convertToSet((JSONArray) value, null); return convertToEnum((String) value, clazz); return convertToClass((JSONObject) value, clazz);
private Object convertGeneric(Object value, ParameterizedType type) { Type[] typeArgs = type.getActualTypeArguments(); Class<?> clazz = (Class<?>) type.getRawType(); if (Set.class.isAssignableFrom(clazz)) { return convertToSet((JSONArray) value, typeArgs[0]); } else if (Collection.class.isAssignableFrom(clazz)) { return convertToList((JSONArray) value, typeArgs[0]); } else if (Map.class.isAssignableFrom(clazz)) { return convertToMap((JSONObject) value, typeArgs[1]); } else if (org.apache.shindig.protocol.model.Enum.class.isAssignableFrom(clazz)) { // Special case for opensocial Enum objects. These really need to be refactored to not require // this handling. return convertToOsEnum((JSONObject) value, (Class<?>) typeArgs[0]); } return convertToClass((JSONObject) value, clazz); }
@Test public void testTokenInvalidUrl() throws Exception { registerGadgetsHandler(null); String badUrl = "[moo]"; JSONObject request = makeTokenRequest(badUrl); RpcHandler operation = registry.getRpcHandler(request); Object responseObj = operation.execute(emptyFormItems, authContext, converter).get(); JSONObject response = new JSONObject(converter.convertToString(responseObj)); JSONObject gadget = response.getJSONObject(badUrl); assertEquals("Bad url - " + badUrl, gadget.getJSONObject("error").getString("message")); assertEquals(400, gadget.getJSONObject("error").getInt("code")); }
public Map<String, Method> load(Class<?> type) { ImmutableMap.Builder<String, Method> builder = ImmutableMap.builder(); for (Method method : type.getMethods()) { if (method.getParameterTypes().length == 1) { String name = getPropertyName(method); if (name != null) { builder.put(name, method); } } } return builder.build(); } });
private Set<Object> convertToSet(JSONArray in, Type type) { return ImmutableSet.copyOf(convertToList(in, type)); }
/** * Read the swfconfig from the tag */ SwfObjectConfig getSwfConfig(Element tag, TemplateProcessor processor) { Map<String, String> params = getAllAttributesLowerCase(tag, processor); return (SwfObjectConfig) beanConverter.convertToObject(new JSONObject(params), SwfObjectConfig.class); }
@Before public void setUp() throws Exception { injector = Guice.createInjector(); converter = new BeanJsonConverter(injector); authContext = new FakeGadgetToken(); featureRegistryProvider = new FeatureRegistryProvider() { public FeatureRegistry get(String repository) throws GadgetException { return mockRegistry; } }; authContext.setAppUrl("http://www.example.com/gadget.xml"); }