Author: scolebourne
Date: Tue Aug 29 14:15:11 2006
New Revision: 438218

URL: http://svn.apache.org/viewvc?rev=438218&view=rev
Log:
Separate handleDirectory from handleDirectoryStart

Modified:
    
jakarta/commons/proper/io/trunk/src/java/org/apache/commons/io/DirectoryWalker.java
    
jakarta/commons/proper/io/trunk/src/test/org/apache/commons/io/DirectoryWalkerTestCase.java

Modified: 
jakarta/commons/proper/io/trunk/src/java/org/apache/commons/io/DirectoryWalker.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/io/trunk/src/java/org/apache/commons/io/DirectoryWalker.java?rev=438218&r1=438217&r2=438218&view=diff
==============================================================================
--- 
jakarta/commons/proper/io/trunk/src/java/org/apache/commons/io/DirectoryWalker.java
 (original)
+++ 
jakarta/commons/proper/io/trunk/src/java/org/apache/commons/io/DirectoryWalker.java
 Tue Aug 29 14:15:11 2006
@@ -91,7 +91,7 @@
 
     //-----------------------------------------------------------------------
     /**
-     * Internal method that walks the directory hierarchy.
+     * Internal method that walks the directory hierarchy in a depth-first 
manner.
      * <p>
      * Most users of this class do not need to call this method. This method 
will
      * be called automatically by another (public) method on the specific 
subclass.
@@ -117,13 +117,13 @@
      * @param results  the collection of result objects, may be updated
      */
     private void walk(File directory, int depth, Collection results) {
-        boolean process = handleDirectoryStart(directory, depth, results);
-        if (process) {
+        if (handleDirectory(directory, depth, results)) {
+            handleDirectoryStart(directory, depth, results);
             int childDepth = depth + 1;
             if (depthLimit < 0 || childDepth <= depthLimit) {
                 File[] files = (filter == null ? directory.listFiles() : 
directory.listFiles(filter));
                 if (files == null) {
-                    handleRestricted(directory);
+                    handleRestricted(directory, results);
                 } else {
                     for (int i = 0; i < files.length; i++) {
                         if (files[i].isDirectory()) {
@@ -152,12 +152,11 @@
     }
 
     /**
-     * Overridable callback method invoked at the start of processing each 
directory.
+     * Overridable callback method invoked to determine if a directory should 
be processed.
      * <p>
-     * This method returns a boolean to indicate if the directory should be 
examined
-     * or not. If you return false, the next event received will be the
-     * [EMAIL PROTECTED] #handleDirectoryEnd} for that directory. Note that 
this functionality
-     * is in addition to the filtering by file filter.
+     * This method returns a boolean to indicate if the directory should be 
examined or not.
+     * If you return false, the entire directory and any subdirectories will 
be skipped.
+     * Note that this functionality is in addition to the filtering by file 
filter.
      * <p>
      * This implementation does nothing and returns true.
      *
@@ -166,12 +165,25 @@
      * @param results  the collection of result objects, may be updated
      * @return true to process this directory, false to skip this directory
      */
-    protected boolean handleDirectoryStart(File directory, int depth, 
Collection results) {
+    protected boolean handleDirectory(File directory, int depth, Collection 
results) {
         // do nothing - overridable by subclass
         return true;
     }
 
     /**
+     * Overridable callback method invoked at the start of processing each 
directory.
+     * <p>
+     * This implementation does nothing.
+     *
+     * @param directory  the current directory being processed
+     * @param depth  the current directory level (starting directory = 0)
+     * @param results  the collection of result objects, may be updated
+     */
+    protected void handleDirectoryStart(File directory, int depth, Collection 
results) {
+        // do nothing - overridable by subclass
+    }
+
+    /**
      * Overridable callback method invoked for each (non-directory) file.
      * <p>
      * This implementation does nothing.
@@ -186,10 +198,13 @@
 
     /**
      * Overridable callback method invoked for each restricted directory.
+     * <p>
+     * This implementation does nothing.
      *
      * @param directory  the restricted directory
+     * @param results  the collection of result objects, may be updated
      */
-    protected void handleRestricted(File directory) {
+    protected void handleRestricted(File directory, Collection results) {
         // do nothing - overridable by subclass
     }
 
@@ -198,9 +213,9 @@
      * <p>
      * This implementation does nothing.
      *
-     * @param directory The directory being processed
-     * @param depth The directory level (starting directory = 0)
-     * @param results The collection of files found.
+     * @param directory  the directory being processed
+     * @param depth  the current directory level (starting directory = 0)
+     * @param results  the collection of result objects, may be updated
      */
     protected void handleDirectoryEnd(File directory, int depth, Collection 
results) {
         // do nothing - overridable by subclass

Modified: 
jakarta/commons/proper/io/trunk/src/test/org/apache/commons/io/DirectoryWalkerTestCase.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/io/trunk/src/test/org/apache/commons/io/DirectoryWalkerTestCase.java?rev=438218&r1=438217&r2=438218&view=diff
==============================================================================
--- 
jakarta/commons/proper/io/trunk/src/test/org/apache/commons/io/DirectoryWalkerTestCase.java
 (original)
+++ 
jakarta/commons/proper/io/trunk/src/test/org/apache/commons/io/DirectoryWalkerTestCase.java
 Tue Aug 29 14:15:11 2006
@@ -247,7 +247,7 @@
         }
 
         /** Always returns false. */
-        protected boolean handleDirectoryStart(File directory, int depth, 
Collection results) {
+        protected boolean handleDirectory(File directory, int depth, 
Collection results) {
             return false;
         }
     }



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

Reply via email to