001package com.hfg.util.io;
002
003import java.io.File;
004import java.io.FilenameFilter;
005import java.util.regex.Pattern;
006
007//------------------------------------------------------------------------------
008/**
009 FilenameFilter implementation that uses regular expressions.
010
011 @author J. Alex Taylor, hairyfatguy.com
012 */
013//------------------------------------------------------------------------------
014// com.hfg XML/HTML Coding Library
015//
016// This library is free software; you can redistribute it and/or
017// modify it under the terms of the GNU Lesser General Public
018// License as published by the Free Software Foundation; either
019// version 2.1 of the License, or (at your option) any later version.
020//
021// This library is distributed in the hope that it will be useful,
022// but WITHOUT ANY WARRANTY; without even the implied warranty of
023// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
024// Lesser General Public License for more details.
025//
026// You should have received a copy of the GNU Lesser General Public
027// License along with this library; if not, write to the Free Software
028// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
029//
030// J. Alex Taylor, President, Founder, CEO, COO, CFO, OOPS hairyfatguy.com
031// jataylor@hairyfatguy.com
032//------------------------------------------------------------------------------
033
034public class RegexpFilenameFilter implements FilenameFilter
035{
036   private Pattern mFilenamePattern;
037
038   //--------------------------------------------------------------------------
039   public RegexpFilenameFilter(Pattern inNameRegexp)
040   {
041      mFilenamePattern = inNameRegexp;
042   }
043
044   //--------------------------------------------------------------------------
045   public boolean accept(File dir, String inName)
046   {
047      return mFilenamePattern.matcher(inName).matches();
048   }
049}