Class DelegatesToInvocationFunction<S,​F extends com.google.common.base.Function<Invocation,​Object>>

  • Type Parameters:
    S - The enclosing type of the interface that a dynamic proxy like this implements
    F - The function that implements this dynamic proxy
    All Implemented Interfaces:
    InvocationHandler

    @Beta
    public class DelegatesToInvocationFunction<S,​F extends com.google.common.base.Function<Invocation,​Object>>
    extends Object
    implements InvocationHandler
    • Field Detail

      • injector

        protected final com.google.inject.Injector injector
      • ownerType

        protected final com.google.common.reflect.TypeToken<S> ownerType
      • setCaller

        protected final SetCaller setCaller
      • optionalConverter

        protected final com.google.common.base.Function<InvocationSuccess,​com.google.common.base.Optional<Object>> optionalConverter
      • methodInvoker

        protected final F extends com.google.common.base.Function<Invocation,​Object> methodInvoker
    • Method Detail

      • invoke

        public final Object invoke​(Object proxy,
                                   Method invoked,
                                   @Nullable
                                   Object[] argv)
                            throws Throwable

        • proxy.hashCode() delegates to AbstractInvocationHandler#hashCode
        • proxy.toString() delegates to AbstractInvocationHandler#toString
        • proxy.equals(argument) returns true if:
          • proxy and argument are of the same type
          • and AbstractInvocationHandler#equals returns true for the InvocationHandler of argument
        • other method calls are dispatched to #handleInvocation.
        Specified by:
        invoke in interface InvocationHandler
        Throws:
        Throwable
      • methodInvokerFor

        protected com.google.inject.Key<?> methodInvokerFor​(Class<?> returnType)
        attempts to guess the generic type params for the delegate's invocation function based on the supplied type