View Javadoc

1   /*
2   Copyright (C) 2000 - 2007 Grid Systems, S.A.
3   
4   This program is free software; you can redistribute it and/or modify
5   it under the terms of the GNU General Public License, version 2, as
6   published by the Free Software Foundation.
7   
8   This program is distributed in the hope that it will be useful,
9   but WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  GNU General Public License for more details.
12  
13  You should have received a copy of the GNU General Public License
14  along with this program; if not, write to the Free Software
15  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16  */
17  package com.gridsystems;
18  
19  import java.io.File;
20  import java.io.FileFilter;
21  import java.util.ArrayList;
22  import java.util.List;
23  
24  /**
25   * OrFileFilter type.
26   *
27   * @author Rodrigo Ruiz
28   */
29  public class OrFileFilter implements FileFilter {
30  
31    /**
32     * Filters to combine.
33     */
34    private final List<FileFilter> filters = new ArrayList<FileFilter>();
35  
36    /**
37     * Creates a new instance.
38     *
39     * @param filters A list of filters to combine
40     */
41    public OrFileFilter(FileFilter... filters) {
42      for (FileFilter f : filters) {
43        if (f != null) {
44          this.filters.add(f);
45        }
46      }
47    }
48    /**
49     * {@inheritDoc}
50     */
51    public boolean accept(File f) {
52      for (FileFilter filter : filters) {
53        if (filter.accept(f)) {
54          return true;
55        }
56      }
57      return false;
58    }
59  
60  }