1 18 19 package org.apache.tools.ant.types.selectors; 20 21 import java.io.File ; 22 23 import org.apache.tools.ant.types.EnumeratedAttribute; 24 import org.apache.tools.ant.types.Parameter; 25 26 31 public class TypeSelector extends BaseExtendSelector { 32 33 private String type = null; 34 35 36 public static final String TYPE_KEY = "type"; 37 38 42 public TypeSelector() { 43 } 44 45 48 public String toString() { 49 StringBuffer buf = new StringBuffer ("{typeselector type: "); 50 buf.append(type); 51 buf.append("}"); 52 return buf.toString(); 53 } 54 55 59 public void setType(FileType fileTypes) { 60 this.type = fileTypes.getValue(); 61 } 62 63 69 public void setParameters(Parameter[] parameters) { 70 super.setParameters(parameters); 71 if (parameters != null) { 72 for (int i = 0; i < parameters.length; i++) { 73 String paramname = parameters[i].getName(); 74 if (TYPE_KEY.equalsIgnoreCase(paramname)) { 75 FileType t = new FileType(); 76 t.setValue(parameters[i].getValue()); 77 setType(t); 78 } else { 79 setError("Invalid parameter " + paramname); 80 } 81 } 82 } 83 } 84 85 90 public void verifySettings() { 91 if (type == null) { 92 setError("The type attribute is required"); 93 } 94 } 95 96 105 public boolean isSelected(File basedir, String filename, File file) { 106 107 validate(); 109 110 if (file.isDirectory()) { 111 return type.equals(FileType.DIR); 112 } else { 113 return type.equals(FileType.FILE); 114 } 115 } 116 117 120 public static class FileType extends EnumeratedAttribute { 121 122 public static final String FILE = "file"; 123 124 public static final String DIR = "dir"; 125 126 129 public String [] getValues() { 130 return new String []{FILE, DIR}; 131 } 132 } 133 134 135 } 136 | Popular Tags |