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.FileFilter; 2196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport java.io.FilenameFilter; 2296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport java.util.Date; 2396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 2496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project/** 2596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Useful utilities for working with file filters. It provides access to all 2696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * file filter implementations in this package so you don't have to import 2796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * every class you use. 2896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 2996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.0 3096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @version $Id: FileFilterUtils.java 609286 2008-01-06 10:01:26Z scolebourne $ 3196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 3296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @author Stephen Colebourne 3396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @author Jeremias Maerki 3496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @author Masato Tezuka 3596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @author Rahul Akolkar 3696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 3796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectpublic class FileFilterUtils { 3896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 3996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 4096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * FileFilterUtils is not normally instantiated. 4196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 4296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public FileFilterUtils() { 4396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 4496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 4596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project //----------------------------------------------------------------------- 4696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 4796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Returns a filter that returns true if the filename starts with the specified text. 4896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 4996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param prefix the filename prefix 5096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return a prefix checking filter 5196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 5296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static IOFileFilter prefixFileFilter(String prefix) { 5396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return new PrefixFileFilter(prefix); 5496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 5596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 5696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 5796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Returns a filter that returns true if the filename ends with the specified text. 5896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 5996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param suffix the filename suffix 6096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return a suffix checking filter 6196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 6296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static IOFileFilter suffixFileFilter(String suffix) { 6396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return new SuffixFileFilter(suffix); 6496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 6596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 6696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 6796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Returns a filter that returns true if the filename matches the specified text. 6896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 6996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param name the filename 7096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return a name checking filter 7196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 7296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static IOFileFilter nameFileFilter(String name) { 7396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return new NameFileFilter(name); 7496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 7596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 7696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 7796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Returns a filter that checks if the file is a directory. 7896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 7996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return file filter that accepts only directories and not files 8096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 8196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static IOFileFilter directoryFileFilter() { 8296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return DirectoryFileFilter.DIRECTORY; 8396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 8496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 8596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 8696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Returns a filter that checks if the file is a file (and not a directory). 8796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 8896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return file filter that accepts only files and not directories 8996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 9096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static IOFileFilter fileFileFilter() { 9196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return FileFileFilter.FILE; 9296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 9396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 9496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project //----------------------------------------------------------------------- 9596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 9696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Returns a filter that ANDs the two specified filters. 9796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 9896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param filter1 the first filter 9996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param filter2 the second filter 10096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return a filter that ANDs the two specified filters 10196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 10296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static IOFileFilter andFileFilter(IOFileFilter filter1, IOFileFilter filter2) { 10396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return new AndFileFilter(filter1, filter2); 10496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 10596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 10696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 10796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Returns a filter that ORs the two specified filters. 10896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 10996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param filter1 the first filter 11096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param filter2 the second filter 11196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return a filter that ORs the two specified filters 11296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 11396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static IOFileFilter orFileFilter(IOFileFilter filter1, IOFileFilter filter2) { 11496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return new OrFileFilter(filter1, filter2); 11596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 11696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 11796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 11896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Returns a filter that NOTs the specified filter. 11996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 12096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param filter the filter to invert 12196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return a filter that NOTs the specified filter 12296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 12396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static IOFileFilter notFileFilter(IOFileFilter filter) { 12496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return new NotFileFilter(filter); 12596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 12696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 12796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project //----------------------------------------------------------------------- 12896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 12996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Returns a filter that always returns true. 13096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 13196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return a true filter 13296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 13396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static IOFileFilter trueFileFilter() { 13496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return TrueFileFilter.TRUE; 13596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 13696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 13796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 13896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Returns a filter that always returns false. 13996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 14096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return a false filter 14196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 14296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static IOFileFilter falseFileFilter() { 14396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return FalseFileFilter.FALSE; 14496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 14596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 14696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project //----------------------------------------------------------------------- 14796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 14896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Returns an <code>IOFileFilter</code> that wraps the 14996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>FileFilter</code> instance. 15096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 15196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param filter the filter to be wrapped 15296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return a new filter that implements IOFileFilter 15396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 15496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static IOFileFilter asFileFilter(FileFilter filter) { 15596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return new DelegateFileFilter(filter); 15696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 15796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 15896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 15996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Returns an <code>IOFileFilter</code> that wraps the 16096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>FilenameFilter</code> instance. 16196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 16296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param filter the filter to be wrapped 16396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return a new filter that implements IOFileFilter 16496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 16596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static IOFileFilter asFileFilter(FilenameFilter filter) { 16696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return new DelegateFileFilter(filter); 16796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 16896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 16996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project //----------------------------------------------------------------------- 17096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 17196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Returns a filter that returns true if the file was last modified after 17296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * the specified cutoff time. 17396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 17496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param cutoff the time threshold 17596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return an appropriately configured age file filter 17696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.2 17796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 17896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static IOFileFilter ageFileFilter(long cutoff) { 17996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return new AgeFileFilter(cutoff); 18096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 18196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 18296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 18396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Returns a filter that filters files based on a cutoff time. 18496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 18596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param cutoff the time threshold 18696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param acceptOlder if true, older files get accepted, if false, newer 18796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return an appropriately configured age file filter 18896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.2 18996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 19096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static IOFileFilter ageFileFilter(long cutoff, boolean acceptOlder) { 19196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return new AgeFileFilter(cutoff, acceptOlder); 19296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 19396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 19496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 19596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Returns a filter that returns true if the file was last modified after 19696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * the specified cutoff date. 19796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 19896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param cutoffDate the time threshold 19996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return an appropriately configured age file filter 20096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.2 20196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 20296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static IOFileFilter ageFileFilter(Date cutoffDate) { 20396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return new AgeFileFilter(cutoffDate); 20496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 20596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 20696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 20796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Returns a filter that filters files based on a cutoff date. 20896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 20996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param cutoffDate the time threshold 21096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param acceptOlder if true, older files get accepted, if false, newer 21196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return an appropriately configured age file filter 21296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.2 21396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 21496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static IOFileFilter ageFileFilter(Date cutoffDate, boolean acceptOlder) { 21596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return new AgeFileFilter(cutoffDate, acceptOlder); 21696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 21796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 21896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 21996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Returns a filter that returns true if the file was last modified after 22096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * the specified reference file. 22196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 22296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param cutoffReference the file whose last modification 22396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * time is usesd as the threshold age of the files 22496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return an appropriately configured age file filter 22596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.2 22696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 22796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static IOFileFilter ageFileFilter(File cutoffReference) { 22896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return new AgeFileFilter(cutoffReference); 22996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 23096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 23196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 23296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Returns a filter that filters files based on a cutoff reference file. 23396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 23496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param cutoffReference the file whose last modification 23596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * time is usesd as the threshold age of the files 23696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param acceptOlder if true, older files get accepted, if false, newer 23796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return an appropriately configured age file filter 23896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.2 23996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 24096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static IOFileFilter ageFileFilter(File cutoffReference, boolean acceptOlder) { 24196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return new AgeFileFilter(cutoffReference, acceptOlder); 24296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 24396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 24496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project //----------------------------------------------------------------------- 24596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 24696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Returns a filter that returns true if the file is bigger than a certain size. 24796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 24896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param threshold the file size threshold 24996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return an appropriately configured SizeFileFilter 25096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.2 25196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 25296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static IOFileFilter sizeFileFilter(long threshold) { 25396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return new SizeFileFilter(threshold); 25496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 25596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 25696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 25796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Returns a filter that filters based on file size. 25896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 25996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param threshold the file size threshold 26096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param acceptLarger if true, larger files get accepted, if false, smaller 26196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return an appropriately configured SizeFileFilter 26296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.2 26396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 26496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static IOFileFilter sizeFileFilter(long threshold, boolean acceptLarger) { 26596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return new SizeFileFilter(threshold, acceptLarger); 26696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 26796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 26896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 26996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Returns a filter that accepts files whose size is >= minimum size 27096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * and <= maximum size. 27196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 27296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param minSizeInclusive the minimum file size (inclusive) 27396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param maxSizeInclusive the maximum file size (inclusive) 27496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return an appropriately configured IOFileFilter 27596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.3 27696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 27796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static IOFileFilter sizeRangeFileFilter(long minSizeInclusive, long maxSizeInclusive ) { 27896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project IOFileFilter minimumFilter = new SizeFileFilter(minSizeInclusive, true); 27996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project IOFileFilter maximumFilter = new SizeFileFilter(maxSizeInclusive + 1L, false); 28096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return new AndFileFilter(minimumFilter, maximumFilter); 28196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 28296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 28396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project //----------------------------------------------------------------------- 28496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /* Constructed on demand and then cached */ 28596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project private static IOFileFilter cvsFilter; 28696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 28796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /* Constructed on demand and then cached */ 28896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project private static IOFileFilter svnFilter; 28996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 29096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 29196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Decorates a filter to make it ignore CVS directories. 29296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Passing in <code>null</code> will return a filter that accepts everything 29396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * except CVS directories. 29496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 29596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param filter the filter to decorate, null means an unrestricted filter 29696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return the decorated filter, never null 29796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 (method existed but had bug in 1.0) 29896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 29996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static IOFileFilter makeCVSAware(IOFileFilter filter) { 30096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (cvsFilter == null) { 30196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project cvsFilter = notFileFilter( 30296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project andFileFilter(directoryFileFilter(), nameFileFilter("CVS"))); 30396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 30496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (filter == null) { 30596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return cvsFilter; 30696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } else { 30796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return andFileFilter(filter, cvsFilter); 30896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 30996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 31096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 31196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 31296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Decorates a filter to make it ignore SVN directories. 31396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Passing in <code>null</code> will return a filter that accepts everything 31496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * except SVN directories. 31596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 31696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param filter the filter to decorate, null means an unrestricted filter 31796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return the decorated filter, never null 31896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 31996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 32096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static IOFileFilter makeSVNAware(IOFileFilter filter) { 32196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (svnFilter == null) { 32296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project svnFilter = notFileFilter( 32396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project andFileFilter(directoryFileFilter(), nameFileFilter(".svn"))); 32496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 32596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (filter == null) { 32696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return svnFilter; 32796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } else { 32896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return andFileFilter(filter, svnFilter); 32996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 33096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 33196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 33296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project //----------------------------------------------------------------------- 33396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 33496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Decorates a filter so that it only applies to directories and not to files. 33596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 33696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param filter the filter to decorate, null means an unrestricted filter 33796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return the decorated filter, never null 33896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.3 33996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 34096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static IOFileFilter makeDirectoryOnly(IOFileFilter filter) { 34196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (filter == null) { 34296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return DirectoryFileFilter.DIRECTORY; 34396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 34496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return new AndFileFilter(DirectoryFileFilter.DIRECTORY, filter); 34596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 34696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 34796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 34896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Decorates a filter so that it only applies to files and not to directories. 34996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 35096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param filter the filter to decorate, null means an unrestricted filter 35196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return the decorated filter, never null 35296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.3 35396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 35496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static IOFileFilter makeFileOnly(IOFileFilter filter) { 35596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (filter == null) { 35696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return FileFileFilter.FILE; 35796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 35896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return new AndFileFilter(FileFileFilter.FILE, filter); 35996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 36096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 36196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project} 362