1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.james.util.io;
18
19 import java.io.File;
20 import java.io.FilenameFilter;
21
22 /***
23 * Accepts a selection if it is acceptable to both of two {@link FilenameFilter}s.
24 * This takes two {@link FilenameFilter}s as input.
25 *
26 * <p>Eg., to print all files beginning with <code>A</code> and ending with <code>.java</code>:</p>
27 *
28 * <pre>
29 * File dir = new File(".");
30 * String[] files = dir.list( new AndFileFilter(
31 * new PrefixFileFilter("A"),
32 * new ExtensionFileFilter(".java")
33 * )
34 * );
35 * for ( int i=0; i<files.length; i++ )
36 * {
37 * System.out.println(files[i]);
38 * }
39 * </pre>
40 *
41 * @author <a href="mailto:dev@avalon.apache.org">Avalon Development Team</a>
42 * @version $Revision: 365582 $ $Date: 2006-01-03 08:51:21 +0000 (mar, 03 gen 2006) $
43 * @since 4.0
44 */
45 public class AndFileFilter
46 implements FilenameFilter
47 {
48 private final FilenameFilter m_filter1;
49 private final FilenameFilter m_filter2;
50
51 public AndFileFilter( final FilenameFilter filter1, final FilenameFilter filter2 )
52 {
53 m_filter1 = filter1;
54 m_filter2 = filter2;
55 }
56
57 public boolean accept( final File file, final String name )
58 {
59 return m_filter1.accept( file, name ) && m_filter2.accept( file, name );
60 }
61 }
62
63