From c6bbd6774988073dfeea8e6f9bea0689f0de19bb Mon Sep 17 00:00:00 2001
From: Oleg Sukhodolsky 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); + } }