private static Vector insStringToStringifiedComps ( String str ) throws InvalidNameException { int len = str . length ( ) ; Vector components = new Vector ( 10 ) ; char [ ] id = new char [ len ] ; char [ ] kind = new char [ len ] ; int idCount , kindCount ; boolean idMode ; for ( int i = 0 ; i < len ; ) { idCount = kindCount = 0 ; // reset for new component idMode = true ; // always start off parsing id while ( i < len ) { if ( str . charAt ( i ) == compSeparator ) { break ; } else if ( str . charAt ( i ) == escapeChar ) { if ( i + 1 >= len ) { throw IIOPLogger . ROOT_LOGGER . unescapedCharacter ( str ) ; } else if ( isMeta ( str . charAt ( i + 1 ) ) ) { ++ i ; // skip escape and let meta through if ( idMode ) { id [ idCount ++ ] = str . charAt ( i ++ ) ; } else { kind [ kindCount ++ ] = str . charAt ( i ++ ) ; } } else { throw IIOPLogger . ROOT_LOGGER . invalidEscapedCharacter ( str ) ; } } else if ( idMode && str . charAt ( i ) == kindSeparator ) { // just look for the first kindSeparator ++ i ; // skip kind separator idMode = false ; } else { if ( idMode ) { id [ idCount ++ ] = str . charAt ( i ++ ) ; } else { kind [ kindCount ++ ] = str . charAt ( i ++ ) ; } } } components . addElement ( stringifyComponent ( new NameComponent ( new String ( id , 0 , idCount ) , new String ( kind , 0 , kindCount ) ) ) ) ; if ( i < len ) { ++ i ; // skip separator } } return components ; }
Converts an INS - syntax string name into a Vector in which each element of the vector contains a stringified form of a NameComponent .