Skip to content

Commit 06b057a

Browse files
committed
Java 7 refactorings can only be applied to Java 7+ projects
1 parent 9387fc2 commit 06b057a

3 files changed

Lines changed: 27 additions & 11 deletions

File tree

plugin/src/main/java/org/autorefactor/refactoring/rules/TryWithResourceRefactoring.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727

2828
import java.util.List;
2929

30+
import org.autorefactor.preferences.Preferences;
3031
import org.autorefactor.refactoring.ASTBuilder;
3132
import org.autorefactor.refactoring.Refactorings;
3233
import org.eclipse.jdt.core.dom.Assignment;
@@ -47,14 +48,21 @@ public class TryWithResourceRefactoring extends AbstractRefactoringRule {
4748

4849
@Override
4950
public String getDescription() {
50-
return "";
51+
return ""
52+
+ "Changes code to make use of Java 7 try-with-resources feature. "
53+
+ "In particular, it removes now useless finally clauses.";
5154
}
5255

5356
@Override
5457
public String getName() {
5558
return "Use try-with-resource";
5659
}
5760

61+
@Override
62+
public boolean isEnabled(Preferences preferences) {
63+
return ctx.getJavaProjectOptions().getJavaSERelease().getMinorVersion() >= 7;
64+
}
65+
5866
@Override
5967
public boolean visit(TryStatement node) {
6068
final List<Statement> tryStmts = asList(node.getBody());

plugin/src/main/java/org/autorefactor/refactoring/rules/UseDiamondOperatorRefactoring.java

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import java.util.Collections;
3030
import java.util.List;
3131

32+
import org.autorefactor.preferences.Preferences;
3233
import org.autorefactor.refactoring.Release;
3334
import org.eclipse.jdt.core.dom.ASTNode;
3435
import org.eclipse.jdt.core.dom.Assignment;
@@ -47,7 +48,6 @@
4748
import static org.eclipse.jdt.core.dom.ASTNode.*;
4849

4950
/** See {@link #getDescription()} method. */
50-
@SuppressWarnings("javadoc")
5151
public class UseDiamondOperatorRefactoring extends AbstractRefactoringRule {
5252

5353
@Override
@@ -60,16 +60,19 @@ public String getName() {
6060
return "Diamond operator";
6161
}
6262

63+
@Override
64+
public boolean isEnabled(Preferences preferences) {
65+
return ctx.getJavaProjectOptions().getJavaSERelease().isCompatibleWith(Release.javaSE("1.7.0"));
66+
}
67+
6368
@Override
6469
public boolean visit(ClassInstanceCreation node) {
65-
if (this.ctx.getJavaProjectOptions().getJavaSERelease().isCompatibleWith(Release.javaSE("1.7.0"))) {
66-
final Type type = node.getType();
67-
if (type.isParameterizedType()
68-
&& node.getAnonymousClassDeclaration() == null
69-
&& parentAllowsDiamondOperator(node)
70-
&& canUseDiamondOperator(node, type)) {
71-
return removeAllTypeArguments((ParameterizedType) type);
72-
}
70+
final Type type = node.getType();
71+
if (type.isParameterizedType()
72+
&& node.getAnonymousClassDeclaration() == null
73+
&& parentAllowsDiamondOperator(node)
74+
&& canUseDiamondOperator(node, type)) {
75+
return removeAllTypeArguments((ParameterizedType) type);
7376
}
7477
return VISIT_SUBTREE;
7578
}

plugin/src/main/java/org/autorefactor/refactoring/rules/UseMultiCatchRefactoring.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import java.util.Map.Entry;
3737
import java.util.Set;
3838

39+
import org.autorefactor.preferences.Preferences;
3940
import org.autorefactor.refactoring.ASTBuilder;
4041
import org.autorefactor.refactoring.ASTHelper;
4142
import org.autorefactor.refactoring.Refactorings;
@@ -61,7 +62,6 @@
6162
import static org.eclipse.jdt.core.dom.ASTNode.*;
6263

6364
/** See {@link #getDescription()} method. */
64-
@SuppressWarnings("javadoc")
6565
public class UseMultiCatchRefactoring extends AbstractRefactoringRule {
6666

6767
@Override
@@ -74,6 +74,11 @@ public String getName() {
7474
return "Multi-catch";
7575
}
7676

77+
@Override
78+
public boolean isEnabled(Preferences preferences) {
79+
return ctx.getJavaProjectOptions().getJavaSERelease().getMinorVersion() >= 7;
80+
}
81+
7782
private static enum MergeDirection {
7883
NONE, UP, DOWN;
7984
}

0 commit comments

Comments
 (0)