public BusinessRemoteWrapper getRemoteBusinessWrapper ( WrapperId wrapperId ) { int remoteIndex = wrapperId . ivInterfaceIndex ; BusinessRemoteWrapper wrapper = null ; String wrapperInterfaceName = "" ; if ( remoteIndex < ivBusinessRemote . length ) { wrapper = ivBusinessRemote [ remoteIndex ] ; wrapperInterfaceName = ivBMD . ivBusinessRemoteInterfaceClasses [ remoteIndex ] . getName ( ) ; } // Is the BusinessRemoteWrapper for the correct interface name? String interfaceName = wrapperId . ivInterfaceClassName ; if ( ( wrapper == null ) || ( ! wrapperInterfaceName . equals ( interfaceName ) ) ) { // Nope, index must be invalid, so we need to search the entire // array to find the one that matches the desired interface name. // Fix up the WrapperId with index that matches this server. wrapper = null ; for ( int i = 0 ; i < ivBusinessRemote . length ; ++ i ) { wrapperInterfaceName = ivBMD . ivBusinessRemoteInterfaceClasses [ i ] . getName ( ) ; if ( wrapperInterfaceName . equals ( interfaceName ) ) { // This is the correct wrapper. remoteIndex = i ; wrapper = ivBusinessRemote [ remoteIndex ] ; wrapperId . ivInterfaceIndex = remoteIndex ; break ; } } // d739542 Begin if ( wrapper == null ) { throw new IllegalStateException ( "Remote " + interfaceName + " interface not defined" ) ; } // d739542 End } registerServant ( wrapper , remoteIndex ) ; return wrapper ; }
d419704 - rewrote for new WrapperId fields and remove the todo .