Skip to content

Commit 51c6069

Browse files
committed
minor refactoring
1 parent 403faef commit 51c6069

File tree

2 files changed

+70
-93
lines changed

2 files changed

+70
-93
lines changed

sources/net.sf.j2s.core/src/net/sf/j2s/core/astvisitors/ASTKeywordVisitor.java

Lines changed: 29 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import org.eclipse.jdt.core.dom.ArrayCreation;
2222
import org.eclipse.jdt.core.dom.ArrayInitializer;
2323
import org.eclipse.jdt.core.dom.ArrayType;
24-
import org.eclipse.jdt.core.dom.AssertStatement;
2524
import org.eclipse.jdt.core.dom.Assignment;
2625
import org.eclipse.jdt.core.dom.Block;
2726
import org.eclipse.jdt.core.dom.BooleanLiteral;
@@ -240,29 +239,20 @@ public boolean visit(Assignment node) {
240239
varBinding = (IVariableBinding) leftTypeBinding;
241240
}
242241
} else if (left instanceof FieldAccess) {
243-
FieldAccess leftAccess = (FieldAccess) left;
244-
varBinding = leftAccess.resolveFieldBinding();
242+
varBinding = ((FieldAccess) left).resolveFieldBinding();
245243
}
246244
String op = node.getOperator().toString();
247245
boolean isMixedOp = (op.trim().length() > 1); // +=, -=, *=, /=, etc.
248-
ITypeBinding declaring = null;
249-
String qName = null;
250246

251247
// TODO BH Q: what does static have to do with anything?
252-
if (varBinding != null && (varBinding.getModifiers() & Modifier.STATIC) != 0
253-
&& (declaring = varBinding.getDeclaringClass()) != null
254-
&& !(qName = declaring.getQualifiedName()).startsWith("org.eclipse.swt.internal.xhtml.")
255-
&& !qName.startsWith("net.sf.j2s.html.")) {
248+
if (checkStaticBinding(varBinding)) {
256249

257250
System.err.println("????static varbinding " + varBinding);
258251

259252
// static variable = ...
260253

261-
boolean directStaticAccess = left instanceof SimpleName
262-
|| (left instanceof QualifiedName && ((QualifiedName) left).getQualifier() instanceof SimpleName)
263-
|| (left instanceof FieldAccess && ((FieldAccess) left).getExpression() instanceof ThisExpression);
264254
ASTNode parent = node.getParent();
265-
boolean needParenthesis = (supportsObjectStaticFields || !directStaticAccess)
255+
boolean needParenthesis = (supportsObjectStaticFields || !haveDirectStaticAccess(left))
266256
&& !(parent instanceof Statement);
267257
if (needParenthesis) {
268258
buffer.append("(");
@@ -503,6 +493,13 @@ public boolean visit(Assignment node) {
503493
return false;
504494
}
505495

496+
private boolean haveDirectStaticAccess(Expression exp) {
497+
return exp instanceof SimpleName
498+
|| (exp instanceof QualifiedName && ((QualifiedName) exp).getQualifier() instanceof SimpleName)
499+
|| (exp instanceof FieldAccess && ((FieldAccess) exp).getExpression() instanceof ThisExpression);
500+
501+
}
502+
506503
public void endVisit(Block node) {
507504
buffer.append("}");
508505
List<ASTFinalVariable> finalVars = ((ASTVariableVisitor) getAdaptable(ASTVariableVisitor.class)).finalVars;
@@ -544,7 +541,7 @@ public void endVisit(MethodDeclaration node) {
544541
ASTFinalVariable f = new ASTFinalVariable(blockLevel + 1, identifier, methodSig);
545542
f.toVariableName = getIndexedVarName(identifier, normalVars.size());
546543
normalVars.remove(f);
547-
if ((binding.getModifiers() & Modifier.FINAL) != 0) {
544+
if (Modifier.isFinal(binding.getModifiers())) {
548545
finalVars.remove(f);
549546
}
550547
visitedVars.remove(f);
@@ -803,12 +800,7 @@ public void endVisit(PostfixExpression node) {
803800
FieldAccess leftAccess = (FieldAccess) left;
804801
varBinding = leftAccess.resolveFieldBinding();
805802
}
806-
ITypeBinding declaring = null;
807-
String qName = null;
808-
if (varBinding != null && (varBinding.getModifiers() & Modifier.STATIC) != 0
809-
&& (declaring = varBinding.getDeclaringClass()) != null
810-
&& !(qName = declaring.getQualifiedName()).startsWith("org.eclipse.swt.internal.xhtml.")
811-
&& !qName.startsWith("net.sf.j2s.html.")) {
803+
if (checkStaticBinding(varBinding)) {
812804
return;
813805
}
814806
ITypeBinding typeBinding = node.getOperand().resolveTypeBinding();
@@ -835,19 +827,11 @@ public boolean visit(PostfixExpression node) {
835827
varBinding = leftAccess.resolveFieldBinding();
836828
}
837829
ITypeBinding typeBinding = left.resolveTypeBinding();
838-
ITypeBinding declaring = null;
839-
String qName = null;
840-
if (varBinding != null && (varBinding.getModifiers() & Modifier.STATIC) != 0
841-
&& (declaring = varBinding.getDeclaringClass()) != null
842-
&& !(qName = declaring.getQualifiedName()).startsWith("org.eclipse.swt.internal.xhtml.")
843-
&& !qName.startsWith("net.sf.j2s.html.")) {
844-
boolean directStaticAccess = left instanceof SimpleName
845-
|| (left instanceof QualifiedName && ((QualifiedName) left).getQualifier() instanceof SimpleName)
846-
|| (left instanceof FieldAccess && ((FieldAccess) left).getExpression() instanceof ThisExpression);
830+
if (checkStaticBinding(varBinding)) {
847831
ASTNode parent = node.getParent();
848832
boolean staticCharType = typeBinding.isPrimitive() && "char".equals(typeBinding.getName());
849833
@SuppressWarnings("null")
850-
boolean needParenthesis = (supportsObjectStaticFields || !directStaticAccess
834+
boolean needParenthesis = (supportsObjectStaticFields || !haveDirectStaticAccess(left)
851835
|| (typeBinding != null && staticCharType))
852836
&& !(parent instanceof Statement || parent instanceof ParenthesizedExpression);
853837
if (needParenthesis) {
@@ -975,17 +959,9 @@ public boolean visit(PrefixExpression node) {
975959
varBinding = leftAccess.resolveFieldBinding();
976960
}
977961
ITypeBinding typeBinding = left.resolveTypeBinding();
978-
ITypeBinding declaring = null;
979-
String qName = null;
980-
if (varBinding != null && (varBinding.getModifiers() & Modifier.STATIC) != 0
981-
&& (declaring = varBinding.getDeclaringClass()) != null
982-
&& !(qName = declaring.getQualifiedName()).startsWith("org.eclipse.swt.internal.xhtml.")
983-
&& !qName.startsWith("net.sf.j2s.html.")) {
984-
boolean directStaticAccess = left instanceof SimpleName
985-
|| (left instanceof QualifiedName && ((QualifiedName) left).getQualifier() instanceof SimpleName)
986-
|| (left instanceof FieldAccess && ((FieldAccess) left).getExpression() instanceof ThisExpression);
962+
if (checkStaticBinding(varBinding)) {
987963
ASTNode parent = node.getParent();
988-
boolean needParenthesis = (supportsObjectStaticFields || !directStaticAccess
964+
boolean needParenthesis = (supportsObjectStaticFields || !haveDirectStaticAccess(left)
989965
|| (typeBinding != null && typeBinding.isPrimitive() && "char".equals(typeBinding.getName())))
990966
&& !(parent instanceof Statement || parent instanceof ParenthesizedExpression);
991967
if (needParenthesis) {
@@ -1111,12 +1087,7 @@ public boolean visit(QualifiedName node) {
11111087
if (nameBinding instanceof IVariableBinding) {
11121088
varBinding = (IVariableBinding) nameBinding;
11131089
}
1114-
ITypeBinding declaring = null;
1115-
String qdName = null;
1116-
if (!supportsObjectStaticFields && varBinding != null && (varBinding.getModifiers() & Modifier.STATIC) != 0
1117-
&& (declaring = varBinding.getDeclaringClass()) != null
1118-
&& !(qdName = declaring.getQualifiedName()).startsWith("org.eclipse.swt.internal.xhtml.")
1119-
&& !qdName.startsWith("net.sf.j2s.html.")) {
1090+
if (!supportsObjectStaticFields && checkStaticBinding(varBinding)) {
11201091
IBinding qBinding = node.getQualifier().resolveBinding();
11211092
if (!(qBinding != null && qBinding instanceof ITypeBinding)) {
11221093
staticFields = true;
@@ -1277,6 +1248,7 @@ public boolean visit(ReturnStatement node) {
12771248

12781249
public void endVisit(ReturnStatement node) {
12791250
buffer.append(";\r\n");
1251+
super.endVisit(node);
12801252
}
12811253

12821254
public boolean visit(StringLiteral node) {
@@ -1416,7 +1388,7 @@ public boolean visit(VariableDeclarationFragment node) {
14161388
ASTVariableVisitor.class)).normalVars;
14171389
f.toVariableName = getIndexedVarName(identifier, normalVars.size());
14181390
normalVars.add(f);
1419-
if ((binding.getModifiers() & Modifier.FINAL) != 0) {
1391+
if (Modifier.isFinal(binding.getModifiers())) {
14201392
finalVars.add(f);
14211393
}
14221394
}
@@ -1706,9 +1678,17 @@ public static boolean isPackageQualified(String className) {
17061678
return true;
17071679
}
17081680

1709-
protected static boolean isStatic(int modifiers) {
1710-
return ((modifiers & Modifier.STATIC) != 0);
1681+
protected static boolean isStatic(IBinding b) {
1682+
return b != null && Modifier.isStatic(b.getModifiers());
17111683
}
17121684

1685+
private boolean checkStaticBinding(IVariableBinding varBinding) {
1686+
ITypeBinding declaring;
1687+
String qName;
1688+
return isStatic(varBinding)
1689+
&& (declaring = varBinding.getDeclaringClass()) != null
1690+
&& !(qName = declaring.getQualifiedName()).startsWith("org.eclipse.swt.internal.xhtml.")
1691+
&& !qName.startsWith("net.sf.j2s.html.");
1692+
}
17131693

17141694
}

0 commit comments

Comments
 (0)