From cdcddbe49e985fccf170f6bb90e4251ea07952d7 Mon Sep 17 00:00:00 2001 From: Andrei Selkin Date: Thu, 23 Jul 2015 21:04:36 +0300 Subject: [PATCH] Add setter for 'ignoreEnums' in LeftCurlyCheck, issue #975. --- pom.xml | 2 +- .../checks/blocks/LeftCurlyCheck.java | 8 ++++++++ .../checks/blocks/LeftCurlyCheckTest.java | 19 +++++++++++++++++++ .../tools/checkstyle/InputLeftCurlyEnums.java | 16 ++++++++++++++++ src/xdocs/config_blocks.xml | 2 +- 5 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 src/test/resources/com/puppycrawl/tools/checkstyle/InputLeftCurlyEnums.java diff --git a/pom.xml b/pom.xml index 95212e899..f1b0382d1 100644 --- a/pom.xml +++ b/pom.xml @@ -1113,7 +1113,7 @@ .*.checks.blocks.EmptyBlockCheck88100 - .*.checks.blocks.LeftCurlyCheck8794 + .*.checks.blocks.LeftCurlyCheck8996 .*.checks.blocks.NeedBracesCheck8097 .*.checks.blocks.RightCurlyCheck8895 diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/blocks/LeftCurlyCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/blocks/LeftCurlyCheck.java index 54935c769..93ed56fb4 100644 --- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/blocks/LeftCurlyCheck.java +++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/blocks/LeftCurlyCheck.java @@ -118,6 +118,14 @@ public class LeftCurlyCheck this.maxLineLength = maxLineLength; } + /** + * Sets whether check should ignore enums when left curly brace policy is EOL. + * @param ignoreEnums check's option for ignoring enums. + */ + public void setIgnoreEnums(boolean ignoreEnums) { + this.ignoreEnums = ignoreEnums; + } + @Override public int[] getDefaultTokens() { return new int[] { diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/checks/blocks/LeftCurlyCheckTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/checks/blocks/LeftCurlyCheckTest.java index 34f9c17bb..6947d2f4f 100644 --- a/src/test/java/com/puppycrawl/tools/checkstyle/checks/blocks/LeftCurlyCheckTest.java +++ b/src/test/java/com/puppycrawl/tools/checkstyle/checks/blocks/LeftCurlyCheckTest.java @@ -223,4 +223,23 @@ public class LeftCurlyCheckTest extends BaseCheckTestSupport { }; verify(checkConfig, getPath("InputLeftCurlyLineBreakAfter.java"), expected); } + + @Test + public void testIgnoreEnumsOptionTrue() throws Exception { + checkConfig.addAttribute("option", LeftCurlyOption.EOL.toString()); + checkConfig.addAttribute("ignoreEnums", "true"); + final String[] expectedWhileTrue = { + }; + verify(checkConfig, getPath("InputLeftCurlyEnums.java"), expectedWhileTrue); + } + + @Test + public void testIgnoreEnumsOptionFalse() throws Exception { + checkConfig.addAttribute("option", LeftCurlyOption.EOL.toString()); + checkConfig.addAttribute("ignoreEnums", "false"); + final String[] expectedWhileFalse = { + "4:17: " + getCheckMessage(MSG_KEY_LINE_BREAK_AFTER, "{"), + }; + verify(checkConfig, getPath("InputLeftCurlyEnums.java"), expectedWhileFalse); + } } diff --git a/src/test/resources/com/puppycrawl/tools/checkstyle/InputLeftCurlyEnums.java b/src/test/resources/com/puppycrawl/tools/checkstyle/InputLeftCurlyEnums.java new file mode 100644 index 000000000..28c592a3f --- /dev/null +++ b/src/test/resources/com/puppycrawl/tools/checkstyle/InputLeftCurlyEnums.java @@ -0,0 +1,16 @@ +package com.puppycrawl.tools.checkstyle; + +public class InputLeftCurlyEnums { + enum Colors {RED, + BLUE, + GREEN + } + + enum Languages { + JAVA, + PHP, + SCALA, + C, + PASCAL + } +} diff --git a/src/xdocs/config_blocks.xml b/src/xdocs/config_blocks.xml index 27f11a7b8..38af5c465 100644 --- a/src/xdocs/config_blocks.xml +++ b/src/xdocs/config_blocks.xml @@ -250,7 +250,7 @@ try { ignoreEnums - If true, Check will ignore enums + If true, Check will ignore enums when left curly brace policy is EOL boolean true