1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.vfs;
18
19 /***
20 * A {@link FileSelector} that selects all files in a particular depth range.
21 *
22 * @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a>
23 * @version $Revision: 480428 $ $Date: 2006-11-29 07:15:24 +0100 (Mi, 29 Nov 2006) $
24 */
25 public class FileDepthSelector
26 implements FileSelector
27 {
28 private final int minDepth;
29 private final int maxDepth;
30
31 public FileDepthSelector(int minDepth, int maxDepth)
32 {
33 this.minDepth = minDepth;
34 this.maxDepth = maxDepth;
35 }
36
37 /***
38 * Determines if a file or folder should be selected.
39 */
40 public boolean includeFile(final FileSelectInfo fileInfo)
41 {
42 final int depth = fileInfo.getDepth();
43 return (minDepth <= depth && depth <= maxDepth);
44 }
45
46 /***
47 * Determines whether a folder should be traversed.
48 */
49 public boolean traverseDescendents(final FileSelectInfo fileInfo)
50 {
51 return (fileInfo.getDepth() < maxDepth);
52 }
53 }