|
ConcreteFilenameFilter |
|
1 package com.mccrory.scott.base; 2 3 //////////////////////////////////////////////////////////////////////////////// 4 // Copyright (C) 2002 Scott McCrory 5 // 6 // This program is free software; you can redistribute it and/or 7 // modify it under the terms of the GNU General Public License 8 // as published by the Free Software Foundation; either version 2 9 // of the License, or (at your option) any later version. 10 // 11 // This program is distributed in the hope that it will be useful, 12 // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 // GNU General Public License for more details. 15 // 16 // You should have received a copy of the GNU General Public License 17 // along with this program; if not, write to the Free Software 18 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19 //////////////////////////////////////////////////////////////////////////////// 20 21 import java.io.File; 22 import java.io.FilenameFilter; 23 24 /** 25 * <P>A case-insensitive, concrete implementation of java.io.FilenameFilter. 26 * Patterned after an example in Bruce Eckel's "Thinking in Java". 27 * Example: 28 * <pre> 29 * // Get a list of XML files in a directory 30 * ConcreteFilenameFilter xmlFilter = new ConcreteFilenameFilter(".xml"); 31 * File fileList[] = prefsDir.listFiles(xmlFilter); 32 * if (fileList == null || fileList.length < 1) { 33 * throw new IOException("'" + prefsDirString + "' has no .xml files in it!"); 34 * } 35 * </pre></P> 36 * @author <a href="mailto:smccrory@users.sourceforge.net">Scott McCrory</a>. 37 * @version CVS $Id: ConcreteFilenameFilter.java,v 1.19 2002/08/04 22:04:53 smccrory Exp $ 38 */ 39 public class ConcreteFilenameFilter implements FilenameFilter { 40 41 /** The filename to check **/ 42 private String filenameFilter; 43 44 /** The name of this class to log context without introspection **/ 45 private static final String CLASS_NAME = "ConcreteFilenameFilter"; 46 47 /** The version of this class (filled in by CVS) **/ 48 private static final String VERSION = "CVS $Revision: 1.19 $"; 49 50 /** 51 * ConcreteFilenameFilter constructor. 52 * 53 * @param fileFilter The filename filter 54 */ 55 public ConcreteFilenameFilter(String fileFilter) { 56 this.filenameFilter = fileFilter; 57 } 58 59 /** 60 * Required for the FilenameFilter interface. 61 * 62 * @param dir The directory 63 * @param name The filename 64 * @return boolean Validity indicator 65 */ 66 public boolean accept(File dir, String name) { 67 68 // Strip path information: 69 String f = new File(name).getName(); 70 71 // Case insensitive 72 f = f.toLowerCase(); 73 filenameFilter = filenameFilter.toLowerCase(); 74 75 // See if the pattern matches 76 return f.indexOf(filenameFilter) != -1; 77 78 } 79 80 } 81
|
ConcreteFilenameFilter |
|