diff options
author | rnveach <rveach02@gmail.com> | 2015-10-29 16:09:39 -0400 |
---|---|---|
committer | Michal Kordas <kordas.michal@gmail.com> | 2015-10-31 13:18:20 +0100 |
commit | 91a49a90d40c6adad5f973f792c6b80003a69263 (patch) | |
tree | 80eb71574c4aaaae602d6f523e10681b63b4d47a /src | |
parent | aa89a8aa52c5fde5ede8599d3d30cea87cd06f95 (diff) | |
download | checkstyle-91a49a90d40c6adad5f973f792c6b80003a69263.tar.gz |
Issue #2451: removed excess hierarchy from IllegalTypeCheck
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/IllegalTypeCheck.java | 27 | ||||
-rw-r--r-- | src/test/java/com/puppycrawl/tools/checkstyle/XDocsPagesTest.java | 1 |
2 files changed, 21 insertions, 7 deletions
diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/IllegalTypeCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/IllegalTypeCheck.java index 26184214a..bb9f6598a 100644 --- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/IllegalTypeCheck.java +++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/IllegalTypeCheck.java @@ -23,13 +23,15 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Set; +import java.util.regex.Pattern; import com.google.common.collect.Sets; +import com.puppycrawl.tools.checkstyle.api.Check; import com.puppycrawl.tools.checkstyle.api.DetailAST; import com.puppycrawl.tools.checkstyle.api.FullIdent; import com.puppycrawl.tools.checkstyle.api.TokenTypes; -import com.puppycrawl.tools.checkstyle.checks.AbstractFormatCheck; import com.puppycrawl.tools.checkstyle.utils.CheckUtils; +import com.puppycrawl.tools.checkstyle.utils.CommonUtils; import com.puppycrawl.tools.checkstyle.utils.TokenUtils; /** @@ -89,7 +91,7 @@ import com.puppycrawl.tools.checkstyle.utils.TokenUtils; * @author <a href="mailto:nesterenko-aleksey@list.ru">Aleksey Nesterenko</a> * @author <a href="mailto:andreyselkin@gmail.com">Andrei Selkin</a> */ -public final class IllegalTypeCheck extends AbstractFormatCheck { +public final class IllegalTypeCheck extends Check { /** * A key is pointing to the warning message text in "messages.properties" @@ -97,8 +99,6 @@ public final class IllegalTypeCheck extends AbstractFormatCheck { */ public static final String MSG_KEY = "illegal.type"; - /** Default value of pattern for illegal class name. */ - private static final String DEFAULT_FORMAT = "^(.*[\\.])?Abstract.*$"; /** Abstract classes legal by default. */ private static final String[] DEFAULT_LEGAL_ABSTRACT_NAMES = {}; /** Types illegal by default. */ @@ -132,6 +132,12 @@ public final class IllegalTypeCheck extends AbstractFormatCheck { /** Check methods and fields with only corresponding modifiers. */ private List<Integer> memberModifiers; + /** The format string of the regexp. */ + private String format = "^(.*[\\.])?Abstract.*$"; + + /** The regexp to match against. */ + private Pattern regexp = Pattern.compile(format); + /** * Controls whether to validate abstract class names. */ @@ -139,13 +145,22 @@ public final class IllegalTypeCheck extends AbstractFormatCheck { /** Creates new instance of the check. */ public IllegalTypeCheck() { - super(DEFAULT_FORMAT); setIllegalClassNames(DEFAULT_ILLEGAL_TYPES); setLegalAbstractClassNames(DEFAULT_LEGAL_ABSTRACT_NAMES); setIgnoredMethodNames(DEFAULT_IGNORED_METHOD_NAMES); } /** + * Set the format to the specified regular expression. + * @param format a {@code String} value + * @throws org.apache.commons.beanutils.ConversionException unable to parse format + */ + public void setFormat(String format) { + this.format = format; + regexp = CommonUtils.createPattern(format); + } + + /** * Sets whether to validate abstract class names. * @param validateAbstractClassNames whether abstract class names must be ignored. */ @@ -325,7 +340,7 @@ public final class IllegalTypeCheck extends AbstractFormatCheck { || illegalClassNames.contains(shortName) || validateAbstractClassNames && !legalAbstractClassNames.contains(className) - && getRegexp().matcher(className).find(); + && regexp.matcher(className).find(); } /** diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/XDocsPagesTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/XDocsPagesTest.java index d4d62730e..0ffb433da 100644 --- a/src/test/java/com/puppycrawl/tools/checkstyle/XDocsPagesTest.java +++ b/src/test/java/com/puppycrawl/tools/checkstyle/XDocsPagesTest.java @@ -112,7 +112,6 @@ public class XDocsPagesTest { "SuppressWithNearbyCommentFilter.fileContents", "IllegalTokenTextCheck.compileFlags", "ReturnCountCheck.compileFlags", - "IllegalTypeCheck.compileFlags", "MutableExceptionCheck.compileFlags", "AbstractClassNameCheck.compileFlags", "ClassTypeParameterNameCheck.compileFlags", |