Source:
private List<Object> reflect(Method method) { final Annotation[][] annotationsGrid = method.getParameterAnnotations(); if (null == annotationsGrid) return Collections.emptyList(); List<Object> args = new ArrayList<Object>(); for (int i = 0; i < annotationsGrid.length; i++) { Annotation[] annotations = annotationsGrid[i]; Annotation bindingAnnotation = null; boolean preInjectableFound = false; for (Annotation annotation : annotations) { if (Named.class.isInstance(annotation)) { Named named = (Named) annotation; args.add(new NamedParameter(named.value(), method.getGenericParameterTypes()[i])); preInjectableFound = true; break; } else if (annotation.annotationType().isAnnotationPresent(BindingAnnotation.class)) { bindingAnnotation = annotation; } else if (As.class.isInstance(annotation)) { As as = (As) annotation; if (method.isAnnotationPresent(Get.class) || method.isAnnotationPresent(Head.class) || method.isAnnotationPresent(Trace.class)) { if (! as.value().equals(Form.class)) { throw new IllegalArgumentException("Cannot accept a @As(...) request body from" + " method marked @Get, @Head or @Trace: " + method.getDeclaringClass().getName() + "#" + method.getName() + "()"); } } preInjectableFound = true; args.add(new AsParameter(as.value(), TypeLiteral.get(method.getGenericParameterTypes()[i]))); break; } } if (!preInjectableFound) { Class<?> argType = method.getParameterTypes()[i]; Key<?> key = (null != bindingAnnotation) ? Key.get(argType, bindingAnnotation) : Key.get(argType); args.add(key); if (null == injector.getBindings().get(key)) throw new InvalidEventHandlerException( "Encountered an argument not annotated with @Named and not a valid injection key" + " in event handler method: " + method + " " + key); } } return Collections.unmodifiableList(args); }

Target:
private List<Object> reflect(Method method) { final Annotation[][] annotationsGrid = method.getParameterAnnotations(); if (null == annotationsGrid) return Collections.emptyList(); List<Object> args = new ArrayList<Object>(); for (int i = 0; i < annotationsGrid.length; i++) { Annotation[] annotations = annotationsGrid[i]; Annotation bindingAnnotation = null; boolean preInjectableFound = false; for (Annotation annotation : annotations) { if (Named.class.isInstance(annotation)) { Named named = (Named) annotation; args.add(new NamedParameter(named.value(), method.getGenericParameterTypes()[i])); preInjectableFound = true; break; } if (javax.inject.Named.class.isInstance(annotation)) { javax.inject.Named named = (javax.inject.Named) annotation; args.add(new NamedParameter(named.value(), method.getGenericParameterTypes()[i])); preInjectableFound = true; break; } else if (annotation.annotationType().isAnnotationPresent(BindingAnnotation.class)) { bindingAnnotation = annotation; } else if (As.class.isInstance(annotation)) { As as = (As) annotation; if (method.isAnnotationPresent(Get.class) || method.isAnnotationPresent(Head.class) || method.isAnnotationPresent(Trace.class)) { if (! as.value().equals(Form.class)) { throw new IllegalArgumentException("Cannot accept a @As(...) request body from" + " method marked @Get, @Head or @Trace: " + method.getDeclaringClass().getName() + "#" + method.getName() + "()"); } } preInjectableFound = true; args.add(new AsParameter(as.value(), TypeLiteral.get(method.getGenericParameterTypes()[i]))); break; } } if (!preInjectableFound) { Type genericParameterType = method.getGenericParameterTypes()[i]; Key<?> key = (null != bindingAnnotation) ? Key.get(genericParameterType, bindingAnnotation) : Key.get(genericParameterType); args.add(key); if (null == injector.getBindings().get(key)) { throw new InvalidEventHandlerException( "Encountered an argument not annotated with @Named and not a valid injection key" + " in event handler method: " + method + " " + key); } } } return Collections.unmodifiableList(args); }