- Revision
- 1277
- Author
- rfscholte
- Date
- 2011-07-31 05:51:44 -0500 (Sun, 31 Jul 2011)
Log Message
Fixed todo of ClassLoaderLibrary, add small code improvements
Modified Paths
Diff
Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/library/ClassLoaderLibrary.java (1276 => 1277)
--- trunk/qdox/src/main/java/com/thoughtworks/qdox/library/ClassLoaderLibrary.java 2011-07-31 10:23:26 UTC (rev 1276) +++ trunk/qdox/src/main/java/com/thoughtworks/qdox/library/ClassLoaderLibrary.java 2011-07-31 10:51:44 UTC (rev 1277) @@ -97,47 +97,48 @@ } @Override - protected JavaClass resolveJavaClass( String name ) + protected JavaClass resolveJavaClass( final String name ) { JavaClass result = null; for ( ClassLoader classLoader : classLoaders ) { String resource = name; - if(name.indexOf( '$' ) > 0) { + if ( resource.indexOf( '$' ) > 0 ) + { resource = resource.split( "$" )[0]; } - resource = resource.replace( '.', '/' )+".java"; + resource = resource.replace( '.', '/' ) + ".java"; InputStream sourceStream = classLoader.getResourceAsStream( resource ); - if( sourceStream != null ) + if ( sourceStream != null ) { ModelBuilder builder = getModelBuilder(); JavaLexer lexer = new JFlexLexer( sourceStream ); Parser parser = new Parser( lexer, builder ); parser.setDebugLexer( debugLexer ); parser.setDebugParser( debugParser ); - try + try { - if( parser.parse() ) + if ( parser.parse() ) { - //@todo to get class by name - result = builder.getSource().getClasses().get( 0 ); + result = builder.getSource().getClassByName( name ); break; } } - catch( ParseException pe ) + catch ( ParseException pe ) { pe.setSourceInfo( resource ); - if( errorHandler != null ) + if ( errorHandler != null ) { errorHandler.handle( pe ); } - else + else { throw pe; } } } - if( result == null ) { + if ( result == null ) + { try { Class<?> clazz = classLoader.loadClass( name ); @@ -145,8 +146,7 @@ BinaryClassParser parser = new BinaryClassParser( clazz, builder ); if ( parser.parse() ) { - //this works, classloaders parse the FQN (including nested classes) directly - result = builder.getSource().getClasses().get( 0 ); + result = builder.getSource().getClassByName( name ); break; } }
To unsubscribe from this list please visit:
