1 18 19 package org.apache.tools.ant.types.selectors; 20 21 import java.io.File ; 22 23 import org.apache.tools.ant.Project; 24 import org.apache.tools.ant.types.Parameter; 25 26 31 public class FilenameSelector extends BaseExtendSelector { 32 33 private String pattern = null; 34 private boolean casesensitive = true; 35 36 private boolean negated = false; 37 38 public static final String NAME_KEY = "name"; 39 40 public static final String CASE_KEY = "casesensitive"; 41 42 public static final String NEGATE_KEY = "negate"; 43 44 48 public FilenameSelector() { 49 } 50 51 54 public String toString() { 55 StringBuffer buf = new StringBuffer ("{filenameselector name: "); 56 buf.append(pattern); 57 buf.append(" negate: "); 58 if (negated) { 59 buf.append("true"); 60 } else { 61 buf.append("false"); 62 } 63 buf.append(" casesensitive: "); 64 if (casesensitive) { 65 buf.append("true"); 66 } else { 67 buf.append("false"); 68 } 69 buf.append("}"); 70 return buf.toString(); 71 } 72 73 80 public void setName(String pattern) { 81 pattern = pattern.replace('/', File.separatorChar).replace('\\', 82 File.separatorChar); 83 if (pattern.endsWith(File.separator)) { 84 pattern += "**"; 85 } 86 this.pattern = pattern; 87 } 88 89 94 public void setCasesensitive(boolean casesensitive) { 95 this.casesensitive = casesensitive; 96 } 97 98 106 public void setNegate(boolean negated) { 107 this.negated = negated; 108 } 109 110 116 public void setParameters(Parameter[] parameters) { 117 super.setParameters(parameters); 118 if (parameters != null) { 119 for (int i = 0; i < parameters.length; i++) { 120 String paramname = parameters[i].getName(); 121 if (NAME_KEY.equalsIgnoreCase(paramname)) { 122 setName(parameters[i].getValue()); 123 } else if (CASE_KEY.equalsIgnoreCase(paramname)) { 124 setCasesensitive(Project.toBoolean( 125 parameters[i].getValue())); 126 } else if (NEGATE_KEY.equalsIgnoreCase(paramname)) { 127 setNegate(Project.toBoolean(parameters[i].getValue())); 128 } else { 129 setError("Invalid parameter " + paramname); 130 } 131 } 132 } 133 } 134 135 140 public void verifySettings() { 141 if (pattern == null) { 142 setError("The name attribute is required"); 143 } 144 } 145 146 158 public boolean isSelected(File basedir, String filename, File file) { 159 validate(); 160 161 return (SelectorUtils.matchPath(pattern, filename, 162 casesensitive) == !(negated)); 163 } 164 165 } 166 167 | Popular Tags |