01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * 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.io.filefilter;
18:
19: import java.io.File;
20:
21: /**
22: * This filter accepts <code>File</code>s that can be read.
23: * <p>
24: * Example, showing how to print out a list of the
25: * current directory's <i>readable</i> files:
26: *
27: * <pre>
28: * File dir = new File(".");
29: * String[] files = dir.list( CanReadFileFilter.CAN_READ );
30: * for ( int i = 0; i < files.length; i++ ) {
31: * System.out.println(files[i]);
32: * }
33: * </pre>
34: *
35: * <p>
36: * Example, showing how to print out a list of the
37: * current directory's <i>un-readable</i> files:
38: *
39: * <pre>
40: * File dir = new File(".");
41: * String[] files = dir.list( CanReadFileFilter.CANNOT_READ );
42: * for ( int i = 0; i < files.length; i++ ) {
43: * System.out.println(files[i]);
44: * }
45: * </pre>
46: *
47: * <p>
48: * Example, showing how to print out a list of the
49: * current directory's <i>read-only</i> files:
50: *
51: * <pre>
52: * File dir = new File(".");
53: * String[] files = dir.list( CanReadFileFilter.READ_ONLY );
54: * for ( int i = 0; i < files.length; i++ ) {
55: * System.out.println(files[i]);
56: * }
57: * </pre>
58: *
59: * @since Commons IO 1.3
60: * @version $Revision: 437567 $
61: */
62: public class CanReadFileFilter extends AbstractFileFilter {
63:
64: /** Singleton instance of <i>readable</i> filter */
65: public static final IOFileFilter CAN_READ = new CanReadFileFilter();
66:
67: /** Singleton instance of not <i>readable</i> filter */
68: public static final IOFileFilter CANNOT_READ = new NotFileFilter(
69: CAN_READ);
70:
71: /** Singleton instance of <i>read-only</i> filter */
72: public static final IOFileFilter READ_ONLY = new AndFileFilter(
73: CAN_READ, CanWriteFileFilter.CANNOT_WRITE);
74:
75: /**
76: * Restrictive consructor.
77: */
78: protected CanReadFileFilter() {
79: }
80:
81: /**
82: * Checks to see if the file can be read.
83: *
84: * @param file the File to check.
85: * @return <code>true</code> if the file can be
86: * read, otherwise <code>false</code>.
87: */
88: public boolean accept(File file) {
89: return file.canRead();
90: }
91:
92: }
|