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 written to.
23: * <p>
24: * Example, showing how to print out a list of the
25: * current directory's <i>writable</i> files:
26: *
27: * <pre>
28: * File dir = new File(".");
29: * String[] files = dir.list( CanWriteFileFilter.CAN_WRITE );
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-writable</i> files:
38: *
39: * <pre>
40: * File dir = new File(".");
41: * String[] files = dir.list( CanWriteFileFilter.CANNOT_WRITE );
42: * for ( int i = 0; i < files.length; i++ ) {
43: * System.out.println(files[i]);
44: * }
45: * </pre>
46: *
47: * <p>
48: * <b>N.B.</b> For read-only files, use
49: * <code>CanReadFileFilter.READ_ONLY</code>.
50: *
51: * @since Commons IO 1.3
52: * @version $Revision: 437567 $
53: */
54: public class CanWriteFileFilter extends AbstractFileFilter {
55:
56: /** Singleton instance of <i>writable</i> filter */
57: public static final IOFileFilter CAN_WRITE = new CanWriteFileFilter();
58:
59: /** Singleton instance of not <i>writable</i> filter */
60: public static final IOFileFilter CANNOT_WRITE = new NotFileFilter(
61: CAN_WRITE);
62:
63: /**
64: * Restrictive consructor.
65: */
66: protected CanWriteFileFilter() {
67: }
68:
69: /**
70: * Checks to see if the file can be written to.
71: *
72: * @param file the File to check
73: * @return <code>true</code> if the file can be
74: * written to, otherwise <code>false</code>.
75: */
76: public boolean accept(File file) {
77: return file.canWrite();
78: }
79:
80: }
|