@@ -254,10 +254,13 @@ public boolean visit(Assignment node) {
254
254
FieldAccess leftAccess = (FieldAccess ) left ;
255
255
varBinding = leftAccess .resolveFieldBinding ();
256
256
}
257
+ ITypeBinding declaring = null ;
258
+ String qName = null ;
257
259
if (varBinding != null
258
260
&& (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." )) {
261
264
if (!(left instanceof SimpleName || (left instanceof QualifiedName && ((QualifiedName ) left ).getQualifier () instanceof SimpleName )
262
265
|| (left instanceof FieldAccess && ((FieldAccess ) left ).getExpression () instanceof ThisExpression ))) {
263
266
buffer .append ("(((" );
@@ -731,10 +734,13 @@ public void endVisit(PostfixExpression node) {
731
734
FieldAccess leftAccess = (FieldAccess ) left ;
732
735
varBinding = leftAccess .resolveFieldBinding ();
733
736
}
737
+ ITypeBinding declaring = null ;
738
+ String qName = null ;
734
739
if (varBinding != null
735
740
&& (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." )) {
738
744
return ;
739
745
}
740
746
ITypeBinding typeBinding = node .getOperand ().resolveTypeBinding ();
@@ -760,10 +766,13 @@ public boolean visit(PostfixExpression node) {
760
766
FieldAccess leftAccess = (FieldAccess ) left ;
761
767
varBinding = leftAccess .resolveFieldBinding ();
762
768
}
769
+ ITypeBinding declaring = null ;
770
+ String qName = null ;
763
771
if (varBinding != null
764
772
&& (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." )) {
767
776
if (!(left instanceof SimpleName || (left instanceof QualifiedName && ((QualifiedName ) left ).getQualifier () instanceof SimpleName )
768
777
|| (left instanceof FieldAccess && ((FieldAccess ) left ).getExpression () instanceof ThisExpression ))) {
769
778
buffer .append ("(((" );
@@ -882,10 +891,13 @@ public boolean visit(PrefixExpression node) {
882
891
FieldAccess leftAccess = (FieldAccess ) left ;
883
892
varBinding = leftAccess .resolveFieldBinding ();
884
893
}
894
+ ITypeBinding declaring = null ;
895
+ String qName = null ;
885
896
if (varBinding != null
886
897
&& (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." )) {
889
901
if (!(left instanceof SimpleName || (left instanceof QualifiedName && ((QualifiedName ) left ).getQualifier () instanceof SimpleName )
890
902
|| (left instanceof FieldAccess && ((FieldAccess ) left ).getExpression () instanceof ThisExpression ))) {
891
903
buffer .append ("(((" );
@@ -1022,6 +1034,10 @@ public boolean visit(QualifiedName node) {
1022
1034
name = "" ;
1023
1035
}
1024
1036
}
1037
+ String xhtml = "net.sf.j2s.html." ;
1038
+ if (name .indexOf (xhtml ) == 0 ) {
1039
+ name = name .substring (xhtml .length ());
1040
+ }
1025
1041
if (name .indexOf ("java.lang." ) == 0 ) {
1026
1042
name = name .substring (10 );
1027
1043
}
@@ -1033,7 +1049,14 @@ public boolean visit(QualifiedName node) {
1033
1049
}
1034
1050
}
1035
1051
}
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 );
1037
1060
buffer .append ('.' );
1038
1061
node .getName ().accept (this );
1039
1062
return false ;
@@ -1101,12 +1124,24 @@ public boolean visit(TryStatement node) {
1101
1124
SimpleName exName = element .getException ().getName ();
1102
1125
catchEName = exName .getIdentifier ();
1103
1126
}
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 ;
1106
1130
for (Iterator iter = catchClauses .iterator (); iter .hasNext ();) {
1107
1131
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
+ }
1110
1145
SimpleName exName = element .getException ().getName ();
1111
1146
String eName = exName .getIdentifier ();
1112
1147
boolean notEName = false ;
@@ -1122,10 +1157,15 @@ public boolean visit(TryStatement node) {
1122
1157
buffer .append ("\r \n }" );
1123
1158
}
1124
1159
if (iter .hasNext ()) {
1125
- buffer .append (" else if (Clazz.instanceOf (" + catchEName + ", " );
1160
+ buffer .append (" else " );
1126
1161
}
1127
1162
}
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
+ }
1129
1169
}
1130
1170
Block finallys = node .getFinally ();
1131
1171
if (finallys != null ) {
0 commit comments