@@ -254,10 +254,13 @@ public boolean visit(Assignment node) {
254254 FieldAccess leftAccess = (FieldAccess ) left ;
255255 varBinding = leftAccess .resolveFieldBinding ();
256256 }
257+ ITypeBinding declaring = null ;
258+ String qName = null ;
257259 if (varBinding != null
258260 && (varBinding .getModifiers () & Modifier .STATIC ) != 0
259- && varBinding .getDeclaringClass () != null
260- && !varBinding .getDeclaringClass ().getQualifiedName ().startsWith ("org.eclipse.swt.internal.xhtml" )) {
261+ && (declaring = varBinding .getDeclaringClass ()) != null
262+ && !(qName = declaring .getQualifiedName ()).startsWith ("org.eclipse.swt.internal.xhtml." )
263+ && !qName .startsWith ("net.sf.j2s.html." )) {
261264 if (!(left instanceof SimpleName || (left instanceof QualifiedName && ((QualifiedName ) left ).getQualifier () instanceof SimpleName )
262265 || (left instanceof FieldAccess && ((FieldAccess ) left ).getExpression () instanceof ThisExpression ))) {
263266 buffer .append ("(((" );
@@ -731,10 +734,13 @@ public void endVisit(PostfixExpression node) {
731734 FieldAccess leftAccess = (FieldAccess ) left ;
732735 varBinding = leftAccess .resolveFieldBinding ();
733736 }
737+ ITypeBinding declaring = null ;
738+ String qName = null ;
734739 if (varBinding != null
735740 && (varBinding .getModifiers () & Modifier .STATIC ) != 0
736- && varBinding .getDeclaringClass () != null
737- && !varBinding .getDeclaringClass ().getQualifiedName ().startsWith ("org.eclipse.swt.internal.xhtml" )) {
741+ && (declaring = varBinding .getDeclaringClass ()) != null
742+ && !(qName = declaring .getQualifiedName ()).startsWith ("org.eclipse.swt.internal.xhtml." )
743+ && !qName .startsWith ("net.sf.j2s.html." )) {
738744 return ;
739745 }
740746 ITypeBinding typeBinding = node .getOperand ().resolveTypeBinding ();
@@ -760,10 +766,13 @@ public boolean visit(PostfixExpression node) {
760766 FieldAccess leftAccess = (FieldAccess ) left ;
761767 varBinding = leftAccess .resolveFieldBinding ();
762768 }
769+ ITypeBinding declaring = null ;
770+ String qName = null ;
763771 if (varBinding != null
764772 && (varBinding .getModifiers () & Modifier .STATIC ) != 0
765- && varBinding .getDeclaringClass () != null
766- && !varBinding .getDeclaringClass ().getQualifiedName ().startsWith ("org.eclipse.swt.internal.xhtml" )) {
773+ && (declaring = varBinding .getDeclaringClass ()) != null
774+ && !(qName = declaring .getQualifiedName ()).startsWith ("org.eclipse.swt.internal.xhtml." )
775+ && !qName .startsWith ("net.sf.j2s.html." )) {
767776 if (!(left instanceof SimpleName || (left instanceof QualifiedName && ((QualifiedName ) left ).getQualifier () instanceof SimpleName )
768777 || (left instanceof FieldAccess && ((FieldAccess ) left ).getExpression () instanceof ThisExpression ))) {
769778 buffer .append ("(((" );
@@ -882,10 +891,13 @@ public boolean visit(PrefixExpression node) {
882891 FieldAccess leftAccess = (FieldAccess ) left ;
883892 varBinding = leftAccess .resolveFieldBinding ();
884893 }
894+ ITypeBinding declaring = null ;
895+ String qName = null ;
885896 if (varBinding != null
886897 && (varBinding .getModifiers () & Modifier .STATIC ) != 0
887- && varBinding .getDeclaringClass () != null
888- && !varBinding .getDeclaringClass ().getQualifiedName ().startsWith ("org.eclipse.swt.internal.xhtml" )) {
898+ && (declaring = varBinding .getDeclaringClass ()) != null
899+ && !(qName = declaring .getQualifiedName ()).startsWith ("org.eclipse.swt.internal.xhtml." )
900+ && !qName .startsWith ("net.sf.j2s.html." )) {
889901 if (!(left instanceof SimpleName || (left instanceof QualifiedName && ((QualifiedName ) left ).getQualifier () instanceof SimpleName )
890902 || (left instanceof FieldAccess && ((FieldAccess ) left ).getExpression () instanceof ThisExpression ))) {
891903 buffer .append ("(((" );
@@ -1022,6 +1034,10 @@ public boolean visit(QualifiedName node) {
10221034 name = "" ;
10231035 }
10241036 }
1037+ String xhtml = "net.sf.j2s.html." ;
1038+ if (name .indexOf (xhtml ) == 0 ) {
1039+ name = name .substring (xhtml .length ());
1040+ }
10251041 if (name .indexOf ("java.lang." ) == 0 ) {
10261042 name = name .substring (10 );
10271043 }
@@ -1033,7 +1049,14 @@ public boolean visit(QualifiedName node) {
10331049 }
10341050 }
10351051 }
1036- node .getQualifier ().accept (this );
1052+ Name qName = node .getQualifier ();
1053+ String nodeStr = qName .toString ();
1054+ if (nodeStr .equals ("net.sf.j2s.html" )
1055+ || nodeStr .equals ("org.eclipse.swt.internal.xhtml" )) {
1056+ node .getName ().accept (this );
1057+ return false ;
1058+ }
1059+ qName .accept (this );
10371060 buffer .append ('.' );
10381061 node .getName ().accept (this );
10391062 return false ;
@@ -1101,12 +1124,24 @@ public boolean visit(TryStatement node) {
11011124 SimpleName exName = element .getException ().getName ();
11021125 catchEName = exName .getIdentifier ();
11031126 }
1104- buffer .append (" catch (" + catchEName + ") {\r \n " );
1105- buffer .append ("if (Clazz.instanceOf (" + catchEName + ", " );
1127+ buffer .append (" catch (" + catchEName + ") " );
1128+ boolean scopeAdded = false ;
1129+ boolean endedWithThrowable = false ;
11061130 for (Iterator iter = catchClauses .iterator (); iter .hasNext ();) {
11071131 CatchClause element = (CatchClause ) iter .next ();
1108- element .getException ().getType ().accept (this );
1109- buffer .append (")) " );
1132+ Type type = element .getException ().getType ();
1133+ String typeName = type .toString ();
1134+ if (!"Throwable" .equals (typeName ) && !"java.lang.Throwable" .equals (typeName )) {
1135+ if (!scopeAdded ) {
1136+ buffer .append ("{\r \n " );
1137+ scopeAdded = true ;
1138+ }
1139+ buffer .append ("if (Clazz.instanceOf (" + catchEName + ", " );
1140+ type .accept (this );
1141+ buffer .append (")) " );
1142+ } else {
1143+ endedWithThrowable = true ;
1144+ }
11101145 SimpleName exName = element .getException ().getName ();
11111146 String eName = exName .getIdentifier ();
11121147 boolean notEName = false ;
@@ -1122,10 +1157,15 @@ public boolean visit(TryStatement node) {
11221157 buffer .append ("\r \n }" );
11231158 }
11241159 if (iter .hasNext ()) {
1125- buffer .append (" else if (Clazz.instanceOf (" + catchEName + ", " );
1160+ buffer .append (" else " );
11261161 }
11271162 }
1128- buffer .append (" else {\r \n throw " + catchEName + ";\r \n }\r \n }" );
1163+ if (!endedWithThrowable ) {
1164+ buffer .append (" else {\r \n throw " + catchEName + ";\r \n }" );
1165+ }
1166+ if (scopeAdded ) {
1167+ buffer .append ("\r \n }" );
1168+ }
11291169 }
11301170 Block finallys = node .getFinally ();
11311171 if (finallys != null ) {
0 commit comments