public void configure() { SetCaller delegateScope = new SetCaller(); bind(CALLER_INVOCATION).toProvider(delegateScope.new CallerInvocationProvider()); bind(SetCaller.class).toInstance(delegateScope); } }
private Object propagateContextToDelegate(Invocation caller) { Class<?> returnType = unwrapIfOptional(caller.getInvokable().getReturnType()); Function<Invocation, Object> delegate; setCaller.enter(caller); try { @SuppressWarnings("unchecked") Key<Function<Invocation, Object>> delegateType = (Key<Function<Invocation, Object>>) methodInvokerFor(returnType); delegate = injector.getInstance(delegateType); } finally { setCaller.exit(); } Object result = FunctionalReflection.newProxy(returnType, delegate); if (isReturnTypeOptional(caller.getInvokable())) { result = optionalConverter.apply(InvocationSuccess.create(caller, result)); } return result; }
private Object propagateContextToDelegate(Invocation caller) { Class<?> returnType = unwrapIfOptional(caller.getInvokable().getReturnType()); Function<Invocation, Object> delegate; setCaller.enter(caller); try { @SuppressWarnings("unchecked") Key<Function<Invocation, Object>> delegateType = (Key<Function<Invocation, Object>>) methodInvokerFor(returnType); delegate = injector.getInstance(delegateType); } finally { setCaller.exit(); } Object result = FunctionalReflection.newProxy(returnType, delegate); if (isReturnTypeOptional(caller.getInvokable())) { result = optionalConverter.apply(InvocationSuccess.create(caller, result)); } return result; }
private Object propagateContextToDelegate(Invocation caller) { Class<?> returnType = unwrapIfOptional(caller.getInvokable().getReturnType()); Function<Invocation, Object> delegate; setCaller.enter(caller); try { @SuppressWarnings("unchecked") Key<Function<Invocation, Object>> delegateType = (Key<Function<Invocation, Object>>) methodInvokerFor(returnType); delegate = injector.getInstance(delegateType); } finally { setCaller.exit(); } Object result = FunctionalReflection.newProxy(returnType, delegate); if (isReturnTypeOptional(caller.getInvokable())) { result = optionalConverter.apply(InvocationSuccess.create(caller, result)); } return result; }
public void configure() { SetCaller delegateScope = new SetCaller(); bind(CALLER_INVOCATION).toProvider(delegateScope.new CallerInvocationProvider()); bind(SetCaller.class).toInstance(delegateScope); } }
private Object propagateContextToDelegate(Invocation caller) { Class<?> returnType = unwrapIfOptional(caller.getInvokable().getReturnType()); Function<Invocation, Object> delegate; setCaller.enter(caller); try { @SuppressWarnings("unchecked") Key<Function<Invocation, Object>> delegateType = (Key<Function<Invocation, Object>>) methodInvokerFor(returnType); delegate = injector.getInstance(delegateType); } finally { setCaller.exit(); } Object result = FunctionalReflection.newProxy(returnType, delegate); if (isReturnTypeOptional(caller.getInvokable())) { result = optionalConverter.apply(InvocationSuccess.create(caller, result)); } return result; }
public void configure() { SetCaller delegateScope = new SetCaller(); bind(CALLER_INVOCATION).toProvider(delegateScope.new CallerInvocationProvider()); bind(SetCaller.class).toInstance(delegateScope); } }
private Object propagateContextToDelegate(Invocation caller) { Class<?> returnType = unwrapIfOptional(caller.getInvokable().getReturnType()); Function<Invocation, Object> delegate; setCaller.enter(caller); try { @SuppressWarnings("unchecked") Key<Function<Invocation, Object>> delegateType = (Key<Function<Invocation, Object>>) methodInvokerFor(returnType); delegate = injector.getInstance(delegateType); } finally { setCaller.exit(); } Object result = FunctionalReflection.newProxy(returnType, delegate); if (isReturnTypeOptional(caller.getInvokable())) { result = optionalConverter.apply(InvocationSuccess.create(caller, result)); } return result; }
public void configure() { SetCaller delegateScope = new SetCaller(); bind(CALLER_INVOCATION).toProvider(delegateScope.new CallerInvocationProvider()); bind(SetCaller.class).toInstance(delegateScope); } }
private Object propagateContextToDelegate(Invocation caller) { Class<?> returnType = unwrapIfOptional(caller.getInvokable().getReturnType()); Function<Invocation, Object> delegate; setCaller.enter(caller); try { @SuppressWarnings("unchecked") Key<Function<Invocation, Object>> delegateType = (Key<Function<Invocation, Object>>) methodInvokerFor(returnType); delegate = injector.getInstance(delegateType); } finally { setCaller.exit(); } Object result = FunctionalReflection.newProxy(returnType, delegate); if (isReturnTypeOptional(caller.getInvokable())) { result = optionalConverter.apply(InvocationSuccess.create(caller, result)); } return result; }
public void configure() { SetCaller delegateScope = new SetCaller(); bind(CALLER_INVOCATION).toProvider(delegateScope.new CallerInvocationProvider()); bind(SetCaller.class).toInstance(delegateScope); } }
public void configure() { SetCaller delegateScope = new SetCaller(); bind(CALLER_INVOCATION).toProvider(delegateScope.new CallerInvocationProvider()); bind(SetCaller.class).toInstance(delegateScope); } }