From c6bbd6774988073dfeea8e6f9bea0689f0de19bb Mon Sep 17 00:00:00 2001 From: Oleg Sukhodolsky Date: Sun, 16 Nov 2003 08:40:33 +0000 Subject: [PATCH] Added caseSensitive property to ImportOrder check (bug 842604). --- docs/config_import.html | 6 +++++ docs/releasenotes.html | 4 ++++ .../checks/imports/ImportOrderCheck.java | 24 ++++++++++++++++++- .../checkstyle/imports/InputImportOrder.java | 3 +++ .../InputImportOrderCaseInsensitive.java | 7 ++++++ .../checks/imports/ImportOrderCheckTest.java | 10 ++++++++ 6 files changed, 53 insertions(+), 1 deletion(-) create mode 100755 src/testinputs/com/puppycrawl/tools/checkstyle/imports/InputImportOrderCaseInsensitive.java diff --git a/docs/config_import.html b/docs/config_import.html index 91956b637..8304769f3 100644 --- a/docs/config_import.html +++ b/docs/config_import.html @@ -251,6 +251,12 @@ Boolean false + + caseSensitive + whether strings comprision should be case sensitive or not + Boolean + true +

Example

diff --git a/docs/releasenotes.html b/docs/releasenotes.html index e7e92ecd9..7cd4556bd 100644 --- a/docs/releasenotes.html +++ b/docs/releasenotes.html @@ -67,6 +67,10 @@

diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/imports/ImportOrderCheck.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/imports/ImportOrderCheck.java index 450cc2f64..84b19179e 100644 --- a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/imports/ImportOrderCheck.java +++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/imports/ImportOrderCheck.java @@ -36,6 +36,7 @@ import com.puppycrawl.tools.checkstyle.api.TokenTypes; * <module name="ImportOrder"> * <property name="groups" value="java,javax"/> * <property name="ordered" value="true"/> + * <property name="caseSensitive" value="false"/> * </module> * * @@ -64,6 +65,8 @@ public class ImportOrderCheck extends Check /** Require imports in group be separated. */ private boolean mSeparated; + /** Should comprision be case sensitive. */ + private boolean mCaseSensitive = true; /** Last imported group. */ private int mLastGroup; @@ -125,6 +128,17 @@ public class ImportOrderCheck extends Check mSeparated = aSeparated; } + /** + * Sets whether strings comprision should be case sensitive + * or not. + * @param aCaseSensitive whether string comprition should be + * case sensitive. + */ + public void setCaseSensitive(boolean aCaseSensitive) + { + mCaseSensitive = aCaseSensitive; + } + /** {@inheritDoc} */ public int[] getDefaultTokens() { @@ -186,7 +200,15 @@ public class ImportOrderCheck extends Check } else if (groupIdx == mLastGroup) { if (mOrdered) { - if (mLastImport.compareTo(name) >= 0) { + boolean shouldFireError = false; + if (mCaseSensitive) { + shouldFireError = (mLastImport.compareTo(name) >= 0); + } + else { + shouldFireError = + (mLastImport.compareToIgnoreCase(name) >= 0); + } + if (shouldFireError) { log(line, "import.ordering", name); } } diff --git a/src/testinputs/com/puppycrawl/tools/checkstyle/imports/InputImportOrder.java b/src/testinputs/com/puppycrawl/tools/checkstyle/imports/InputImportOrder.java index 20387b7b4..c7181809e 100644 --- a/src/testinputs/com/puppycrawl/tools/checkstyle/imports/InputImportOrder.java +++ b/src/testinputs/com/puppycrawl/tools/checkstyle/imports/InputImportOrder.java @@ -6,6 +6,9 @@ import java.awt.event.ActionEvent import javax.swing.JComponent; import javax.swing.JTable; import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.Reader; public class InputImportOrder { } diff --git a/src/testinputs/com/puppycrawl/tools/checkstyle/imports/InputImportOrderCaseInsensitive.java b/src/testinputs/com/puppycrawl/tools/checkstyle/imports/InputImportOrderCaseInsensitive.java new file mode 100755 index 000000000..4bce949b1 --- /dev/null +++ b/src/testinputs/com/puppycrawl/tools/checkstyle/imports/InputImportOrderCaseInsensitive.java @@ -0,0 +1,7 @@ +import java.io.File; +import java.io.InputStream; +import java.io.IOException; +import java.io.Reader; + +public class InputImportOrderCaseInsensitive { +} diff --git a/src/tests/com/puppycrawl/tools/checkstyle/checks/imports/ImportOrderCheckTest.java b/src/tests/com/puppycrawl/tools/checkstyle/checks/imports/ImportOrderCheckTest.java index 5f6904154..61cb0cba6 100644 --- a/src/tests/com/puppycrawl/tools/checkstyle/checks/imports/ImportOrderCheckTest.java +++ b/src/tests/com/puppycrawl/tools/checkstyle/checks/imports/ImportOrderCheckTest.java @@ -43,4 +43,14 @@ public class ImportOrderCheckTest extends BaseCheckTestCase verify(checkConfig, getPath("imports" + File.separator + "InputImportOrder.java"), expected); } + + public void testCaseInsensitive() throws Exception + { + final DefaultConfiguration checkConfig = createCheckConfig(ImportOrderCheck.class); + checkConfig.addAttribute("caseSensitive", "false"); + final String[] expected = { + }; + + verify(checkConfig, getPath("imports" + File.separator + "InputImportOrderCaseInsensitive.java"), expected); + } }