question: private void createMethods ( IBinaryMethod [ ] iMethods , long sourceLevel , char [ ] [ ] [ ] missingTypeNames ) { int total = 0 , initialTotal = 0 , iClinit = - 1 ; int [ ] toSkip = null ; if ( iMethods != null ) { total = initialTotal = iMethods . length ; boolean keepBridgeMethods = sourceLevel < ClassFileConstants . JDK1_5 ; for ( int i = total ; -- i >= 0 ; ) { IBinaryMethod method = iMethods [ i ] ; if ( ( method . getModifiers ( ) & ClassFileConstants . AccSynthetic ) != 0 ) { if ( keepBridgeMethods && ( method . getModifiers ( ) & ClassFileConstants . AccBridge ) != 0 ) continue ; if ( toSkip == null ) toSkip = new int [ iMethods . length ] ; toSkip [ i ] = - 1 ; total -- ; } else if ( iClinit == - 1 ) { char [ ] methodName = method . getSelector ( ) ; if ( methodName . length == 8 && methodName [ 0 ] == '<' ) { iClinit = i ; total -- ; } } } } if ( total == 0 ) { this . methods = Binding . NO_METHODS ; return ; } boolean hasRestrictedAccess = hasRestrictedAccess ( ) ; this . methods = new MethodBinding [ total ] ; if ( total == initialTotal ) { for ( int i = 0 ; i < initialTotal ; i ++ ) { MethodBinding method = createMethod ( iMethods [ i ] , sourceLevel , missingTypeNames ) ; if ( hasRestrictedAccess ) method . modifiers |= ExtraCompilerModifiers . AccRestrictedAccess ; this . methods [ i ] = method ; } } else { for ( int i = 0 , index = 0 ; i < initialTotal ; i ++ ) { if ( iClinit != i && ( toSkip == null || toSkip [ i ] != - 1 ) ) { MethodBinding method = createMethod ( iMethods [ i ] , sourceLevel , missingTypeNames ) ; if ( hasRestrictedAccess ) method . modifiers |= ExtraCompilerModifiers . AccRestrictedAccess ; this . methods [ index ++ ] = method ; } } } }
target:  Create method bindings for binary type, filtering out <clinit> and synthetics 