1 18 19 package org.apache.tools.ant.types.selectors; 20 21 import java.io.File ; 22 import java.util.Enumeration ; 23 import java.util.Vector ; 24 25 import org.apache.tools.ant.BuildException; 26 import org.apache.tools.ant.Project; 27 import org.apache.tools.ant.types.selectors.modifiedselector.ModifiedSelector; 28 29 34 public abstract class BaseSelectorContainer extends BaseSelector 35 implements SelectorContainer { 36 37 private Vector selectorsList = new Vector (); 38 39 42 public BaseSelectorContainer() { 43 } 44 45 49 public boolean hasSelectors() { 50 return !(selectorsList.isEmpty()); 51 } 52 53 57 public int selectorCount() { 58 return selectorsList.size(); 59 } 60 61 66 public FileSelector[] getSelectors(Project p) { 67 FileSelector[] result = new FileSelector[selectorsList.size()]; 68 selectorsList.copyInto(result); 69 return result; 70 } 71 72 76 public Enumeration selectorElements() { 77 return selectorsList.elements(); 78 } 79 80 87 public String toString() { 88 StringBuffer buf = new StringBuffer (); 89 Enumeration e = selectorElements(); 90 if (e.hasMoreElements()) { 91 while (e.hasMoreElements()) { 92 buf.append(e.nextElement().toString()); 93 if (e.hasMoreElements()) { 94 buf.append(", "); 95 } 96 } 97 } 98 99 return buf.toString(); 100 } 101 102 107 public void appendSelector(FileSelector selector) { 108 selectorsList.addElement(selector); 109 } 110 111 127 public void validate() { 128 verifySettings(); 129 String errmsg = getError(); 130 if (errmsg != null) { 131 throw new BuildException(errmsg); 132 } 133 Enumeration e = selectorElements(); 134 while (e.hasMoreElements()) { 135 Object o = e.nextElement(); 136 if (o instanceof BaseSelector) { 137 ((BaseSelector) o).validate(); 138 } 139 } 140 } 141 142 143 153 public abstract boolean isSelected(File basedir, String filename, 154 File file); 155 156 157 158 159 163 public void addSelector(SelectSelector selector) { 164 appendSelector(selector); 165 } 166 167 171 public void addAnd(AndSelector selector) { 172 appendSelector(selector); 173 } 174 175 179 public void addOr(OrSelector selector) { 180 appendSelector(selector); 181 } 182 183 187 public void addNot(NotSelector selector) { 188 appendSelector(selector); 189 } 190 191 195 public void addNone(NoneSelector selector) { 196 appendSelector(selector); 197 } 198 199 203 public void addMajority(MajoritySelector selector) { 204 appendSelector(selector); 205 } 206 207 211 public void addDate(DateSelector selector) { 212 appendSelector(selector); 213 } 214 215 219 public void addSize(SizeSelector selector) { 220 appendSelector(selector); 221 } 222 223 227 public void addFilename(FilenameSelector selector) { 228 appendSelector(selector); 229 } 230 231 235 public void addCustom(ExtendSelector selector) { 236 appendSelector(selector); 237 } 238 239 243 public void addContains(ContainsSelector selector) { 244 appendSelector(selector); 245 } 246 247 251 public void addPresent(PresentSelector selector) { 252 appendSelector(selector); 253 } 254 255 259 public void addDepth(DepthSelector selector) { 260 appendSelector(selector); 261 } 262 263 267 public void addDepend(DependSelector selector) { 268 appendSelector(selector); 269 } 270 271 275 public void addDifferent(DifferentSelector selector) { 276 appendSelector(selector); 277 } 278 279 283 public void addType(TypeSelector selector) { 284 appendSelector(selector); 285 } 286 287 291 public void addContainsRegexp(ContainsRegexpSelector selector) { 292 appendSelector(selector); 293 } 294 295 300 public void addModified(ModifiedSelector selector) { 301 appendSelector(selector); 302 } 303 304 309 public void add(FileSelector selector) { 310 appendSelector(selector); 311 } 312 313 } 314 | Popular Tags |