diff --git a/config/archunit-store/slices_should_be_free_of_cycles_suppressions b/config/archunit-store/slices_should_be_free_of_cycles_suppressions index 13f4dd7d5b0..8e9f32f529e 100644 --- a/config/archunit-store/slices_should_be_free_of_cycles_suppressions +++ b/config/archunit-store/slices_should_be_free_of_cycles_suppressions @@ -115,22 +115,22 @@ Cycle detected: Slice api -> \ - Method calls method in (ParameterNameCheck.java:266)\ - Method calls method in (ParameterNameCheck.java:270)\ - Method calls method in (ParameterNameCheck.java:271)\ - - Constructor ()> calls constructor ()> in (AbbreviationAsWordInNameCheck.java:314)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:463)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:464)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:481)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:484)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:493)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:509)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:510)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:530)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:531)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:533)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:534)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:551)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:553)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:663)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:666) + - Constructor ()> calls constructor ()> in (AbbreviationAsWordInNameCheck.java:331)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:480)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:481)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:498)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:501)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:510)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:526)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:527)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:547)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:548)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:550)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:551)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:568)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:570)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:686)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:689) Cycle detected: Slice api -> \ Slice checks.naming -> \ Slice utils -> \ @@ -158,8 +158,8 @@ Cycle detected: Slice api -> \ - Method calls method in (MethodNameCheck.java:232)\ - Method calls method in (ParameterNameCheck.java:236)\ - Method calls method in (ParameterNameCheck.java:238)\ - - Method gets field in (AbbreviationAsWordInNameCheck.java:457)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:497)\ + - Method gets field in (AbbreviationAsWordInNameCheck.java:474)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:514)\ 3. Dependencies of Slice utils\ - Method has parameter of type in (AnnotationUtil.java:0)\ - Method has parameter of type in (AnnotationUtil.java:0)\ @@ -535,8 +535,8 @@ Cycle detected: Slice api -> \ - Method calls method in (MethodNameCheck.java:232)\ - Method calls method in (ParameterNameCheck.java:236)\ - Method calls method in (ParameterNameCheck.java:238)\ - - Method gets field in (AbbreviationAsWordInNameCheck.java:457)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:497)\ + - Method gets field in (AbbreviationAsWordInNameCheck.java:474)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:514)\ 3. Dependencies of Slice utils\ - Method has return type in (JavadocUtil.java:0)\ - Method calls method in (JavadocUtil.java:121)\ @@ -1077,8 +1077,8 @@ Cycle detected: Slice api -> \ - Method calls method in (MethodNameCheck.java:232)\ - Method calls method in (ParameterNameCheck.java:236)\ - Method calls method in (ParameterNameCheck.java:238)\ - - Method gets field in (AbbreviationAsWordInNameCheck.java:457)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:497)\ + - Method gets field in (AbbreviationAsWordInNameCheck.java:474)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:514)\ 3. Dependencies of Slice utils\ - Method calls method in (JavadocUtil.java:102)\ - Method calls method in (JavadocUtil.java:107)\ @@ -1123,8 +1123,8 @@ Cycle detected: Slice api -> \ - Method calls method in (MethodNameCheck.java:232)\ - Method calls method in (ParameterNameCheck.java:236)\ - Method calls method in (ParameterNameCheck.java:238)\ - - Method gets field in (AbbreviationAsWordInNameCheck.java:457)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:497)\ + - Method gets field in (AbbreviationAsWordInNameCheck.java:474)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:514)\ 3. Dependencies of Slice utils\ - Method has generic return type > with type argument depending on in (XpathUtil.java:0)\ - Method has parameter of type in (XpathUtil.java:0)\ @@ -2219,22 +2219,22 @@ Cycle detected: Slice api -> \ - Method calls method in (ParameterNameCheck.java:266)\ - Method calls method in (ParameterNameCheck.java:270)\ - Method calls method in (ParameterNameCheck.java:271)\ - - Constructor ()> calls constructor ()> in (AbbreviationAsWordInNameCheck.java:314)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:463)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:464)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:481)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:484)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:493)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:509)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:510)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:530)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:531)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:533)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:534)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:551)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:553)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:663)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:666) + - Constructor ()> calls constructor ()> in (AbbreviationAsWordInNameCheck.java:331)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:480)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:481)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:498)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:501)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:510)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:526)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:527)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:547)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:548)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:550)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:551)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:568)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:570)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:686)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:689) Cycle detected: Slice api -> \ Slice utils -> \ Slice checks.javadoc.utils -> \ @@ -2406,22 +2406,22 @@ Cycle detected: Slice api -> \ - Method calls method in (ParameterNameCheck.java:266)\ - Method calls method in (ParameterNameCheck.java:270)\ - Method calls method in (ParameterNameCheck.java:271)\ - - Constructor ()> calls constructor ()> in (AbbreviationAsWordInNameCheck.java:314)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:463)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:464)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:481)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:484)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:493)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:509)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:510)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:530)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:531)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:533)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:534)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:551)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:553)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:663)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:666) + - Constructor ()> calls constructor ()> in (AbbreviationAsWordInNameCheck.java:331)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:480)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:481)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:498)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:501)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:510)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:526)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:527)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:547)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:548)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:550)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:551)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:568)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:570)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:686)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:689) Cycle detected: Slice api -> \ Slice utils -> \ Slice xpath -> \ @@ -2530,8 +2530,8 @@ Cycle detected: Slice checks.javadoc -> \ - Method calls method in (MethodNameCheck.java:232)\ - Method calls method in (ParameterNameCheck.java:236)\ - Method calls method in (ParameterNameCheck.java:238)\ - - Method gets field in (AbbreviationAsWordInNameCheck.java:457)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:497)\ + - Method gets field in (AbbreviationAsWordInNameCheck.java:474)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:514)\ 3. Dependencies of Slice utils\ - Method has return type in (JavadocUtil.java:0)\ - Method calls method in (JavadocUtil.java:121)\ @@ -2700,8 +2700,8 @@ Cycle detected: Slice checks.naming -> \ - Method calls method in (MethodNameCheck.java:232)\ - Method calls method in (ParameterNameCheck.java:236)\ - Method calls method in (ParameterNameCheck.java:238)\ - - Method gets field in (AbbreviationAsWordInNameCheck.java:457)\ - - Method calls method in (AbbreviationAsWordInNameCheck.java:497)\ + - Method gets field in (AbbreviationAsWordInNameCheck.java:474)\ + - Method calls method in (AbbreviationAsWordInNameCheck.java:514)\ 2. Dependencies of Slice utils\ - Method has return type in (CheckUtil.java:0)\ - Method has return type in (CheckUtil.java:0)\ diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/naming/AbbreviationAsWordInNameCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/naming/AbbreviationAsWordInNameCheck.java index 3b8a3969a3b..1a904f84e1b 100644 --- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/naming/AbbreviationAsWordInNameCheck.java +++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/naming/AbbreviationAsWordInNameCheck.java @@ -297,6 +297,23 @@ * } * *

+ * To configure to check variables, enforce + * no abbreviations (essentially camel case) except for + * words like 'ORDER', 'TEST'. + *

+ *

Configuration:

+ *
+ * <module name="AbbreviationAsWordInName">
+ *     <property name="allowedAbbreviations" value="ORDER, TEST"/>
+ * </module>
+ * 
+ *

Example:

+ *
+ * public class Test {
+ *    void getORDER_TEST() {} // OK, ignored
+ * }
+ * 
+ *

* Parent is {@code com.puppycrawl.tools.checkstyle.TreeWalker} *

*

@@ -583,7 +600,13 @@ private String getDisallowedAbbreviation(String str) { else if (abbrStarted) { abbrStarted = false; - final int endIndex = index - 1; + final int endIndex; + if (Character.isLetterOrDigit(symbol)) { + endIndex = index - 1; + } + else { + endIndex = index; + } result = getAbbreviationIfIllegal(str, beginIndex, endIndex); if (result != null) { break; diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/checks/naming/AbbreviationAsWordInNameCheckTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/checks/naming/AbbreviationAsWordInNameCheckTest.java index c300bbb5ae1..5b1f8cf1cce 100644 --- a/src/test/java/com/puppycrawl/tools/checkstyle/checks/naming/AbbreviationAsWordInNameCheckTest.java +++ b/src/test/java/com/puppycrawl/tools/checkstyle/checks/naming/AbbreviationAsWordInNameCheckTest.java @@ -467,4 +467,17 @@ public void testReceiver() throws Exception { expected); } + @Test + public void testInputAbbreviationAsWordInNameTypeWithUnderScore() throws Exception { + final String[] expected = { + "13:17: " + getWarningMessage("HBCK_LOCK_PATH", 4), + "16:15: " + getWarningMessage("BOOL_VALS", 4), + "24:10: " + getWarningMessage("getNONE_Test", 4), + "42:13: " + getWarningMessage("LINE_SEP", 4), + }; + + verifyWithInlineConfigParser( + getPath("InputAbbreviationAsWordInNameType7.java"), expected); + } + } diff --git a/src/test/resources/com/puppycrawl/tools/checkstyle/checks/naming/abbreviationaswordinname/InputAbbreviationAsWordInNameType7.java b/src/test/resources/com/puppycrawl/tools/checkstyle/checks/naming/abbreviationaswordinname/InputAbbreviationAsWordInNameType7.java new file mode 100644 index 00000000000..9367554f68d --- /dev/null +++ b/src/test/resources/com/puppycrawl/tools/checkstyle/checks/naming/abbreviationaswordinname/InputAbbreviationAsWordInNameType7.java @@ -0,0 +1,45 @@ +/* +AbbreviationAsWordInName +allowedAbbreviations = ORDER, OBSERVATION, UNDERSCORE, TEST + + +*/ + + +package com.puppycrawl.tools.checkstyle.checks.naming.abbreviationaswordinname; + +public class InputAbbreviationAsWordInNameType7 { + // violation below 'Abb.* in name '.*' must contain no more than '4' consecutive cap.* let.*.' + private int HBCK_LOCK_PATH; + + // violation below 'Abb.* in name '.*' must contain no more than '4' consecutive cap.* let.*.' + Boolean[] BOOL_VALS = { false, true }; + + void getTEST() { + } // ok + + void getORDER_OBSERVATION() {} // ok + + // violation below 'Abb.* in name '.*' must contain no more than '4' consecutive cap.* let.*.' + void getNONE_Test() {} + + void getCLR_Test() {} // ok + + void getUNDERSCORE() {} // ok + + void getTEST_OBSERVATION() {} // ok + + void getTEST_UNDERSCORE() {} // ok + + void getORDER() {} // ok + + void getOBSERVATION() {} // ok + + void getORDER_UNDERSCORE() {} // ok + + int getCLRTest() { // ok + // violation below 'Abb.* in name '.*' must contain no more than '4' conse.* cap.* let.*.' + int LINE_SEP = 1; + return LINE_SEP; + } +} diff --git a/src/xdocs/config_naming.xml b/src/xdocs/config_naming.xml index 505781eacff..925f00dcdc5 100644 --- a/src/xdocs/config_naming.xml +++ b/src/xdocs/config_naming.xml @@ -344,6 +344,23 @@ public class MyClass { public final int customerID = 2; // violation public static int nextID = 3; // OK, ignored public static final int MAX_ALLOWED = 4; // violation +} + +

+ To configure to check variables, enforce + no abbreviations (essentially camel case) except for + words like 'ORDER', 'TEST'. +

+

Configuration:

+ +<module name="AbbreviationAsWordInName"> + <property name="allowedAbbreviations" value="ORDER, TEST"/> +</module> + +

Example:

+ +public class Test { + void getORDER_TEST() {} // OK, ignored }