protected void scanMethods ( ClassFile cf ) { List < ClassFile > methods = cf . getMethods ( ) ; if ( methods == null ) return ; for ( Object obj : methods ) { MethodInfo method = ( MethodInfo ) obj ; if ( scanMethodAnnotations ) { AnnotationsAttribute visible = ( AnnotationsAttribute ) method . getAttribute ( AnnotationsAttribute . visibleTag ) ; AnnotationsAttribute invisible = ( AnnotationsAttribute ) method . getAttribute ( AnnotationsAttribute . invisibleTag ) ; if ( visible != null ) populate ( visible . getAnnotations ( ) , cf . getName ( ) ) ; if ( invisible != null ) populate ( invisible . getAnnotations ( ) , cf . getName ( ) ) ; } if ( scanParameterAnnotations ) { ParameterAnnotationsAttribute paramsVisible = ( ParameterAnnotationsAttribute ) method . getAttribute ( ParameterAnnotationsAttribute . visibleTag ) ; ParameterAnnotationsAttribute paramsInvisible = ( ParameterAnnotationsAttribute ) method . getAttribute ( ParameterAnnotationsAttribute . invisibleTag ) ; if ( paramsVisible != null && paramsVisible . getAnnotations ( ) != null ) { for ( Annotation [ ] anns : paramsVisible . getAnnotations ( ) ) { populate ( anns , cf . getName ( ) ) ; } } if ( paramsInvisible != null && paramsInvisible . getAnnotations ( ) != null ) { for ( Annotation [ ] anns : paramsInvisible . getAnnotations ( ) ) { populate ( anns , cf . getName ( ) ) ; } } } } }
Scanns both the method and its parameters for annotations .