protected void fixupOverloadedOperationNames ( ) throws RMIIIOPViolationException { for ( int i = 0 ; i < methods . length ; ++ i ) { if ( ( m_flags [ i ] & M_OVERLOADED ) == 0 ) continue ; // Find the operation OperationAnalysis oa = null ; String javaName = methods [ i ] . getName ( ) ; for ( int opIdx = 0 ; oa == null && opIdx < operations . length ; ++ opIdx ) if ( operations [ opIdx ] . getMethod ( ) . equals ( methods [ i ] ) ) oa = operations [ opIdx ] ; if ( oa == null ) continue ; // This method is not mapped. // Calculate new IDL name ParameterAnalysis [ ] params = oa . getParameters ( ) ; StringBuffer b = new StringBuffer ( oa . getIDLName ( ) ) ; if ( params . length == 0 ) b . append ( "__" ) ; for ( int j = 0 ; j < params . length ; ++ j ) { String s = params [ j ] . getTypeIDLName ( ) ; if ( s . startsWith ( "::" ) ) s = s . substring ( 2 ) ; if ( s . startsWith ( "_" ) ) { // remove leading underscore in IDL escaped identifier s = s . substring ( 1 ) ; } b . append ( ' ' ) ; while ( ! "" . equals ( s ) ) { int idx = s . indexOf ( "::" ) ; b . append ( ' ' ) ; if ( idx == - 1 ) { b . append ( s ) ; s = "" ; } else { b . append ( s . substring ( 0 , idx ) ) ; if ( s . length ( ) > idx + 2 && s . charAt ( idx + 2 ) == ' ' ) { // remove leading underscore in IDL escaped identifier s = s . substring ( idx + 3 ) ; } else { s = s . substring ( idx + 2 ) ; } } } } // Set new IDL name oa . setIDLName ( b . toString ( ) ) ; } }
Fixup overloaded operation names . As specified in section 1 . 3 . 2 . 6 .