@Beta public final class FunctionalReflection extends Object
| Constructor and Description | 
|---|
FunctionalReflection()  | 
| Modifier and Type | Method and Description | 
|---|---|
static <T> T | 
newProxy(Class<T> enclosingType,
        com.google.common.base.Function<Invocation,Object> invocationFunction)  | 
static <T> T | 
newProxy(com.google.common.reflect.TypeToken<T> enclosingType,
        com.google.common.base.Function<Invocation,Object> invocationFunction)
Returns a proxy instance that implements  
enclosingType by dispatching method invocations to
 invocationFunction. | 
public static <T> T newProxy(com.google.common.reflect.TypeToken<T> enclosingType,
             com.google.common.base.Function<Invocation,Object> invocationFunction)
enclosingType by dispatching method invocations to
 invocationFunction. The class loader of enclosingType will be used to define the proxy class.
 Usage example:
 httpAdapter = new Function<Invocation, Result>() {
    public Result apply(Invocation in) {
       try {
          HttpRequest request = parseRequest(in);
          HttpResponse response = invoke(request);
          return Result.success(parseJson(response));
       } catch (Exception e) {
          return Result.failure(e);
       }
    }
 };
 
 client = FunctionalReflection.newProxy(Client.class, httpAdapter);
 invocationFunction - returns a result or a top-level exception, or resultIllegalArgumentException - if enclosingType does not specify the type of a Java interfaceAbstractInvocationHandler.invoke(Object, Method, Object[]), 
Reflection.newProxy(Class, java.lang.reflect.InvocationHandler)public static <T> T newProxy(Class<T> enclosingType, com.google.common.base.Function<Invocation,Object> invocationFunction)
Copyright © 2009-2013 jclouds. All Rights Reserved.