Skip to content

Commit d9917d5

Browse files
author
Fabrice-TIERCELIN
committed
Use canonical names instead of literal strings
1 parent b83d452 commit d9917d5

11 files changed

Lines changed: 23 additions & 26 deletions

plugin/src/main/java/org/autorefactor/jdt/internal/corext/dom/ASTNodeFactory.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1014,9 +1014,16 @@ public Name name(String... names) {
10141014
if (names.length == 0) {
10151015
throw new IllegalArgumentException(null, "Expected at least one name, but was given 0 names"); //$NON-NLS-1$
10161016
}
1017+
10171018
if (names.length == 1) {
1018-
return simpleName(names[0]);
1019+
String[] simpleNames= names[0].split("\\.");
1020+
if (simpleNames.length == 1) {
1021+
return simpleName(simpleNames[0]);
1022+
}
1023+
1024+
return ast.newName(simpleNames);
10191025
}
1026+
10201027
return ast.newName(names);
10211028
}
10221029

plugin/src/main/java/org/autorefactor/jdt/internal/ui/fix/AbstractUnitTestCleanUp.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ private MethodInvocation invokeMethod(final ASTNodeFactory b, final MethodInvoca
341341
Expression qualifiedMethod;
342342
if (originalMethod.getExpression() == null && !staticImports.contains(qualifiedMethodName + "." + methodName) //$NON-NLS-1$
343343
&& !staticImports.contains(qualifiedMethodName + ".*")) { //$NON-NLS-1$
344-
qualifiedMethod= b.name(qualifiedMethodName.split("\\.")); //$NON-NLS-1$
344+
qualifiedMethod= b.name(qualifiedMethodName);
345345
} else {
346346
qualifiedMethod= b.copyExpression(originalMethod);
347347
}

plugin/src/main/java/org/autorefactor/jdt/internal/ui/fix/AddAllRatherThanLoopCleanUp.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -194,9 +194,7 @@ private void replaceWithCollectionsAddAll(final Statement node, final Expression
194194
final MethodInvocation mi, final Set<String> classesToUseWithImport) {
195195
ASTNodeFactory b= ctx.getASTBuilder();
196196
ctx.getRefactorings().replace(node,
197-
b.toStatement(b.invoke(
198-
classesToUseWithImport.contains(Collections.class.getCanonicalName()) ? b.name("Collections") //$NON-NLS-1$
199-
: b.name("java", "util", "Collections"), //$NON-NLS-1$ $NON-NLS-2$ $NON-NLS-3$
197+
b.toStatement(b.invoke(b.name(classesToUseWithImport.contains(Collections.class.getCanonicalName()) ? Collections.class.getSimpleName() : Collections.class.getCanonicalName()),
200198
"addAll", mi.getExpression() != null ? b.copy(mi.getExpression()) : b.this0(), //$NON-NLS-1$
201199
b.copy(iterable))));
202200
}

plugin/src/main/java/org/autorefactor/jdt/internal/ui/fix/BooleanCleanUp.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -467,9 +467,9 @@ private Expression getExpression(Expression condition, String expressionTypeName
467467

468468
private Name getBooleanName(ASTNode node) {
469469
if (!isSimpleNameAlreadyUsed("Boolean", ASTNodes.getAncestor(node, CompilationUnit.class))) { //$NON-NLS-1$
470-
return b.name("Boolean"); //$NON-NLS-1$
470+
return b.simpleName("Boolean"); //$NON-NLS-1$
471471
}
472-
return b.name(Boolean.class.getCanonicalName());
472+
return b.simpleName(Boolean.class.getCanonicalName());
473473
}
474474

475475
private boolean isSimpleNameAlreadyUsed(String simpleName, CompilationUnit cu) {

plugin/src/main/java/org/autorefactor/jdt/internal/ui/fix/EnumSetRatherThanHashSetCleanUp.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import org.eclipse.jdt.core.dom.ClassInstanceCreation;
3838
import org.eclipse.jdt.core.dom.Expression;
3939
import org.eclipse.jdt.core.dom.MethodInvocation;
40+
import org.eclipse.jdt.core.dom.Name;
4041
import org.eclipse.jdt.core.dom.Type;
4142
import org.eclipse.jdt.core.dom.TypeLiteral;
4243

@@ -112,19 +113,18 @@ boolean maybeReplace(ClassInstanceCreation cic, Set<String> alreadyImportedClass
112113
ASTNodeFactory b= ctx.getASTBuilder();
113114
List<Expression> arguments= ASTNodes.arguments(cic);
114115
final MethodInvocation invocation;
116+
final Name newClassName= b.name(alreadyImportedClasses.contains(EnumSet.class.getCanonicalName()) ? EnumSet.class.getSimpleName() : EnumSet.class.getCanonicalName());
115117

116118
if (!arguments.isEmpty() && ASTNodes.instanceOf(arguments.get(0), Collection.class.getCanonicalName())) {
117119
Expression typeArg= arguments.get(0);
118120
if (!ASTNodes.instanceOf(typeArg, EnumSet.class.getCanonicalName())) {
119121
return true;
120122
}
121-
invocation= b.invoke(alreadyImportedClasses.contains(EnumSet.class.getCanonicalName()) ? b.name("EnumSet") //$NON-NLS-1$
122-
: b.name("java", "util", "EnumSet"), "copyOf", b.copy(typeArg)); //$NON-NLS-1$ $NON-NLS-2$ $NON-NLS-3$ $NON-NLS-4$
123+
invocation= b.invoke(newClassName, "copyOf", b.copy(typeArg)); //$NON-NLS-1$
123124
} else {
124125
TypeLiteral newTypeLiteral= ctx.getAST().newTypeLiteral();
125126
newTypeLiteral.setType(b.copy(type));
126-
invocation= b.invoke(alreadyImportedClasses.contains(EnumSet.class.getCanonicalName()) ? b.name("EnumSet") //$NON-NLS-1$
127-
: b.name("java", "util", "EnumSet"), "noneOf", newTypeLiteral); //$NON-NLS-1$ $NON-NLS-2$ $NON-NLS-3$ $NON-NLS-4$
127+
invocation= b.invoke(newClassName, "noneOf", newTypeLiteral); //$NON-NLS-1$
128128
}
129129

130130
ctx.getRefactorings().replace(cic, invocation);

plugin/src/main/java/org/autorefactor/jdt/internal/ui/fix/FillRatherThanLoopCleanUp.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,9 +124,7 @@ private void replaceWithArraysFill(final ForStatement node, final Set<String> cl
124124
final Assignment assignment, final ArrayAccess arrayAccess) {
125125
ASTNodeFactory b= ctx.getASTBuilder();
126126
ctx.getRefactorings().replace(node,
127-
b.toStatement(b.invoke(
128-
classesToUseWithImport.contains(Arrays.class.getCanonicalName()) ? b.name("Arrays") //$NON-NLS-1$
129-
: b.name("java", "util", "Arrays"), //$NON-NLS-1$ $NON-NLS-2$ $NON-NLS-3$
127+
b.toStatement(b.invoke(b.name(classesToUseWithImport.contains(Arrays.class.getCanonicalName()) ? Arrays.class.getSimpleName() : Arrays.class.getCanonicalName()),
130128
"fill", b.copy(arrayAccess.getArray()), //$NON-NLS-1$
131129
b.copy(assignment.getRightHandSide()))));
132130
}

plugin/src/main/java/org/autorefactor/jdt/internal/ui/fix/IfRatherThanTwoSwitchCasesCleanUp.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ private Expression buildEquality(final ASTNodeFactory b, final Expression discri
224224
equality= b.invoke(b.copy(value), "equals", b.copy(discriminant)); //$NON-NLS-1$
225225
} else if (value.resolveTypeBinding() != null && value.resolveTypeBinding().isEnum()) {
226226
equality= b.infixExpression(b.copy(discriminant), InfixExpression.Operator.EQUALS, b.getAST().newQualifiedName(
227-
b.name(value.resolveTypeBinding().getQualifiedName().split("\\.")), b.copy((SimpleName) value))); //$NON-NLS-1$
227+
b.name(value.resolveTypeBinding().getQualifiedName()), b.copy((SimpleName) value))); //$NON-NLS-1$
228228
} else {
229229
equality= b.infixExpression(b.parenthesizeIfNeeded(b.copy(discriminant)), InfixExpression.Operator.EQUALS,
230230
b.copy(value));

plugin/src/main/java/org/autorefactor/jdt/internal/ui/fix/Java7HashRatherThanEclipseJava6HashCleanUp.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -620,8 +620,7 @@ private void refactorHash(final MethodDeclaration node, final Set<String> classe
620620
}
621621

622622
r.replace(statements.get(0),
623-
b.return0(b.invoke(classesToUseWithImport.contains(Objects.class.getCanonicalName()) ? b.name("Objects") //$NON-NLS-1$ $NON-NLS-2$
624-
: b.name("java", "util", "Objects"), "hash", copyOfFields))); //$NON-NLS-1$ $NON-NLS-2$ $NON-NLS-3$ $NON-NLS-4$
623+
b.return0(b.invoke(b.name(classesToUseWithImport.contains(Objects.class.getCanonicalName()) ? Objects.class.getSimpleName() : Objects.class.getCanonicalName()), "hash", copyOfFields)));
625624

626625
for (int i= 1; i < statements.size(); i++) {
627626
r.remove(statements.get(i));

plugin/src/main/java/org/autorefactor/jdt/internal/ui/fix/LambdaExpressionRatherThanComparatorCleanUp.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -246,8 +246,7 @@ private void refactorMethod(final ClassInstanceCreation node, final ITypeBinding
246246
typeMethodRef.setType(b.toType(type, typeNameDecider));
247247
typeMethodRef.setName(b.copy(method.getName()));
248248
final MethodInvocation comparingMethod= b
249-
.invoke(classesToUseWithImport.contains(Comparator.class.getCanonicalName()) ? b.name("Comparator") //$NON-NLS-1$
250-
: b.name("java", "util", "Comparator"), "comparing", typeMethodRef); //$NON-NLS-1$ $NON-NLS-2$ $NON-NLS-3$ $NON-NLS-4$
249+
.invoke(b.name(classesToUseWithImport.contains(Comparator.class.getCanonicalName()) ? Comparator.class.getSimpleName() : Comparator.class.getCanonicalName()), "comparing", typeMethodRef); //$NON-NLS-1$
251250
if (straightOrder) {
252251
r.replace(node, comparingMethod);
253252
} else {
@@ -278,8 +277,7 @@ private void refactorField(final ClassInstanceCreation node, final ITypeBinding
278277
lambdaExpression.setBody(b.fieldAccess(b.simpleName(identifier1), b.copy(field.getName())));
279278
lambdaExpression.setParentheses(false);
280279
final MethodInvocation comparingMethod= b
281-
.invoke(classesToUseWithImport.contains(Comparator.class.getCanonicalName()) ? b.name("Comparator") //$NON-NLS-1$
282-
: b.name("java", "util", "Comparator"), "comparing", lambdaExpression); //$NON-NLS-1$ $NON-NLS-2$ $NON-NLS-3$ $NON-NLS-4$
280+
.invoke(b.name(classesToUseWithImport.contains(Comparator.class.getCanonicalName()) ? Comparator.class.getSimpleName() : Comparator.class.getCanonicalName()), "comparing", lambdaExpression); //$NON-NLS-1$
283281
if (straightOrder) {
284282
r.replace(node, comparingMethod);
285283
} else {

plugin/src/main/java/org/autorefactor/jdt/internal/ui/fix/ObjectsEqualsRatherThanEqualsAndNullCheckCleanUp.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -237,9 +237,7 @@ private void replaceEquals(final IfStatement node, final Name firstField, final
237237
final Refactorings r= this.ctx.getRefactorings();
238238

239239
r.replace(node,
240-
b.if0(b.not(b.invoke(
241-
classesToUseWithImport.contains(Objects.class.getCanonicalName()) ? b.name("Objects") //$NON-NLS-1$ $NON-NLS-2$
242-
: b.name("java", "util", "Objects"), //$NON-NLS-1$ $NON-NLS-2$ $NON-NLS-3$
240+
b.if0(b.not(b.invoke(b.name(classesToUseWithImport.contains(Objects.class.getCanonicalName()) ? Objects.class.getSimpleName() : Objects.class.getCanonicalName()),
243241
"equals", b.copy(firstField), b.copy(secondField))), b.block(b.copy(returnStmt1)))); //$NON-NLS-1$
244242
}
245243
}

0 commit comments

Comments
 (0)