FileDocCategorySizeDatePackage
FilenameSelector.javaAPI DocApache Ant 1.705570Wed Dec 13 06:16:20 GMT 2006org.apache.tools.ant.types.selectors

FilenameSelector

public class FilenameSelector extends BaseExtendSelector
Selector that filters files based on the filename.
since
1.5

Fields Summary
private String
pattern
private boolean
casesensitive
private boolean
negated
public static final String
NAME_KEY
Used for parameterized custom selector
public static final String
CASE_KEY
Used for parameterized custom selector
public static final String
NEGATE_KEY
Used for parameterized custom selector
Constructors Summary
public FilenameSelector()
Creates a new FilenameSelector instance.


              
      
    
Methods Summary
public booleanisSelected(java.io.File basedir, java.lang.String filename, java.io.File file)
The heart of the matter. This is where the selector gets to decide on the inclusion of a file in a particular fileset. Most of the work for this selector is offloaded into SelectorUtils, a static class that provides the same services for both FilenameSelector and DirectoryScanner.

param
basedir the base directory the scan is being done from
param
filename is the name of the file to check
param
file is a java.io.File object the selector can use
return
whether the file should be selected or not

        validate();

        return (SelectorUtils.matchPath(pattern, filename,
                casesensitive) == !(negated));
    
public voidsetCasesensitive(boolean casesensitive)
Whether to ignore case when checking filenames.

param
casesensitive whether to pay attention to case sensitivity

        this.casesensitive = casesensitive;
    
public voidsetName(java.lang.String pattern)
The name of the file, or the pattern for the name, that should be used for selection.

param
pattern the file pattern that any filename must match against in order to be selected.

        pattern = pattern.replace('/", File.separatorChar).replace('\\",
                File.separatorChar);
        if (pattern.endsWith(File.separator)) {
            pattern += "**";
        }
        this.pattern = pattern;
    
public voidsetNegate(boolean negated)
You can optionally reverse the selection of this selector, thereby emulating an <exclude> tag, by setting the attribute negate to true. This is identical to surrounding the selector with <not></not>.

param
negated whether to negate this selection

        this.negated = negated;
    
public voidsetParameters(org.apache.tools.ant.types.Parameter[] parameters)
When using this as a custom selector, this method will be called. It translates each parameter into the appropriate setXXX() call.

param
parameters the complete set of parameters for this selector

        super.setParameters(parameters);
        if (parameters != null) {
            for (int i = 0; i < parameters.length; i++) {
                String paramname = parameters[i].getName();
                if (NAME_KEY.equalsIgnoreCase(paramname)) {
                    setName(parameters[i].getValue());
                } else if (CASE_KEY.equalsIgnoreCase(paramname)) {
                    setCasesensitive(Project.toBoolean(
                            parameters[i].getValue()));
                } else if (NEGATE_KEY.equalsIgnoreCase(paramname)) {
                    setNegate(Project.toBoolean(parameters[i].getValue()));
                } else {
                    setError("Invalid parameter " + paramname);
                }
            }
        }
    
public java.lang.StringtoString()

return
a string describing this object

        StringBuffer buf = new StringBuffer("{filenameselector name: ");
        buf.append(pattern);
        buf.append(" negate: ");
        if (negated) {
            buf.append("true");
        } else {
            buf.append("false");
        }
        buf.append(" casesensitive: ");
        if (casesensitive) {
            buf.append("true");
        } else {
            buf.append("false");
        }
        buf.append("}");
        return buf.toString();
    
public voidverifySettings()
Checks to make sure all settings are kosher. In this case, it means that the name attribute has been set.

        if (pattern == null) {
            setError("The name attribute is required");
        }