196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project/* 296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * this work for additional information regarding copyright ownership. 596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * (the "License"); you may not use this file except in compliance with 796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * the License. You may obtain a copy of the License at 896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 1096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 1196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 1296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 1396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * See the License for the specific language governing permissions and 1596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * limitations under the License. 1696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 1796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectpackage org.apache.commons.io.filefilter; 1896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 1996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport java.io.File; 2096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport java.io.Serializable; 2196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 2296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project/** 2396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This filter accepts <code>File</code>s that can be read. 2496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 2596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Example, showing how to print out a list of the 2696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * current directory's <i>readable</i> files: 2796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 2896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <pre> 2996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * File dir = new File("."); 3096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * String[] files = dir.list( CanReadFileFilter.CAN_READ ); 3196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * for ( int i = 0; i < files.length; i++ ) { 3296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * System.out.println(files[i]); 3396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * } 3496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * </pre> 3596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 3696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 3796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Example, showing how to print out a list of the 3896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * current directory's <i>un-readable</i> files: 3996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 4096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <pre> 4196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * File dir = new File("."); 4296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * String[] files = dir.list( CanReadFileFilter.CANNOT_READ ); 4396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * for ( int i = 0; i < files.length; i++ ) { 4496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * System.out.println(files[i]); 4596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * } 4696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * </pre> 4796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 4896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 4996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Example, showing how to print out a list of the 5096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * current directory's <i>read-only</i> files: 5196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 5296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <pre> 5396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * File dir = new File("."); 5496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * String[] files = dir.list( CanReadFileFilter.READ_ONLY ); 5596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * for ( int i = 0; i < files.length; i++ ) { 5696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * System.out.println(files[i]); 5796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * } 5896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * </pre> 5996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 6096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.3 6196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @version $Revision: 587916 $ 6296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 6396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectpublic class CanReadFileFilter extends AbstractFileFilter implements Serializable { 6496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 6596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** Singleton instance of <i>readable</i> filter */ 6696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static final IOFileFilter CAN_READ = new CanReadFileFilter(); 6796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 6896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** Singleton instance of not <i>readable</i> filter */ 6996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static final IOFileFilter CANNOT_READ = new NotFileFilter(CAN_READ); 7096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 7196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** Singleton instance of <i>read-only</i> filter */ 7296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static final IOFileFilter READ_ONLY = new AndFileFilter(CAN_READ, 7396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project CanWriteFileFilter.CANNOT_WRITE); 7496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 7596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 7696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Restrictive consructor. 7796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 7896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project protected CanReadFileFilter() { 7996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 8096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 8196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 8296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Checks to see if the file can be read. 8396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 8496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param file the File to check. 8596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return <code>true</code> if the file can be 8696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * read, otherwise <code>false</code>. 8796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 8896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public boolean accept(File file) { 8996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return file.canRead(); 9096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 9196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 9296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project} 93