From 563f76592dcacffc676e62691c306788b2a38396 Mon Sep 17 00:00:00 2001 From: Oliver Burn Date: Tue, 24 Sep 2002 11:46:34 +0000 Subject: [PATCH] Moved across the check for upper case ell --- .../puppycrawl/tools/checkstyle/Checker.java | 1 - .../tools/checkstyle/Configuration.java | 6 --- .../com/puppycrawl/tools/checkstyle/Defn.java | 3 -- .../puppycrawl/tools/checkstyle/Verifier.java | 5 -- .../tools/checkstyle/api/Check.java | 12 +++++ .../checkstyle/checks/AvoidStarImport.java | 4 +- .../checkstyle/checks/UpperEllCheck.java | 51 +++++++++++++++++++ .../tools/checkstyle/CheckerTest.java | 3 -- .../tools/checkstyle/UpperEllCheckTest.java | 25 +++++++++ 9 files changed, 90 insertions(+), 20 deletions(-) create mode 100644 src/checkstyle/com/puppycrawl/tools/checkstyle/checks/UpperEllCheck.java create mode 100644 src/tests/com/puppycrawl/tools/checkstyle/UpperEllCheckTest.java diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/Checker.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/Checker.java index f73e52755..f5145bef3 100644 --- a/src/checkstyle/com/puppycrawl/tools/checkstyle/Checker.java +++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/Checker.java @@ -475,7 +475,6 @@ public class Checker new String[] {te.getMessage()})); } - System.out.println("mMessages.size() = " + mMessages.size()); if (mMessages.size() == 0) { mCache.checkedOk(aFileName, timestamp); } diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/Configuration.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/Configuration.java index 720db8b0c..9fdd971ca 100644 --- a/src/checkstyle/com/puppycrawl/tools/checkstyle/Configuration.java +++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/Configuration.java @@ -658,12 +658,6 @@ public class Configuration return getBooleanProperty(Defn.IGNORE_BRACES_PROP); } - /** @return whether to ignore long 'L' **/ - boolean isIgnoreLongEll() - { - return getBooleanProperty(Defn.IGNORE_LONG_ELL_PROP); - } - /** @return whether to ignore 'public' keyword in interface definitions **/ boolean isIgnorePublicInInterface() { diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/Defn.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/Defn.java index c28bbd2ce..a78cf6a17 100644 --- a/src/checkstyle/com/puppycrawl/tools/checkstyle/Defn.java +++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/Defn.java @@ -102,8 +102,6 @@ public interface Defn String IGNORE_CAST_WHITESPACE_PROP = "checkstyle.ignore.whitespace.cast"; /** property name for ignoring braces **/ String IGNORE_BRACES_PROP = "checkstyle.ignore.braces"; - /** property name for ignoring long 'L' **/ - String IGNORE_LONG_ELL_PROP = "checkstyle.ignore.longell"; /** property name for ignoring 'public' in interface definitions **/ String IGNORE_PUBLIC_IN_INTERFACE_PROP = "checkstyle.ignore.public.in.interface"; @@ -151,7 +149,6 @@ public interface Defn IGNORE_CAST_WHITESPACE_PROP, IGNORE_IMPORTS_PROP, IGNORE_IMPORT_LENGTH_PROP, - IGNORE_LONG_ELL_PROP, IGNORE_PUBLIC_IN_INTERFACE_PROP, IGNORE_WHITESPACE_PROP, JAVADOC_CHECK_UNUSED_THROWS_PROP, diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/Verifier.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/Verifier.java index 4fe01210f..d26e06e27 100644 --- a/src/checkstyle/com/puppycrawl/tools/checkstyle/Verifier.java +++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/Verifier.java @@ -1067,11 +1067,6 @@ class Verifier */ void verifyLongEll(int aLineNo, int aColNo) { - if (!mConfig.isIgnoreLongEll() - && (mLines[aLineNo - 1].charAt(aColNo) == 'l')) - { - mMessages.add(aLineNo, aColNo, "upperEll"); - } } // }}} diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/api/Check.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/api/Check.java index ab217abc1..4de8347ab 100644 --- a/src/checkstyle/com/puppycrawl/tools/checkstyle/api/Check.java +++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/api/Check.java @@ -272,6 +272,18 @@ public abstract class Check } + /** + * Helper method to log a LocalizedMessage. + * + * @param aLineNo line number to associate with the message + * @param aColNo column number to associate with the message + * @param aKey key to locale message format + */ + public void log(int aLineNo, int aColNo, String aKey) + { + log(aLineNo, aColNo, aKey, EMPTY_OBJECT_ARRAY); + } + /** * Helper method to log a LocalizedMessage. * diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/AvoidStarImport.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/AvoidStarImport.java index fb07b6c9b..b2e474c17 100644 --- a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/AvoidStarImport.java +++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/AvoidStarImport.java @@ -32,7 +32,8 @@ import com.puppycrawl.tools.checkstyle.api.DetailAST; * @author Oliver Burn * @version 1.0 */ -public class AvoidStarImport extends ImportCheck +public class AvoidStarImport + extends ImportCheck { public int[] getDefaultTokens() { @@ -43,7 +44,6 @@ public class AvoidStarImport extends ImportCheck { final String name = getImportText(aAST); if ((name != null) && name.endsWith(".*")) { - System.out.println("AvoidStarImport.visitToken"); log(aAST.getLineNo(), "import.avoidStar"); } } diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/UpperEllCheck.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/UpperEllCheck.java new file mode 100644 index 000000000..2d9760e24 --- /dev/null +++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/UpperEllCheck.java @@ -0,0 +1,51 @@ +//////////////////////////////////////////////////////////////////////////////// +// checkstyle: Checks Java source code for adherence to a set of rules. +// Copyright (C) 2001-2002 Oliver Burn +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +//////////////////////////////////////////////////////////////////////////////// + +package com.puppycrawl.tools.checkstyle.checks; + +import com.puppycrawl.tools.checkstyle.JavaTokenTypes; +import com.puppycrawl.tools.checkstyle.api.DetailAST; +import com.puppycrawl.tools.checkstyle.api.Check; + +/** + * Checks that long constants are defined with an uppper ell. That is 'L' and + * not 'l'. + * + *

Rationale: The letter l looks a lot like 1. + * + * @author Oliver Burn + * @version 1.0 + */ +public class UpperEllCheck + extends Check +{ + public int[] getDefaultTokens() + { + return new int[] {JavaTokenTypes.NUM_LONG}; + } + + public void visitToken(DetailAST aAST) + { + if (aAST.getText().endsWith("l")) { + log(aAST.getLineNo(), + aAST.getColumnNo() + aAST.getText().length() - 1, + "upperEll"); + } + } +} diff --git a/src/tests/com/puppycrawl/tools/checkstyle/CheckerTest.java b/src/tests/com/puppycrawl/tools/checkstyle/CheckerTest.java index 17cd04f79..7a070e85b 100644 --- a/src/tests/com/puppycrawl/tools/checkstyle/CheckerTest.java +++ b/src/tests/com/puppycrawl/tools/checkstyle/CheckerTest.java @@ -881,7 +881,6 @@ public class CheckerTest mProps.setProperty(Defn.CATCH_BLOCK_PROP, BlockOption.STMT.toString()); mProps.setProperty(Defn.FINALLY_BLOCK_PROP, BlockOption.STMT.toString()); mProps.setProperty(Defn.IGNORE_IMPORTS_PROP, "true"); - mProps.setProperty(Defn.IGNORE_LONG_ELL_PROP, "false"); mProps.setProperty( Defn.ILLEGAL_INSTANTIATIONS_PROP, "java.lang.Boolean," @@ -908,7 +907,6 @@ public class CheckerTest filepath + ":76:17: Must have at least one statement.", filepath + ":78:13: Must have at least one statement.", filepath + ":81:17: Must have at least one statement.", - filepath + ":93:43: Should use uppercase 'L'.", }; verify(c, filepath, expected); } @@ -922,7 +920,6 @@ public class CheckerTest mProps.setProperty(Defn.CATCH_BLOCK_PROP, BlockOption.TEXT.toString()); mProps.setProperty(Defn.FINALLY_BLOCK_PROP, BlockOption.TEXT.toString()); mProps.setProperty(Defn.IGNORE_IMPORTS_PROP, "true"); - mProps.setProperty(Defn.IGNORE_LONG_ELL_PROP, "true"); mProps.setProperty(Defn.ILLEGAL_INSTANTIATIONS_PROP, ""); final Checker c = createChecker(); final String filepath = getPath("InputSemantic.java"); diff --git a/src/tests/com/puppycrawl/tools/checkstyle/UpperEllCheckTest.java b/src/tests/com/puppycrawl/tools/checkstyle/UpperEllCheckTest.java new file mode 100644 index 000000000..dcc06769a --- /dev/null +++ b/src/tests/com/puppycrawl/tools/checkstyle/UpperEllCheckTest.java @@ -0,0 +1,25 @@ +package com.puppycrawl.tools.checkstyle; + +import com.puppycrawl.tools.checkstyle.checks.UpperEllCheck; + +public class UpperEllCheckTest +extends BaseCheckTestCase +{ + public UpperEllCheckTest(String aName) + { + super(aName); + } + + public void testWithChecker() + throws Exception + { + final CheckConfiguration checkConfig = new CheckConfiguration(); + checkConfig.setClassname(UpperEllCheck.class.getName()); + final Checker c = createChecker(checkConfig); + final String fname = getPath("InputSemantic.java"); + final String[] expected = { + "93:43: Should use uppercase 'L'.", + }; + verify(c, fname, expected); + } +}