Author: scolebourne
Date: Sun Jul 23 06:58:32 2006
New Revision: 424742

URL: http://svn.apache.org/viewvc?rev=424742&view=rev
Log:
Add FileFileFilter that accepts files and not directories

Added:
    
jakarta/commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/FileFileFilter.java
   (with props)
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?rev=424742&r1=424741&r2=424742&view=diff
==============================================================================
--- jakarta/commons/proper/io/trunk/RELEASE-NOTES.txt (original)
+++ jakarta/commons/proper/io/trunk/RELEASE-NOTES.txt Sun Jul 23 06:58:32 2006
@@ -54,6 +54,11 @@
 - NameFileFilter
   - Ability to control case-sensitivity
 
+- FileFileFilter
+  - New IOFileFilter implementation
+  - Accepts files where File.isFile() is true
+  - In other words it filters out directories
+
 - CanReadFileFilter
   - New IOFileFilter implementation
   - Accepts files where File.canRead() is true

Added: 
jakarta/commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/FileFileFilter.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/FileFileFilter.java?rev=424742&view=auto
==============================================================================
--- 
jakarta/commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/FileFileFilter.java
 (added)
+++ 
jakarta/commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/FileFileFilter.java
 Sun Jul 23 06:58:32 2006
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.io.filefilter;
+
+import java.io.File;
+
+/**
+ * This filter accepts <code>File</code>s that are files (not directories).
+ * <p>
+ * For example, here is how to print out a list of the real files
+ * within the current directory:
+ *
+ * <pre>
+ * File dir = new File(".");
+ * String[] files = dir.list( FileFileFilter.FILE );
+ * for ( int i = 0; i &lt; files.length; i++ ) {
+ *     System.out.println(files[i]);
+ * }
+ * </pre>
+ *
+ * @since Commons IO 1.3
+ * @version $Revision: 155419 $ $Date: 2005-02-26 13:02:41 +0000 (Sat, 26 Feb 
2005) $
+ */
+public class FileFileFilter extends AbstractFileFilter {
+
+    /** Singleton instance of file filter */
+    public static final IOFileFilter FILE = new FileFileFilter();
+
+    /**
+     * Restrictive consructor.
+     */
+    protected FileFileFilter() {
+    }
+
+    /**
+     * Checks to see if the file is a file.
+     *
+     * @param file  the File to check
+     * @return true if the file is a file
+     */
+    public boolean accept(File file) {
+        return file.isFile();
+    }
+
+}

Propchange: 
jakarta/commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/FileFileFilter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
jakarta/commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/FileFileFilter.java
------------------------------------------------------------------------------
    svn:keywords = author date id revision

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?rev=424742&r1=424741&r2=424742&view=diff
==============================================================================
--- 
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
 Sun Jul 23 06:58:32 2006
@@ -76,12 +76,21 @@
     /**
      * Returns a filter that checks if the file is a directory.
      * 
-     * @return directory file filter
+     * @return file filter that accepts only directories and not files
      */
     public static IOFileFilter directoryFileFilter() {
         return DirectoryFileFilter.INSTANCE;
     }
-    
+
+    /**
+     * Returns a filter that checks if the file is a file (and not a 
directory).
+     * 
+     * @return file filter that accepts only files and not directories
+     */
+    public static IOFileFilter fileFileFilter() {
+        return FileFileFilter.FILE;
+    }
+
     //-----------------------------------------------------------------------
     /**
      * Returns a filter that ANDs the two specified filters.

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?rev=424742&r1=424741&r2=424742&view=diff
==============================================================================
--- 
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
 Sun Jul 23 06:58:32 2006
@@ -138,6 +138,21 @@
         assertFiltering(filter, new File("STATUS.html"), false);
     }
 
+    public void testFiles() throws Exception {
+        // XXX: This test presumes the current working dir is the base dir of 
the source checkout.
+        IOFileFilter filter = FileFileFilter.FILE;
+        
+        assertFiltering(filter, new File("src/"), false);
+        assertFiltering(filter, new File("src/java/"), false);
+        
+        assertFiltering(filter, new File("project.xml"), true);
+        
+        assertFiltering(filter, new File("imaginary"), false);
+        assertFiltering(filter, new File("imaginary/"), false);
+        
+        assertFiltering(filter, new File("STATUS.html"), true);
+    }
+
     public void testPrefix() throws Exception {
         IOFileFilter filter = new PrefixFileFilter(new String[] { "foo", "bar" 
});
         File testFile = new File( "test" );



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to