@ Override public void visitCode ( Code obj ) { try { for ( JavaClass inf : guiInterfaces ) { Method [ ] methods = inf . getMethods ( ) ; for ( Method m : methods ) { if ( m . getName ( ) . equals ( methodName ) && m . getSignature ( ) . equals ( methodSig ) ) { listenerCode . put ( obj , this . getMethod ( ) ) ; return ; } } } isListenerMethod = false ; super . visitCode ( obj ) ; } catch ( StopOpcodeParsingException e ) { // method already reported } }
overrides the visitor to segregate method into two those that implement listeners and those that don t . The ones that don t are processed first .