package edu.stanford.nlp.io;
import java.io.*;
import java.util.regex.*;
/**
* Implements a file filter that filters based on a passed in {@link java.util.regex.Pattern}.
* Preciesly, it will accept exactly those {@link java.io.File}s for which
* the matches() method of the Pattern returns true on the output of the getName()
* method of the File.
*
* @author Jenny Finkel
*/
public class RegExFileFilter implements FileFilter {
private Pattern pattern = null;
/**
* Sets up a RegExFileFilter which checks if the file name (not the
* entire path) matches the passed in {@link java.util.regex.Pattern}.
*/
public RegExFileFilter(Pattern pattern) {
this.pattern = pattern;
}
/**
* Checks whether a file satisfies the selection filter.
*
* @param file The file
* @return true if the file is acceptable
*/
public boolean accept(File file) {
Matcher m = pattern.matcher(file.getName());
return m.matches();
}
}