public MethodInjectionPoint [ ] resolve ( final Class type ) { // lookup methods ClassDescriptor cd = ClassIntrospector . get ( ) . lookup ( type ) ; List < MethodInjectionPoint > list = new ArrayList <> ( ) ; MethodDescriptor [ ] allMethods = cd . getAllMethodDescriptors ( ) ; for ( MethodDescriptor methodDescriptor : allMethods ) { Method method = methodDescriptor . getMethod ( ) ; if ( ClassUtil . isBeanPropertySetter ( method ) ) { // ignore setters continue ; } if ( method . getParameterTypes ( ) . length == 0 ) { // ignore methods with no argument continue ; } BeanReferences [ ] references = referencesResolver . readAllReferencesFromAnnotation ( method ) ; if ( references != null ) { MethodInjectionPoint methodInjectionPoint = new MethodInjectionPoint ( method , references ) ; list . add ( methodInjectionPoint ) ; } } final MethodInjectionPoint [ ] methodInjectionPoints ; if ( list . isEmpty ( ) ) { methodInjectionPoints = MethodInjectionPoint . EMPTY ; } else { methodInjectionPoints = list . toArray ( new MethodInjectionPoint [ 0 ] ) ; } return methodInjectionPoints ; }
Resolve method injection points in given class .