View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.commons.vfs2.filter;
18  
19  import java.util.List;
20  
21  import org.apache.commons.vfs2.FileFilter;
22  
23  /**
24   * Defines operations for conditional file filters.
25   *
26   * @author This code was originally ported from Apache Commons IO File Filter
27   * @see "http://commons.apache.org/proper/commons-io/"
28   * @since 2.4
29   */
30  public interface ConditionalFileFilter {
31  
32      /**
33       * Adds the specified file filter to the list of file filters at the end of the
34       * list.
35       *
36       * @param fileFilter the filter to be added
37       */
38      void addFileFilter(FileFilter fileFilter);
39  
40      /**
41       * Returns this conditional file filter's list of file filters.
42       *
43       * @return the file filter list
44       */
45      List<FileFilter> getFileFilters();
46  
47      /**
48       * Removes the specified file filter.
49       *
50       * @param fileFilter filter to be removed
51       *
52       * @return {@code true} if the filter was found in the list, {@code false}
53       *         otherwise
54       */
55      boolean removeFileFilter(FileFilter fileFilter);
56  
57      /**
58       * Sets the list of file filters, replacing any previously configured file
59       * filters on this filter.
60       *
61       * @param fileFilters the list of filters
62       */
63      void setFileFilters(List<FileFilter> fileFilters);
64  
65  }