From 541d6e2581aaa22c98059b9e82a167ee4dced4a7 Mon Sep 17 00:00:00 2001 From: rnveach Date: Thu, 5 Nov 2015 07:45:10 -0500 Subject: [PATCH] Issue #2451: removed excess hierarchy from AbstractNameCheck --- config/suppressions.xml | 2 +- .../checks/naming/AbstractNameCheck.java | 29 +++++++++++++++---- .../tools/checkstyle/XDocsPagesTest.java | 11 ------- 3 files changed, 25 insertions(+), 17 deletions(-) diff --git a/config/suppressions.xml b/config/suppressions.xml index 9e6db7ab4..5e076b656 100644 --- a/config/suppressions.xml +++ b/config/suppressions.xml @@ -42,7 +42,7 @@ files="AbstractClassNameCheckTest.java|AbstractTypeAwareCheckTest.java|AbstractJavadocCheckTest.java|AbstractViolationReporterTest.java"/> - + diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/naming/AbstractNameCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/naming/AbstractNameCheck.java index a5387ecce..e35be5257 100644 --- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/naming/AbstractNameCheck.java +++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/naming/AbstractNameCheck.java @@ -19,9 +19,12 @@ package com.puppycrawl.tools.checkstyle.checks.naming; +import java.util.regex.Pattern; + +import com.puppycrawl.tools.checkstyle.api.Check; import com.puppycrawl.tools.checkstyle.api.DetailAST; import com.puppycrawl.tools.checkstyle.api.TokenTypes; -import com.puppycrawl.tools.checkstyle.checks.AbstractFormatCheck; +import com.puppycrawl.tools.checkstyle.utils.CommonUtils; /** * Abstract class for checking that names conform to a specified format. @@ -29,30 +32,46 @@ import com.puppycrawl.tools.checkstyle.checks.AbstractFormatCheck; * @author Rick Giles */ public abstract class AbstractNameCheck - extends AbstractFormatCheck { + extends Check { /** * Message key for invalid pattern error. */ public static final String MSG_INVALID_PATTERN = "name.invalidPattern"; + /** The format string of the regexp. */ + private String format; + + /** The regexp to match against. */ + private Pattern regexp; + /** * Creates a new {@code AbstractNameCheck} instance. * @param format format to check with */ protected AbstractNameCheck(String format) { - super(format); + setFormat(format); + } + + /** + * 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 final void setFormat(String format) { + this.format = format; + regexp = CommonUtils.createPattern(format); } @Override public void visitToken(DetailAST ast) { if (mustCheckName(ast)) { final DetailAST nameAST = ast.findFirstToken(TokenTypes.IDENT); - if (!getRegexp().matcher(nameAST.getText()).find()) { + if (!regexp.matcher(nameAST.getText()).find()) { log(nameAST.getLineNo(), nameAST.getColumnNo(), MSG_INVALID_PATTERN, nameAST.getText(), - getFormat()); + format); } } } diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/XDocsPagesTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/XDocsPagesTest.java index b9196533d..15453bc46 100644 --- a/src/test/java/com/puppycrawl/tools/checkstyle/XDocsPagesTest.java +++ b/src/test/java/com/puppycrawl/tools/checkstyle/XDocsPagesTest.java @@ -110,17 +110,6 @@ public class XDocsPagesTest { private static final List UNDOCUMENTED_PROPERTIES = Arrays.asList( "SuppressWithNearbyCommentFilter.fileContents", - "ClassTypeParameterNameCheck.compileFlags", - "ConstantNameCheck.compileFlags", - "InterfaceTypeParameterNameCheck.compileFlags", - "LocalFinalVariableNameCheck.compileFlags", - "LocalVariableNameCheck.compileFlags", - "MemberNameCheck.compileFlags", - "MethodNameCheck.compileFlags", - "MethodTypeParameterNameCheck.compileFlags", - "ParameterNameCheck.compileFlags", - "StaticVariableNameCheck.compileFlags", - "TypeNameCheck.compileFlags", "SuppressionCommentFilter.fileContents", "MethodNameCheck.applyToPackage", "MethodNameCheck.applyToPrivate",