/* * This file is part of the DiffX library. * * For licensing information please see the file license.txt included in the release. * A copy of this licence can also be found at * http://www.opensource.org/licenses/artistic-license-2.0.php */ package com.topologi.diffx.util; import java.io.File; import java.io.FileFilter; /** * Filename filter for XML files. * * <p>This filter assumes that an file simply as the .xml file extension. * * @author Christophe Lauret * @version 4 April 2005 */ public final class XMLFilenameFilter implements FileFilter { /** * The XML extension to be used for filtering the files. */ public static final String DEFAULT_EXTENSION = "xml"; /** * The XML extension to be used for filtering the files. * * @deprecated will be made private in future releases */ @Deprecated public final String ext = DEFAULT_EXTENSION; /** * Set to <code>true</code> to ignore the case of the extension. */ public final boolean ignoreCase; /** * Creates a new case-insensitive XML file filter. */ public XMLFilenameFilter() { this.ignoreCase = false; } /** * Creates a new XML file filter. * * @param ignoreCase <code>true</code> to ignore the case of the extension. */ public XMLFilenameFilter(boolean ignoreCase) { this.ignoreCase = ignoreCase; } /** * Tests whether or not the specified abstract pathname should be included in a pathname * list. * * <p>A file is accepted if its name has a file extension matching the "xml". * * @param pathname The abstract pathname to be tested; * * @return <code>true</code> if and only if pathname has an extension matching "xml". * * @throws NullPointerException If the path name is <code>null</code>. */ @Override public boolean accept(File pathname) throws NullPointerException { if (pathname == null) throw new NullPointerException("The specified file is null."); String name = pathname.getName(); int dot = name.lastIndexOf('.'); if (dot == -1) return false; String local = name.substring(dot+1); return this.ignoreCase? DEFAULT_EXTENSION.equalsIgnoreCase(local) : DEFAULT_EXTENSION.equals(local); } }