From 0c3c817b224c6fa50db166c0d1edb2b5d3f4162a Mon Sep 17 00:00:00 2001
From: Oleg Sukhodolsky
Date: Wed, 4 May 2005 13:02:48 +0000
Subject: [PATCH] fix for 1194470 (DesignForExtension should ignore enums)
---
.../checks/design/DesignForExtensionCheck.java | 10 +++++++---
.../tools/checkstyle/InputDesignForExtension.java | 12 ++++++++++++
src/xdocs/releasenotes.xml | 11 +++++++++++
3 files changed, 30 insertions(+), 3 deletions(-)
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/design/DesignForExtensionCheck.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/design/DesignForExtensionCheck.java
index b83c7086e..b6c28cf80 100644
--- a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/design/DesignForExtensionCheck.java
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/design/DesignForExtensionCheck.java
@@ -54,7 +54,7 @@ import com.puppycrawl.tools.checkstyle.api.TokenTypes;
*
*
* @author lkuehne
- * @version $Revision: 1.9 $
+ * @version $Revision: 1.10 $
*/
public class DesignForExtensionCheck extends Check
{
@@ -102,7 +102,9 @@ public class DesignForExtensionCheck extends Check
final DetailAST classDef = findContainingClass(aAST);
final DetailAST classMods =
classDef.findFirstToken(TokenTypes.MODIFIERS);
- if (classMods.branchContains(TokenTypes.FINAL)) {
+ if (classDef.getType() == TokenTypes.ENUM_DEF
+ || classMods.branchContains(TokenTypes.FINAL))
+ {
return;
}
@@ -146,7 +148,9 @@ public class DesignForExtensionCheck extends Check
private DetailAST findContainingClass(DetailAST aAST)
{
DetailAST searchAST = aAST;
- while (searchAST.getType() != TokenTypes.CLASS_DEF) {
+ while (searchAST.getType() != TokenTypes.CLASS_DEF
+ && searchAST.getType() != TokenTypes.ENUM_DEF)
+ {
searchAST = searchAST.getParent();
}
return searchAST;
diff --git a/src/testinputs/com/puppycrawl/tools/checkstyle/InputDesignForExtension.java b/src/testinputs/com/puppycrawl/tools/checkstyle/InputDesignForExtension.java
index 0f22e4ffb..258cfcd39 100644
--- a/src/testinputs/com/puppycrawl/tools/checkstyle/InputDesignForExtension.java
+++ b/src/testinputs/com/puppycrawl/tools/checkstyle/InputDesignForExtension.java
@@ -70,3 +70,15 @@ public abstract class InputDesignForExtension
}
}
}
+
+// enums should be skipped
+enum TEnum
+{
+ FIRST,
+ SECOND;
+
+ public int value()
+ {
+ return 3;
+ }
+}
diff --git a/src/xdocs/releasenotes.xml b/src/xdocs/releasenotes.xml
index 69c4ce0f9..0c6d99a9d 100755
--- a/src/xdocs/releasenotes.xml
+++ b/src/xdocs/releasenotes.xml
@@ -10,6 +10,17 @@
+
+ Fixed Bugs:
+
+
+ - DesignForExtension check skips enums now (they are final
+ :). (bug# 1194470)
+
+
+
+
+