Author: niallp Date: Thu Aug 5 00:52:57 2010 New Revision: 982447 URL: http://svn.apache.org/viewvc?rev=982447&view=rev Log: IO-232 Add Case Sensitive Creation Methods to FileFilterUtils - thanks to Michael Wooten for the patch
Modified: commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/FileFilterUtils.java commons/proper/io/trunk/src/test/org/apache/commons/io/filefilter/FileFilterTestCase.java Modified: commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/FileFilterUtils.java URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/FileFilterUtils.java?rev=982447&r1=982446&r2=982447&view=diff ============================================================================== --- commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/FileFilterUtils.java (original) +++ commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/FileFilterUtils.java Thu Aug 5 00:52:57 2010 @@ -100,6 +100,18 @@ public class FileFilterUtils { } /** + * Returns a filter that returns true if the filename matches the specified text. + * + * @param name the filename + * @param caseSensitivity how to handle case sensitivity, null means case-sensitive + * @return a name checking filter + * @since Commons IO 2.0 + */ + public static IOFileFilter nameFileFilter(String name, IOCase caseSensitivity) { + return new NameFileFilter(name, caseSensitivity); + } + + /** * Returns a filter that checks if the file is a directory. * * @return file filter that accepts only directories and not files @@ -384,7 +396,7 @@ public class FileFilterUtils { andFileFilter(directoryFileFilter(), nameFileFilter("CVS")));; /* Constructed on demand and then cached */ - private static final IOFileFilter svnFilter = svnFilter = notFileFilter( + private static final IOFileFilter svnFilter = notFileFilter( andFileFilter(directoryFileFilter(), nameFileFilter(".svn"))); /** Modified: commons/proper/io/trunk/src/test/org/apache/commons/io/filefilter/FileFilterTestCase.java URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/test/org/apache/commons/io/filefilter/FileFilterTestCase.java?rev=982447&r1=982446&r2=982447&view=diff ============================================================================== --- commons/proper/io/trunk/src/test/org/apache/commons/io/filefilter/FileFilterTestCase.java (original) +++ commons/proper/io/trunk/src/test/org/apache/commons/io/filefilter/FileFilterTestCase.java Thu Aug 5 00:52:57 2010 @@ -160,6 +160,17 @@ public class FileFilterTestCase extends fail(); } catch (IllegalArgumentException ex) { } + + // FileFilterUtils.suffixFileFilter(String, IOCase) tests + filter = FileFilterUtils.suffixFileFilter("est", IOCase.INSENSITIVE); + assertFiltering(filter, new File("test"), true); + assertFiltering(filter, new File("TEST"), true); + + try { + FileFilterUtils.suffixFileFilter((String) null, IOCase.INSENSITIVE); + fail(); + } catch (IllegalArgumentException ex) { + } } public void testDirectory() throws Exception { @@ -282,6 +293,19 @@ public class FileFilterTestCase extends fail(); } catch (IllegalArgumentException ex) { } + + // FileFilterUtils.prefixFileFilter(String, IOCase) tests + filter = FileFilterUtils.prefixFileFilter("bar", IOCase.INSENSITIVE); + assertFiltering(filter, new File("foo.test2"), false); + assertFiltering(filter, new File("bar.test2"), true); + assertFiltering(filter, new File("FOO.test2"), false); //case-sensitive + assertFiltering(filter, new File("BAR.test2"), true); //case-sensitive + + try { + FileFilterUtils.prefixFileFilter((String) null, IOCase.INSENSITIVE); + fail(); + } catch (IllegalArgumentException ex) { + } } public void testNameFilter() throws Exception { @@ -329,6 +353,14 @@ public class FileFilterTestCase extends assertFiltering(filter, new File("barfoo"), false); assertFiltering(filter, new File("foobar"), false); assertFiltering(filter, new File("fred"), false); + + // FileFilterUtils.nameFileFilter(String, IOCase) tests + filter = FileFilterUtils.nameFileFilter("foo", IOCase.INSENSITIVE); + assertFiltering(filter, new File("foo"), true); + assertFiltering(filter, new File("FOO"), true); //case-insensitive + assertFiltering(filter, new File("barfoo"), false); + assertFiltering(filter, new File("foobar"), false); + assertFiltering(filter, new File("fred"), false); } public void testNameFilterNullArgument() throws Exception { @@ -338,6 +370,12 @@ public class FileFilterTestCase extends fail( "constructing a NameFileFilter with a null String argument should fail."); } catch( IllegalArgumentException iae ) { } + + try { + FileFilterUtils.nameFileFilter(test, IOCase.INSENSITIVE); + fail( "constructing a NameFileFilter with a null String argument should fail."); + } catch( IllegalArgumentException iae ) { + } } public void testNameFilterNullArrayArgument() throws Exception {