private void filterSuperInterfaceMethods ( JavaClass inf , Set < QMethod > infMethods , JavaClass cls ) { try { if ( infMethods . isEmpty ( ) ) { return ; } JavaClass [ ] superInfs = inf . getInterfaces ( ) ; for ( JavaClass superInf : superInfs ) { if ( cls . implementationOf ( superInf ) ) { Set < QMethod > superInfMethods = buildMethodSet ( superInf ) ; infMethods . removeAll ( superInfMethods ) ; if ( infMethods . isEmpty ( ) ) { return ; } } filterSuperInterfaceMethods ( superInf , infMethods , cls ) ; } } catch ( ClassNotFoundException cnfe ) { bugReporter . reportMissingClass ( cnfe ) ; infMethods . clear ( ) ; } }
removes methods found in an interface when a super interface having the same methods is implemented in a parent . While this is somewhat hinky we ll allow it .