private SecurityToken convertAuthContext(GadgetsHandlerApi.AuthContext authContext, String container, String url, long moduleId, String activeUrl) { if (authContext == null) { return null; } return beanDelegator.createDelegator(authContext, SecurityToken.class, ImmutableMap.<String, Object>of("container", container, "appid", url, "appurl", url, "moduleId", moduleId, "activeurl", activeUrl)); }
/** * Validate all proxied classes to see that all required functions are implemented. * Throws exception if failed validation. * Note that it ignore the extra fields support. * @throws SecurityException * @throws NoSuchMethodException * @throws NoSuchFieldException */ public void validate() throws SecurityException, NoSuchMethodException, NoSuchFieldException { for (Map.Entry<Class<?>, Class<?>> entry : delegatedClasses.entrySet()) { if (!entry.getKey().isEnum()) { validate(entry.getKey(), entry.getValue()); } } }
@Inject public GadgetsHandlerService(Processor processor, IframeUriManager iframeUriManager, SecurityTokenCodec securityTokenCodec, BeanFilter beanFilter) { this.processor = processor; this.iframeUriManager = iframeUriManager; this.securityTokenCodec = securityTokenCodec; this.beanFilter = beanFilter; this.beanDelegator = new BeanDelegator(apiClasses, enumConversionMap); }
public GadgetsHandlerApi.BaseResponse createErrorResponse(Uri url, int code, String error) { GadgetsHandlerApi.Error errorBean = beanDelegator.createDelegator( null, GadgetsHandlerApi.Error.class, ImmutableMap.<String, Object>of( "message", BeanDelegator.nullable(error), "code", code)); return beanDelegator.createDelegator(error, GadgetsHandlerApi.BaseResponse.class, ImmutableMap.<String, Object>of("url", BeanDelegator.nullable(url), "error", errorBean, "responsetimems", BeanDelegator.NULL, "expiretimems", BeanDelegator.NULL)); }
/** * Convert map of fields to common names and nullable values */ public static Map<String, Object> normalizeFields(Map<String, Object> original) { ImmutableMap.Builder<String, Object> builder = ImmutableMap.builder(); if (original != null) { for (Map.Entry<String, Object> entry : original.entrySet()) { builder.put(normalizeName(entry.getKey()), nullable(entry.getValue())); } } return builder.build(); }
return convertEnum((Enum<?>) source); mapBuilder.put(entry.getKey(), createDelegator(entry.getValue())); listBuilder.add(createDelegator(entry)); Class<?> apiInterface = delegatedClasses.get(source.getClass()); return createDelegator(source, apiInterface);
@Test public void testValidateGoodBean() throws Exception { TokenInter p = beanDelegator.createDelegator(null, TokenInter.class, ImmutableMap.<String, Object>of("container", "open", "id", "test")); BeanDelegator.validateDelegator(p); }
Map<String, Object> extraFields) { extraFields = normalizeFields(extraFields); if (source == null && !extraFields.isEmpty()) { return (T) convertEnum((Enum<?>) source); mapBuilder.put(entry.getKey(), createDelegator(entry.getValue(), apiInterface)); mapBuilder.put(entry.getKey(), createDelegator(entry.getValue(), apiInterface)); listBuilder.add(createDelegator(entry, apiInterface));
public void validate(Class<?> dataClass, Class<?> interfaceClass) throws SecurityException, NoSuchMethodException, NoSuchFieldException { for (Method method : interfaceClass.getMethods()) { Method dataMethod = dataClass.getMethod(method.getName(), method.getParameterTypes()); if (dataMethod == null) { throw new NoSuchMethodException("Method " + method.getName() + " is not implemented by " + dataClass.getName()); } if (!validateTypes(dataMethod.getGenericReturnType(), method.getGenericReturnType())) { throw new NoSuchMethodException("Method " + method.getName() + " has wrong return type by " + dataClass.getName()); } } }
@Test public void testCreateJsResponse() throws Exception { Uri jsUri = Uri.parse("http://www.shindig.com/js"); String content = "content"; GadgetsHandlerApi.JsResponse jsResponse = gadgetHandler.createJsResponse(null, jsUri, content, ImmutableSet.of("*"), null); BeanDelegator.validateDelegator(jsResponse); }
protected JsUri createJsUri(GadgetsHandlerApi.JsRequest request) { RenderingContext context = (RenderingContext) (request.getContext() != null ? // TODO: Figure out why maven complain about casting and clean the dummy cast (Object) beanDelegator.convertEnum(request.getContext()) : RenderingContext.GADGET); return new JsUri(request.getRefresh(), request.getDebug(), request.getIgnoreCache(), request.getContainer(), request.getGadget(), request.getFeatures(), request.getLoadedFeatures(), request.getOnload(), false, false, context, request.getUrl(), request.getRepository()); }
private GadgetsHandlerApi.MetadataResponse createMetadataResponse( Uri url, GadgetSpec spec, String iframeUrl, Boolean needsTokenRefresh, Set<String> fields) { return (GadgetsHandlerApi.MetadataResponse) beanFilter.createFilteredBean( beanDelegator.createDelegator(spec, GadgetsHandlerApi.MetadataResponse.class, ImmutableMap.<String, Object>of( "url", url, "error", BeanDelegator.NULL, "iframeurl", BeanDelegator.nullable(iframeUrl), "needstokenrefresh", BeanDelegator.nullable(needsTokenRefresh))), fields); }
@Test public void testValidateGoodBean() throws Exception { TokenInter p = beanDelegator.createDelegator(null, TokenInter.class, ImmutableMap.<String, Object>of("container", "open", "id", "test")); BeanDelegator.validateDelegator(p); }
Map<String, Object> extraFields) { extraFields = normalizeFields(extraFields); if (source == null && !extraFields.isEmpty()) { return (T) convertEnum((Enum<?>) source); mapBuilder.put(entry.getKey(), createDelegator(entry.getValue(), apiInterface)); mapBuilder.put(entry.getKey(), createDelegator(entry.getValue(), apiInterface)); listBuilder.add(createDelegator(entry, apiInterface));
return convertEnum((Enum<?>) source); mapBuilder.put(entry.getKey(), createDelegator(entry.getValue())); listBuilder.add(createDelegator(entry)); Class<?> apiInterface = delegatedClasses.get(source.getClass()); return createDelegator(source, apiInterface);
public void validate(Class<?> dataClass, Class<?> interfaceClass) throws SecurityException, NoSuchMethodException, NoSuchFieldException { for (Method method : interfaceClass.getMethods()) { Method dataMethod = dataClass.getMethod(method.getName(), method.getParameterTypes()); if (dataMethod == null) { throw new NoSuchMethodException("Method " + method.getName() + " is not implemented by " + dataClass.getName()); } if (!validateTypes(dataMethod.getGenericReturnType(), method.getGenericReturnType())) { throw new NoSuchMethodException("Method " + method.getName() + " has wrong return type by " + dataClass.getName()); } } }
/** * Convert map of fields to common names and nullable values */ public static Map<String, Object> normalizeFields(Map<String, Object> original) { ImmutableMap.Builder<String, Object> builder = ImmutableMap.builder(); if (original != null) { for (Map.Entry<String, Object> entry : original.entrySet()) { builder.put(normalizeName(entry.getKey()), nullable(entry.getValue())); } } return builder.build(); }
@Test public void testCreateJsResponse() throws Exception { Uri jsUri = Uri.parse("http://www.shindig.com/js"); String content = "content"; GadgetsHandlerApi.JsResponse jsResponse = gadgetHandler.createJsResponse(null, jsUri, content, ImmutableSet.of("*"), null); BeanDelegator.validateDelegator(jsResponse); }
private SecurityToken convertToken(GadgetsHandlerApi.TokenData token, String container, String url) { if (token == null) { return null; } return beanDelegator.createDelegator(token, SecurityToken.class, ImmutableMap.<String, Object>of("container", container, "appid", url, "appurl", url)); }
private GadgetsHandlerApi.MetadataResponse createMetadataResponse( Uri url, GadgetSpec spec, String iframeUrl, Set<String> fields) { return (GadgetsHandlerApi.MetadataResponse) beanFilter.createFilteredBean( beanDelegator.createDelegator(spec, GadgetsHandlerApi.MetadataResponse.class, ImmutableMap.<String, Object>of( "url", url, "error", BeanDelegator.NULL, "iframeurl", BeanDelegator.nullable(iframeUrl))), fields); }