You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by sc...@apache.org on 2006/10/14 16:20:27 UTC
svn commit: r463940 - in /jakarta/commons/proper/io/trunk: RELEASE-NOTES.txt
src/java/org/apache/commons/io/filefilter/FileFilterUtils.java
src/test/org/apache/commons/io/filefilter/FileFilterTestCase.java
Author: scolebourne
Date: Sat Oct 14 07:20:25 2006
New Revision: 463940
URL: http://svn.apache.org/viewvc?view=rev&rev=463940
Log:
FileFilterUtils.makeDirectoryOnly/makeFileOnly
- two new methods that decorate a file filter to make it apply to directories only or files only
Modified:
jakarta/commons/proper/io/trunk/RELEASE-NOTES.txt
jakarta/commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/FileFilterUtils.java
jakarta/commons/proper/io/trunk/src/test/org/apache/commons/io/filefilter/FileFilterTestCase.java
Modified: jakarta/commons/proper/io/trunk/RELEASE-NOTES.txt
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/io/trunk/RELEASE-NOTES.txt?view=diff&rev=463940&r1=463939&r2=463940
==============================================================================
--- jakarta/commons/proper/io/trunk/RELEASE-NOTES.txt (original)
+++ jakarta/commons/proper/io/trunk/RELEASE-NOTES.txt Sat Oct 14 07:20:25 2006
@@ -139,9 +139,13 @@
(whereas if everything uses INSTANCE, then they just clash)
- The old INSTANCE constants are still present and have not been deprecated
-- FileFilterUtils
+- FileFilterUtils.sizeRangeFileFilter
- new sizeRangeFileFilter(long minimumSize, long maximumSize) method which
creates a filter that accepts files within the specified size range.
+
+- FileFilterUtils.makeDirectoryOnly/makeFileOnly
+ - two new methods that decorate a file filter to make it apply to
+ directories only or files only
- NullWriter
- New writer that acts as a sink for all data, as per /dev/null
Modified: jakarta/commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/FileFilterUtils.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/FileFilterUtils.java?view=diff&rev=463940&r1=463939&r2=463940
==============================================================================
--- jakarta/commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/FileFilterUtils.java (original)
+++ jakarta/commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/FileFilterUtils.java Sat Oct 14 07:20:25 2006
@@ -218,7 +218,6 @@
}
//-----------------------------------------------------------------------
-
/**
* Returns a filter that returns true if the file was last modified after
* the specified cutoff time.
@@ -330,6 +329,35 @@
IOFileFilter minimumFilter = new SizeFileFilter(minSizeInclusive, true);
IOFileFilter maximumFilter = new SizeFileFilter(maxSizeInclusive + 1L, false);
return new AndFileFilter(minimumFilter, maximumFilter);
+ }
+
+ //-----------------------------------------------------------------------
+ /**
+ * Decorates a filter so that it only applies to directories and not to files.
+ *
+ * @param filter the filter to decorate, null means an unrestricted filter
+ * @return the decorated filter, never null
+ * @since 1.3
+ */
+ public static IOFileFilter makeDirectoryOnly(IOFileFilter filter) {
+ if (filter == null) {
+ return DirectoryFileFilter.DIRECTORY;
+ }
+ return new AndFileFilter(DirectoryFileFilter.DIRECTORY, filter);
+ }
+
+ /**
+ * Decorates a filter so that it only applies to files and not to directories.
+ *
+ * @param filter the filter to decorate, null means an unrestricted filter
+ * @return the decorated filter, never null
+ * @since 1.3
+ */
+ public static IOFileFilter makeFileOnly(IOFileFilter filter) {
+ if (filter == null) {
+ return FileFileFilter.FILE;
+ }
+ return new AndFileFilter(FileFileFilter.FILE, filter);
}
}
Modified: jakarta/commons/proper/io/trunk/src/test/org/apache/commons/io/filefilter/FileFilterTestCase.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/io/trunk/src/test/org/apache/commons/io/filefilter/FileFilterTestCase.java?view=diff&rev=463940&r1=463939&r2=463940
==============================================================================
--- jakarta/commons/proper/io/trunk/src/test/org/apache/commons/io/filefilter/FileFilterTestCase.java (original)
+++ jakarta/commons/proper/io/trunk/src/test/org/apache/commons/io/filefilter/FileFilterTestCase.java Sat Oct 14 07:20:25 2006
@@ -736,5 +736,62 @@
FileUtils.forceDelete(emptyDir);
}
+ //-----------------------------------------------------------------------
+ public void testMakeDirectoryOnly() throws Exception {
+ assertSame(DirectoryFileFilter.DIRECTORY, FileFilterUtils.makeDirectoryOnly(null));
+
+ IOFileFilter filter = FileFilterUtils.makeDirectoryOnly(
+ FileFilterUtils.nameFileFilter("B"));
+
+ File fileA = new File(getTestDirectory(), "A");
+ File fileB = new File(getTestDirectory(), "B");
+
+ fileA.mkdirs();
+ fileB.mkdirs();
+
+ assertFiltering(filter, fileA, false);
+ assertFiltering(filter, fileB, true);
+
+ FileUtils.deleteDirectory(fileA);
+ FileUtils.deleteDirectory(fileB);
+
+ createFile(fileA, 32);
+ createFile(fileB, 32);
+
+ assertFiltering(filter, fileA, false);
+ assertFiltering(filter, fileB, false);
+
+ fileA.delete();
+ fileB.delete();
+ }
+
+ //-----------------------------------------------------------------------
+ public void testMakeFileOnly() throws Exception {
+ assertSame(FileFileFilter.FILE, FileFilterUtils.makeFileOnly(null));
+
+ IOFileFilter filter = FileFilterUtils.makeFileOnly(
+ FileFilterUtils.nameFileFilter("B"));
+
+ File fileA = new File(getTestDirectory(), "A");
+ File fileB = new File(getTestDirectory(), "B");
+
+ fileA.mkdirs();
+ fileB.mkdirs();
+
+ assertFiltering(filter, fileA, false);
+ assertFiltering(filter, fileB, false);
+
+ FileUtils.deleteDirectory(fileA);
+ FileUtils.deleteDirectory(fileB);
+
+ createFile(fileA, 32);
+ createFile(fileB, 32);
+
+ assertFiltering(filter, fileA, false);
+ assertFiltering(filter, fileB, true);
+
+ fileA.delete();
+ fileB.delete();
+ }
+
}
-
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org