1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.vfs;
18
19 import org.apache.commons.vfs.util.Messages;
20
21 /***
22 * A {@link org.apache.commons.vfs.FileSelector} that selects all children of the given fileObject.<br />
23 * This is to mimic the {@link java.io.FileFilter} interface
24 *
25 * @author <a href="mailto:imario@apache.org">Mario Ivankovits</a>
26 */
27 public class FileFilterSelector extends FileDepthSelector
28 {
29 private FileFilter fileFilter;
30
31 public FileFilterSelector()
32 {
33 super(1, 1);
34 }
35
36 public FileFilterSelector(FileFilter fileFilter)
37 {
38 this();
39 this.fileFilter = fileFilter;
40 }
41
42 /***
43 * Determines if a file or folder should be selected.
44 */
45 public boolean includeFile(final FileSelectInfo fileInfo)
46 {
47 if (!super.includeFile(fileInfo))
48 {
49 return false;
50 }
51
52 return accept(fileInfo);
53 }
54
55 public boolean accept(final FileSelectInfo fileInfo)
56 {
57 if (fileFilter != null)
58 {
59 return fileFilter.accept(fileInfo);
60 }
61
62 throw new IllegalArgumentException(Messages.getString("vfs.selectors/filefilter.missing.error"));
63 }
64 }