@SuppressWarnings({ "unchecked" }) private static Key<? extends Function<HttpResponse, ?>> getJsonParserKeyForMethod(Invokable<?, ?> invoked) { ParameterizedType parserType; if (invoked.isAnnotationPresent(Unwrap.class)) { parserType = newParameterizedType(UnwrapOnlyJsonValue.class, getReturnTypeFor(invoked.getReturnType())); } else if (invoked.isAnnotationPresent(Transform.class)) { // At this point, there's no user-configured response parser. Make a default one from Transform's input. TypeToken<? extends Function> fn = TypeToken.of(invoked.getAnnotation(Transform.class).value()); Type fnInput = ((ParameterizedType) fn.getSupertype(Function.class).getType()).getActualTypeArguments()[0]; parserType = newParameterizedType(ParseJson.class, fnInput); } else { parserType = newParameterizedType(ParseJson.class, getReturnTypeFor(invoked.getReturnType())); } return (Key<? extends Function<HttpResponse, ?>>) Key.get(parserType); }
@SuppressWarnings({ "unchecked" }) private static Key<? extends Function<HttpResponse, ?>> getJsonParserKeyForMethod(Invokable<?, ?> invoked) { ParameterizedType parserType; if (invoked.isAnnotationPresent(Unwrap.class)) { parserType = newParameterizedType(UnwrapOnlyJsonValue.class, getReturnTypeFor(invoked.getReturnType())); } else if (invoked.isAnnotationPresent(Transform.class)) { // At this point, there's no user-configured response parser. Make a default one from Transform's input. TypeToken<? extends Function> fn = TypeToken.of(invoked.getAnnotation(Transform.class).value()); Type fnInput = ((ParameterizedType) fn.getSupertype(Function.class).getType()).getActualTypeArguments()[0]; parserType = newParameterizedType(ParseJson.class, fnInput); } else { parserType = newParameterizedType(ParseJson.class, getReturnTypeFor(invoked.getReturnType())); } return (Key<? extends Function<HttpResponse, ?>>) Key.get(parserType); }
@SuppressWarnings({ "unchecked" }) private static Key<? extends Function<HttpResponse, ?>> getJsonParserKeyForMethod(Invokable<?, ?> invoked) { ParameterizedType parserType; if (invoked.isAnnotationPresent(Unwrap.class)) { parserType = newParameterizedType(UnwrapOnlyJsonValue.class, getReturnTypeFor(invoked.getReturnType())); } else if (invoked.isAnnotationPresent(Transform.class)) { // At this point, there's no user-configured response parser. Make a default one from Transform's input. TypeToken<? extends Function> fn = TypeToken.of(invoked.getAnnotation(Transform.class).value()); Type fnInput = ((ParameterizedType) fn.getSupertype(Function.class).getType()).getActualTypeArguments()[0]; parserType = newParameterizedType(ParseJson.class, fnInput); } else { parserType = newParameterizedType(ParseJson.class, getReturnTypeFor(invoked.getReturnType())); } return (Key<? extends Function<HttpResponse, ?>>) Key.get(parserType); }
@SuppressWarnings("unchecked") @Override public Function<HttpResponse, ?> apply(HttpRequest in) { GeneratedHttpRequest request = GeneratedHttpRequest.class.cast(in); Function<HttpResponse, ?> transformer; Class<? extends HandlerWithResult<?>> handler = getSaxResponseParserClassOrNull(request.getInvocation() .getInvokable()); if (handler != null) { transformer = parserFactory.create(injector.getInstance(handler)); } else { transformer = getTransformerForMethod(request.getInvocation(), injector); } if (transformer instanceof InvocationContext<?>) { InvocationContext.class.cast(transformer).setContext(request); } if (request.getInvocation().getInvokable().isAnnotationPresent(Transform.class)) { Function<?, ?> wrappingTransformer = injector.getInstance(request.getInvocation().getInvokable() .getAnnotation(Transform.class).value()); if (wrappingTransformer instanceof InvocationContext<?>) { ((InvocationContext<?>) wrappingTransformer).setContext(request); } transformer = compose(Function.class.cast(wrappingTransformer), transformer); } return transformer; }
@SuppressWarnings("unchecked") @Override public Function<HttpResponse, ?> apply(HttpRequest in) { GeneratedHttpRequest request = GeneratedHttpRequest.class.cast(in); Function<HttpResponse, ?> transformer; Class<? extends HandlerWithResult<?>> handler = getSaxResponseParserClassOrNull(request.getInvocation() .getInvokable()); if (handler != null) { transformer = parserFactory.create(injector.getInstance(handler)); } else { transformer = getTransformerForMethod(request.getInvocation(), injector); } if (transformer instanceof InvocationContext<?>) { InvocationContext.class.cast(transformer).setContext(request); } if (request.getInvocation().getInvokable().isAnnotationPresent(Transform.class)) { Function<?, ?> wrappingTransformer = injector.getInstance(request.getInvocation().getInvokable() .getAnnotation(Transform.class).value()); if (wrappingTransformer instanceof InvocationContext<?>) { ((InvocationContext<?>) wrappingTransformer).setContext(request); } transformer = compose(Function.class.cast(wrappingTransformer), transformer); } return transformer; }
@SuppressWarnings("unchecked") @Override public Function<HttpResponse, ?> apply(HttpRequest in) { GeneratedHttpRequest request = GeneratedHttpRequest.class.cast(in); Function<HttpResponse, ?> transformer; Class<? extends HandlerWithResult<?>> handler = getSaxResponseParserClassOrNull(request.getInvocation() .getInvokable()); if (handler != null) { transformer = parserFactory.create(injector.getInstance(handler)); } else { transformer = getTransformerForMethod(request.getInvocation(), injector); } if (transformer instanceof InvocationContext<?>) { InvocationContext.class.cast(transformer).setContext(request); } if (request.getInvocation().getInvokable().isAnnotationPresent(Transform.class)) { Function<?, ?> wrappingTransformer = injector.getInstance(request.getInvocation().getInvokable() .getAnnotation(Transform.class).value()); if (wrappingTransformer instanceof InvocationContext<?>) { ((InvocationContext<?>) wrappingTransformer).setContext(request); } transformer = compose(Function.class.cast(wrappingTransformer), transformer); } return transformer; }
@SuppressWarnings("unchecked") @Override public Function<HttpResponse, ?> apply(HttpRequest in) { GeneratedHttpRequest request = GeneratedHttpRequest.class.cast(in); Function<HttpResponse, ?> transformer; Class<? extends HandlerWithResult<?>> handler = getSaxResponseParserClassOrNull(request.getInvocation() .getInvokable()); if (handler != null) { transformer = parserFactory.create(injector.getInstance(handler)); } else { transformer = getTransformerForMethod(request.getInvocation(), injector); } if (transformer instanceof InvocationContext<?>) { InvocationContext.class.cast(transformer).setContext(request); } if (request.getInvocation().getInvokable().isAnnotationPresent(Transform.class)) { Function<?, ?> wrappingTransformer = injector.getInstance(request.getInvocation().getInvokable() .getAnnotation(Transform.class).value()); if (wrappingTransformer instanceof InvocationContext<?>) { ((InvocationContext<?>) wrappingTransformer).setContext(request); } transformer = compose(Function.class.cast(wrappingTransformer), transformer); } return transformer; }
@SuppressWarnings("unchecked") @Override public Function<HttpResponse, ?> apply(HttpRequest in) { GeneratedHttpRequest request = GeneratedHttpRequest.class.cast(in); Function<HttpResponse, ?> transformer; Class<? extends HandlerWithResult<?>> handler = getSaxResponseParserClassOrNull(request.getInvocation() .getInvokable()); if (handler != null) { HandlerWithResult<?> h = injector.getInstance(handler); transformer = parserFactory.create(h); } else { transformer = getTransformerForMethod(request.getInvocation(), injector); } if (transformer instanceof InvocationContext<?>) { InvocationContext.class.cast(transformer).setContext(request); } if (request.getInvocation().getInvokable().isAnnotationPresent(Transform.class)) { Function<?, ?> wrappingTransformer = injector.getInstance(request.getInvocation().getInvokable() .getAnnotation(Transform.class).value()); if (wrappingTransformer instanceof InvocationContext<?>) { ((InvocationContext<?>) wrappingTransformer).setContext(request); } transformer = Functions.compose(Function.class.cast(wrappingTransformer), transformer); } return transformer; }
@SuppressWarnings("unchecked") @Override public Function<HttpResponse, ?> apply(HttpRequest in) { GeneratedHttpRequest request = GeneratedHttpRequest.class.cast(in); Function<HttpResponse, ?> transformer; Class<? extends HandlerWithResult<?>> handler = getSaxResponseParserClassOrNull(request.getInvocation() .getInvokable()); if (handler != null) { transformer = parserFactory.create(injector.getInstance(handler)); } else { transformer = getTransformerForMethod(request.getInvocation(), injector); } if (transformer instanceof InvocationContext<?>) { InvocationContext.class.cast(transformer).setContext(request); } if (request.getInvocation().getInvokable().isAnnotationPresent(Transform.class)) { Function<?, ?> wrappingTransformer = injector.getInstance(request.getInvocation().getInvokable() .getAnnotation(Transform.class).value()); if (wrappingTransformer instanceof InvocationContext<?>) { ((InvocationContext<?>) wrappingTransformer).setContext(request); } transformer = compose(Function.class.cast(wrappingTransformer), transformer); } return transformer; }