|
From: Richard G C. <pim...@us...> - 2004-07-29 07:57:33
|
Update of /cvsroot/openorb/OpenORB/src/compiler/org/openorb/compiler/rmi/parser In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19724/OpenORB/src/compiler/org/openorb/compiler/rmi/parser Modified Files: MappingAPI.java Log Message: factored out class parsing calls & include generation Index: MappingAPI.java =================================================================== RCS file: /cvsroot/openorb/OpenORB/src/compiler/org/openorb/compiler/rmi/parser/MappingAPI.java,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- MappingAPI.java 28 Jul 2004 16:04:19 -0000 1.17 +++ MappingAPI.java 29 Jul 2004 07:57:24 -0000 1.18 @@ -217,154 +217,54 @@ m_rcp = rcp; } - private void appendTo( final StringBuffer buf, final Object obj ) + private ParserResult parseClass( final Class c ) { - if ( obj instanceof Object[] ) - { - final Object[] array = ( Object[] ) obj; - buf.append( '{' ); - if ( 0 != array.length ) - { - buf.append( '[' ); - appendTo( buf, array[0] ); - buf.append( ']' ); - for ( int i = 1; i < array.length; i++ ) - { - buf.append( ',' ); - buf.append( '[' ); - appendTo( buf, array[i] ); - buf.append( ']' ); - } - } - buf.append( '}' ); - return; - } - buf.append( obj ); - } + final JavaParser parser = new JavaParser( m_rcp, m_ch, + m_javaParser.getCompilationTree(), + m_javaParser.getMappingNames(), + m_javaParser.getAlreadyProcessedClasses() ); + final IdlObject result = parser.parse_java( c.getName() ); - private void display( final Object arg0 ) - { - if ( m_rcp.getM_verbose() ) - { - final StringBuffer buf = new StringBuffer(); - appendTo( buf, arg0 ); - m_ch.display( buf.toString() ); - } - } + // must be called after parse_java because the IdlRoot is chnaged for some types... + m_javaParser.getCompilationTree().add( parser.getIdlTreeRoot() ); - private void display( final Object arg0, final Object arg1, final Object arg2 ) - { - if ( m_rcp.getM_verbose() ) - { - final StringBuffer buf = new StringBuffer(); - appendTo( buf, arg0 ); - appendTo( buf, arg1 ); - appendTo( buf, arg2 ); - m_ch.display( buf.toString() ); - } + return new ParserResult( parser, result ); } - private void display( final Object arg0, final Object arg1, final Object arg2, - final Object arg3, final Object arg4 ) + private final class ParserResult { - if ( m_rcp.getM_verbose() ) + private final JavaParser m_parser; + private final IdlObject m_result; + + ParserResult( final JavaParser parser, final IdlObject result) { - final StringBuffer buf = new StringBuffer(); - appendTo( buf, arg0 ); - appendTo( buf, arg1 ); - appendTo( buf, arg2 ); - appendTo( buf, arg3 ); - appendTo( buf, arg4 ); - m_ch.display( buf.toString() ); + m_parser = parser; + m_result = result; } - } - private void display( final Object arg0, final Object arg1, final Object arg2, - final Object arg3, final Object arg4, final Object arg5, final Object arg6 ) - { - if ( m_rcp.getM_verbose() ) + IdlObject getResult() { - final StringBuffer buf = new StringBuffer(); - appendTo( buf, arg0 ); - appendTo( buf, arg1 ); - appendTo( buf, arg2 ); - appendTo( buf, arg3 ); - appendTo( buf, arg4 ); - appendTo( buf, arg5 ); - appendTo( buf, arg6 ); - m_ch.display( buf.toString() ); + return m_result; } - } - private void display( final Object arg0, final Object arg1, final Object arg2, - final Object arg3, final Object arg4, final Object arg5, final Object arg6, - final Object arg7, final Object arg8 ) - { - if ( m_rcp.getM_verbose() ) + IdlInclude makeRootInclude() { - final StringBuffer buf = new StringBuffer(); - appendTo( buf, arg0 ); - appendTo( buf, arg1 ); - appendTo( buf, arg2 ); - appendTo( buf, arg3 ); - appendTo( buf, arg4 ); - appendTo( buf, arg5 ); - appendTo( buf, arg6 ); - appendTo( buf, arg7 ); - appendTo( buf, arg8 ); - m_ch.display( buf.toString() ); + return new IdlInclude( m_javaParser.getIdlTreeRoot(), + convertName( m_parser.getIdlTreeRoot()._name ) ); } - } - private void display( final Object arg0, final Object arg1, final Object arg2, - final Object arg3, final Object arg4, final Object arg5, final Object arg6, - final Object arg7, final Object arg8, final Object arg9, final Object arg10 ) - { - if ( m_rcp.getM_verbose() ) + IdlInclude makeResultInclude() { - final StringBuffer buf = new StringBuffer(); - appendTo( buf, arg0 ); - appendTo( buf, arg1 ); - appendTo( buf, arg2 ); - appendTo( buf, arg3 ); - appendTo( buf, arg4 ); - appendTo( buf, arg5 ); - appendTo( buf, arg6 ); - appendTo( buf, arg7 ); - appendTo( buf, arg8 ); - appendTo( buf, arg9 ); - appendTo( buf, arg10 ); - m_ch.display( buf.toString() ); + return new IdlInclude( m_javaParser.getIdlTreeRoot(), + convertName( m_result.name() ) ); } - } - private void display( final Object arg0, final Object arg1, final Object arg2, - final Object arg3, final Object arg4, final Object arg5, final Object arg6, - final Object arg7, final Object arg8, final Object arg9, final Object arg10, - final Object arg11, final Object arg12 ) - { - if ( m_rcp.getM_verbose() ) + private String convertName( final String name ) { - final StringBuffer buf = new StringBuffer(); - appendTo( buf, arg0 ); - appendTo( buf, arg1 ); - appendTo( buf, arg2 ); - appendTo( buf, arg3 ); - appendTo( buf, arg4 ); - appendTo( buf, arg5 ); - appendTo( buf, arg6 ); - appendTo( buf, arg7 ); - appendTo( buf, arg8 ); - appendTo( buf, arg9 ); - appendTo( buf, arg10 ); - appendTo( buf, arg11 ); - appendTo( buf, arg12 ); - m_ch.display( buf.toString() ); + return name.replace( '.', '/' ); } } - - /** * Map the java package to an idlModule object in the idl tree * @@ -869,15 +769,12 @@ else { // Parse & map the unknown class - JavaParser locJavaParser = new JavaParser( m_rcp, m_ch, - m_javaParser.getCompilationTree(), m_javaParser.getMappingNames(), - m_javaParser.getAlreadyProcessedClasses() ); display( "map_inheritance -> map unknown class : " + c.getName() ); - locIdlObject = locJavaParser.parse_java( c.getName() ); - // Add the tree associated to this file to the tree List - // and assign to locIdlObj the returned tree - // must be called after parse_java because the IdlRoot is changed for some types... - m_javaParser.getCompilationTree().add( locJavaParser.getIdlTreeRoot() ); + final ParserResult result = parseClass( c ); + + + locIdlObject = result.getResult(); + // Get the good object (Exception = value type + exception) display( "map_inheritance -> look for : " + ( String ) m_javaParser.getMappingNames().get( c.getName() ) + " ( " + c.getName() + " ) " ); @@ -885,9 +782,7 @@ ( String ) m_javaParser.getMappingNames().get( c.getName() ), true ); // Add it to the include files add_idl_object_as_first( m_javaParser.getIdlTreeRoot(), - new IdlInclude( m_javaParser.getIdlTreeRoot(), - locJavaParser.getIdlTreeRoot()._name.replace( '.', - '/' ) ) ); + result.makeRootInclude() ); // Add the inheritance if ( parent instanceof IdlInterface ) { @@ -997,12 +892,9 @@ } else { - JavaParser locJavaParser = new JavaParser( m_rcp, m_ch, - m_javaParser.getCompilationTree(), m_javaParser.getMappingNames(), - m_javaParser.getAlreadyProcessedClasses() ); - locIdlObj = locJavaParser.parse_java( c.getName() ); - // must be called after parse_java because the IdlRoot is changed for some types... - m_javaParser.getCompilationTree().add( locJavaParser.getIdlTreeRoot() ); + final ParserResult result = parseClass( c ); + locIdlObj = result.getResult(); + // Find the good object in this tree locIdlFullName = ( String ) m_javaParser.getMappingNames().get( c.getName() ); if ( locIdlFullName != null ) @@ -1010,9 +902,7 @@ locIdlObj = return_existing_object( locIdlFullName ); // Add it to the include files add_idl_object_as_first( m_javaParser.getIdlTreeRoot(), - new IdlInclude( m_javaParser.getIdlTreeRoot(), - locJavaParser.getIdlTreeRoot()._name.replace( '.', - '/' ) ) ); + result.makeRootInclude() ); // Add it to the tree int ctype = setClassType( c ); if ( ctype == RMI_IDL_VALUE_TYPES_TYPE || ctype == RMI_IDL_CUSTOM_VALUE_TYPES_TYPE ) @@ -1722,27 +1612,19 @@ locExcepName = process_name( locExcepName ); // 2 - Processing differring case // *** Check if it already exists in the compilation tree *** - IdlObject locIdlObj = null; - locIdlObj = return_existing_object( process_new_full_class_name( c, locExcepName ) ); + IdlObject locIdlObj = return_existing_object( process_new_full_class_name( c, locExcepName ) ); if ( locIdlObj == null ) { // Parse & map the unknown class - JavaParser locJavaParser = new JavaParser( m_rcp, m_ch, - m_javaParser.getCompilationTree(), m_javaParser.getMappingNames(), - m_javaParser.getAlreadyProcessedClasses() ); - locIdlObj = locJavaParser.parse_java( c.getName() ); - // Add the tree associated to this file to the tree List - // and assign to locIdlObj the returned tree - // must be called after parse_java because the IdlRoot is changed for some types... - m_javaParser.getCompilationTree().add( locJavaParser.getIdlTreeRoot() ); + final ParserResult result = parseClass( c ); + locIdlObj = result.getResult(); + // Get the good object (Exception = value type + exception locIdlObj = locIdlObj.returnObject( process_new_full_class_name( c, locExcepName ), true ); // Add it to the include files add_idl_object_as_first( m_javaParser.getIdlTreeRoot(), - new IdlInclude( m_javaParser.getIdlTreeRoot(), - locJavaParser.getIdlTreeRoot()._name.replace( '.', - '/' ) ) ); + result.makeRootInclude() ); } // *** Set opaque type if not intialized *** if ( locIdlObj.opaque() == null ) @@ -2198,38 +2080,22 @@ } else { - // Parse & map the unknown class - JavaParser locJavaParser = new JavaParser( m_rcp, m_ch, - m_javaParser.getCompilationTree(), m_javaParser.getMappingNames(), - m_javaParser.getAlreadyProcessedClasses() ); - // Add the tree associated to this file to the tree List - IdlObject locIdlObj1 = null; - locIdlObj1 = locJavaParser.parse_java( c.getName() ); - // must be called after parse_java because the IdlRoot is changed for some types - m_javaParser.getCompilationTree().add( locJavaParser.getIdlTreeRoot() ); + final ParserResult result = parseClass( c ); + final IdlObject locIdlObj1 = result.getResult(); // Add it to the include files add_idl_object_as_first( m_javaParser.getIdlTreeRoot(), - new IdlInclude( m_javaParser.getIdlTreeRoot(), - locJavaParser.getIdlTreeRoot()._name.replace( '.', - '/' ) ) ); + result.makeRootInclude() ); } } else { // Parse & map the unknown class - JavaParser locJavaParser = new JavaParser( m_rcp, m_ch, - m_javaParser.getCompilationTree(), m_javaParser.getMappingNames(), - m_javaParser.getAlreadyProcessedClasses() ); - // Add the tree associated to this file to the tree List - IdlObject locIdlObj1 = null; - locIdlObj1 = locJavaParser.parse_java( c.getName() ); - // must be called after parse_java because the IdlRoot is changed for some types... - m_javaParser.getCompilationTree().add( locJavaParser.getIdlTreeRoot() ); + final ParserResult result = parseClass( c ); + final IdlObject locIdlObj1 = result.getResult(); + // Add it to the include files add_idl_object_as_first( m_javaParser.getIdlTreeRoot(), - new IdlInclude( m_javaParser.getIdlTreeRoot(), - locJavaParser.getIdlTreeRoot()._name.replace( '.', - '/' ) ) ); + result.makeRootInclude() ); } // Check one more time if the class exists now loc_full_class_name = ( String ) m_javaParser.getMappingNames().get( c.getName() ); @@ -2280,12 +2146,9 @@ else { // *** Parse & map the unknown class *** - JavaParser locJavaParser = new JavaParser( m_rcp, m_ch, - m_javaParser.getCompilationTree(), m_javaParser.getMappingNames(), - m_javaParser.getAlreadyProcessedClasses() ); - locIdlObj = locJavaParser.parse_java( c.getName() ); - // must be called after parse_java because the IdlRoot is changed for some types... - m_javaParser.getCompilationTree().add( locJavaParser.getIdlTreeRoot() ); + final ParserResult result = parseClass( c ); + locIdlObj = result.getResult(); + // Find the good object in this tree locArrayIdlFullName = ( String ) m_javaParser.getMappingNames().get( c.getName() ); if ( locArrayIdlFullName != null ) @@ -2293,9 +2156,7 @@ locIdlObj = return_existing_object( locArrayIdlFullName ); // Add it to the include files add_idl_object_as_first( m_javaParser.getIdlTreeRoot(), - new IdlInclude( m_javaParser.getIdlTreeRoot(), - locJavaParser.getIdlTreeRoot()._name.replace( '.', - '/' ) ) ); + result.makeRootInclude() ); // Add it to the tree IdlObject locIdlIdent = new IdlIdent( "", parent, locIdlObj ); parent.addIdlObject( locIdlIdent ); @@ -2551,18 +2412,12 @@ else { // Parse & map the unknown class - JavaParser locJavaParser = new JavaParser( m_rcp, m_ch, - m_javaParser.getCompilationTree(), m_javaParser.getMappingNames(), - m_javaParser.getAlreadyProcessedClasses() ); - // Add the tree associated to this file to the tree vector - locIdlObj = locJavaParser.parse_java( cmpt.getName() ); - // must be called after parse_java because the IdlRoot is changed for some types... - m_javaParser.getCompilationTree().add( locJavaParser.getIdlTreeRoot() ); + final ParserResult result = parseClass( cmpt ); + locIdlObj = result.getResult(); + // Add it to the include files add_idl_object_as_first( m_javaParser.getIdlTreeRoot(), - new IdlInclude( m_javaParser.getIdlTreeRoot(), - locJavaParser.getIdlTreeRoot()._name.replace( '.', - java.io.File.separatorChar ) ) ); + result.makeRootInclude() ); // Find the associated name locIdlObjName = ( String ) m_javaParser.getMappingNames().get( cmpt.getName() ); locIdlObj = return_existing_object( locIdlObjName ); @@ -3004,16 +2859,12 @@ else { // *** Parse & map the unknown class *** - JavaParser locJavaParser = new JavaParser( m_rcp, m_ch, - m_javaParser.getCompilationTree(), m_javaParser.getMappingNames(), - m_javaParser.getAlreadyProcessedClasses() ); - locIdlObj = locJavaParser.parse_java( c.getName() ); - // must be called after parse_java because the IdlRoot is changed for some types - m_javaParser.getCompilationTree().add( locJavaParser.getIdlTreeRoot() ); + final ParserResult result = parseClass( c ); + locIdlObj = result.getResult(); + // Add it to the include files add_idl_object_as_first( m_javaParser.getIdlTreeRoot(), - new IdlInclude( m_javaParser.getIdlTreeRoot(), - locIdlObj.name().replace( '.', '/' ) ) ); + result.makeResultInclude() ); // Add it to the tree locName = locIdlObj.name().replace( '.', '_' ); } @@ -3097,16 +2948,12 @@ else { // *** Parse & map the unknown class *** - JavaParser locJavaParser = new JavaParser( m_rcp, m_ch, - m_javaParser.getCompilationTree(), m_javaParser.getMappingNames(), - m_javaParser.getAlreadyProcessedClasses() ); - locIdlObj = locJavaParser.parse_java( c.getName() ); - // must be called after parse_java because the IdlRoot is changed for some types - m_javaParser.getCompilationTree().add( locJavaParser.getIdlTreeRoot() ); + final ParserResult result = parseClass( c ); + locIdlObj = result.getResult(); + // Add it to the include files add_idl_object_as_first( m_javaParser.getIdlTreeRoot(), - new IdlInclude( m_javaParser.getIdlTreeRoot(), - locIdlObj.name().replace( '.', '/' ) ) ); + result.makeResultInclude() ); // Add it to the tree locName = locIdlObj.name().replace( '.', '_' ); } @@ -3659,4 +3506,151 @@ "], (IdlObject)[", sub_idlObj, "])" ); idlObj._list.insertElementAt( sub_idlObj, 0 ); } + + private void appendTo( final StringBuffer buf, final Object obj ) + { + if ( obj instanceof Object[] ) + { + final Object[] array = ( Object[] ) obj; + buf.append( '{' ); + if ( 0 != array.length ) + { + buf.append( '[' ); + appendTo( buf, array[0] ); + buf.append( ']' ); + for ( int i = 1; i < array.length; i++ ) + { + buf.append( ',' ); + buf.append( '[' ); + appendTo( buf, array[i] ); + buf.append( ']' ); + } + } + buf.append( '}' ); + return; + } + buf.append( obj ); + } + + private void display( final Object arg0 ) + { + if ( m_rcp.getM_verbose() ) + { + final StringBuffer buf = new StringBuffer(); + appendTo( buf, arg0 ); + m_ch.display( buf.toString() ); + } + } + + private void display( final Object arg0, final Object arg1, final Object arg2 ) + { + if ( m_rcp.getM_verbose() ) + { + final StringBuffer buf = new StringBuffer(); + appendTo( buf, arg0 ); + appendTo( buf, arg1 ); + appendTo( buf, arg2 ); + m_ch.display( buf.toString() ); + } + } + + private void display( final Object arg0, final Object arg1, final Object arg2, + final Object arg3, final Object arg4 ) + { + if ( m_rcp.getM_verbose() ) + { + final StringBuffer buf = new StringBuffer(); + appendTo( buf, arg0 ); + appendTo( buf, arg1 ); + appendTo( buf, arg2 ); + appendTo( buf, arg3 ); + appendTo( buf, arg4 ); + m_ch.display( buf.toString() ); + } + } + + private void display( final Object arg0, final Object arg1, final Object arg2, + final Object arg3, final Object arg4, final Object arg5, final Object arg6 ) + { + if ( m_rcp.getM_verbose() ) + { + final StringBuffer buf = new StringBuffer(); + appendTo( buf, arg0 ); + appendTo( buf, arg1 ); + appendTo( buf, arg2 ); + appendTo( buf, arg3 ); + appendTo( buf, arg4 ); + appendTo( buf, arg5 ); + appendTo( buf, arg6 ); + m_ch.display( buf.toString() ); + } + } + + private void display( final Object arg0, final Object arg1, final Object arg2, + final Object arg3, final Object arg4, final Object arg5, final Object arg6, + final Object arg7, final Object arg8 ) + { + if ( m_rcp.getM_verbose() ) + { + final StringBuffer buf = new StringBuffer(); + appendTo( buf, arg0 ); + appendTo( buf, arg1 ); + appendTo( buf, arg2 ); + appendTo( buf, arg3 ); + appendTo( buf, arg4 ); + appendTo( buf, arg5 ); + appendTo( buf, arg6 ); + appendTo( buf, arg7 ); + appendTo( buf, arg8 ); + m_ch.display( buf.toString() ); + } + } + + private void display( final Object arg0, final Object arg1, final Object arg2, + final Object arg3, final Object arg4, final Object arg5, final Object arg6, + final Object arg7, final Object arg8, final Object arg9, final Object arg10 ) + { + if ( m_rcp.getM_verbose() ) + { + final StringBuffer buf = new StringBuffer(); + appendTo( buf, arg0 ); + appendTo( buf, arg1 ); + appendTo( buf, arg2 ); + appendTo( buf, arg3 ); + appendTo( buf, arg4 ); + appendTo( buf, arg5 ); + appendTo( buf, arg6 ); + appendTo( buf, arg7 ); + appendTo( buf, arg8 ); + appendTo( buf, arg9 ); + appendTo( buf, arg10 ); + m_ch.display( buf.toString() ); + } + } + + private void display( final Object arg0, final Object arg1, final Object arg2, + final Object arg3, final Object arg4, final Object arg5, final Object arg6, + final Object arg7, final Object arg8, final Object arg9, final Object arg10, + final Object arg11, final Object arg12 ) + { + if ( m_rcp.getM_verbose() ) + { + final StringBuffer buf = new StringBuffer(); + appendTo( buf, arg0 ); + appendTo( buf, arg1 ); + appendTo( buf, arg2 ); + appendTo( buf, arg3 ); + appendTo( buf, arg4 ); + appendTo( buf, arg5 ); + appendTo( buf, arg6 ); + appendTo( buf, arg7 ); + appendTo( buf, arg8 ); + appendTo( buf, arg9 ); + appendTo( buf, arg10 ); + appendTo( buf, arg11 ); + appendTo( buf, arg12 ); + m_ch.display( buf.toString() ); + } + } + } |