1 28 29 package com.idaremedia.antx.parameters; 30 31 import com.idaremedia.antx.helpers.Strings; 32 import com.idaremedia.antx.helpers.Tk; 33 34 72 73 public class ValueTransform extends EnumSkeleton 74 { 75 77 79 80 public static final int NONE_INDEX = 0; 81 82 public static final int DATETIME_INDEX = NONE_INDEX+1; 83 84 public static final int LONGDATETIME_INDEX = DATETIME_INDEX+1; 85 86 public static final int DURATION_INDEX = LONGDATETIME_INDEX+1; 87 88 public static final int OSPATH_INDEX = DURATION_INDEX+1; 89 90 public static final int CHECKPOINT_INDEX = OSPATH_INDEX+1; 91 92 public static final int LOWERCASE_INDEX = CHECKPOINT_INDEX+1; 93 94 public static final int UPPERCASE_INDEX = LOWERCASE_INDEX+1; 95 96 public static final int INVERTCASE_INDEX = UPPERCASE_INDEX+1; 97 98 101 public static final int OSPATHURL_INDEX = INVERTCASE_INDEX+1; 102 103 106 public static final int DECIMAL_INDEX = OSPATHURL_INDEX+1; 107 108 111 public static final int TRIM_INDEX = DECIMAL_INDEX+1; 112 113 116 public static final int STRIPWS_INDEX = TRIM_INDEX+1; 117 118 119 protected static final int BASE_VALUE_COUNT= STRIPWS_INDEX+1; 120 121 122 124 125 private static final String [] VALUES_= new String [] { 126 "none", "datetime", "longdatetime", "duration", "ospath", 127 "checkpoint", "lowercase", "uppercase", "invertcase", 128 "ospathurl", "decimal", "trim", "stripws" 129 }; 130 131 132 134 135 public static final ValueTransform NONE= 136 new ValueTransform(VALUES_[NONE_INDEX],NONE_INDEX); 137 138 139 public static final ValueTransform DATETIME= 140 new ValueTransform(VALUES_[DATETIME_INDEX],DATETIME_INDEX); 141 142 143 public static final ValueTransform LONGDATETIME= 144 new ValueTransform(VALUES_[LONGDATETIME_INDEX],LONGDATETIME_INDEX); 145 146 147 public static final ValueTransform DURATION= 148 new ValueTransform(VALUES_[DURATION_INDEX],DURATION_INDEX); 149 150 151 public static final ValueTransform OSPATH= 152 new ValueTransform(VALUES_[OSPATH_INDEX],OSPATH_INDEX); 153 154 155 public static final ValueTransform CHECKPOINT= 156 new ValueTransform(VALUES_[CHECKPOINT_INDEX],CHECKPOINT_INDEX); 157 158 159 public static final ValueTransform LOWERCASE= 160 new ValueTransform(VALUES_[LOWERCASE_INDEX],LOWERCASE_INDEX); 161 162 163 public static final ValueTransform UPPERCASE= 164 new ValueTransform(VALUES_[UPPERCASE_INDEX],UPPERCASE_INDEX); 165 166 167 public static final ValueTransform INVERTCASE= 168 new ValueTransform(VALUES_[INVERTCASE_INDEX],INVERTCASE_INDEX); 169 170 171 174 public static final ValueTransform OSPATHURL= 175 new ValueTransform(VALUES_[OSPATHURL_INDEX],OSPATHURL_INDEX); 176 177 180 public static final ValueTransform DECIMAL= 181 new ValueTransform(VALUES_[DECIMAL_INDEX],DECIMAL_INDEX); 182 183 186 public static final ValueTransform TRIM= 187 new ValueTransform(VALUES_[TRIM_INDEX],TRIM_INDEX); 188 189 192 public static final ValueTransform STRIPWS= 193 new ValueTransform(VALUES_[STRIPWS_INDEX],STRIPWS_INDEX); 194 195 196 199 public ValueTransform() 200 { 201 super(); 202 } 203 204 205 210 private ValueTransform(String v, int i) 211 { 212 super(v); 213 } 214 215 216 217 223 public static String [] copyOfDefaultValues(String [] fillin) 224 { 225 if (fillin==null) { 226 fillin = new String [VALUES_.length]; 227 } 228 System.arraycopy(VALUES_,0,fillin,0,VALUES_.length); 229 return fillin; 230 } 231 232 233 234 239 public String [] getValues() 240 { 241 return ValueTransform.copyOfDefaultValues(null); 242 }; 243 244 245 246 252 public static ValueTransform from(int i) 253 { 254 if (i==NONE.index) { return NONE; } 255 if (i==OSPATH.index) { return OSPATH; } 256 if (i==OSPATHURL.index) { return OSPATHURL; } 257 if (i==DURATION.index) { return DURATION; } 258 if (i==DATETIME.index) { return DATETIME; } 259 if (i==DECIMAL.index) { return DECIMAL; } 260 if (i==LOWERCASE.index) { return LOWERCASE; } 261 if (i==UPPERCASE.index) { return UPPERCASE; } 262 if (i==TRIM.index) { return TRIM; } 263 if (i==STRIPWS.index) { return STRIPWS; } 264 if (i==CHECKPOINT.index) { return CHECKPOINT; } 265 if (i==LONGDATETIME.index){ return LONGDATETIME; } 266 if (i==INVERTCASE.index) { return INVERTCASE; } 267 return null; 268 } 269 270 271 278 public static ValueTransform from(int i, ValueTransform dflt) 279 { 280 ValueTransform choice= from(i); 281 return (choice==null) ? dflt : choice; 282 } 283 284 285 290 public static ValueTransform from(String s) 291 { 292 if (s!=null && s.length()>1) { 293 s = Tk.lowercaseFrom(s); 294 if (Character.isDigit(s.charAt(0))) { 295 try { return from(Integer.parseInt(s)); } 296 catch(Exception nfx) {} 297 } else { 298 if (Strings.DEFAULT.equals(s)) { return NONE; } 299 if (DURATION.value.equals(s)) { return DURATION; } 300 if (DATETIME.value.equals(s)) { return DATETIME; } 301 if (OSPATH.value.equals(s)) { return OSPATH; } 302 if ("path".equals(s)) { return OSPATH; } 303 if (OSPATHURL.value.equals(s)) { return OSPATHURL; } 304 if ("pathurl".equals(s)) { return OSPATHURL; } 305 if (DECIMAL.value.equals(s)) { return DECIMAL; } 306 if ("fixed".equals(s)) { return DECIMAL; } 307 if (CHECKPOINT.value.equals(s)) { return CHECKPOINT; } 308 if (LOWERCASE.value.equals(s)) { return LOWERCASE; } 309 if (UPPERCASE.value.equals(s)) { return UPPERCASE; } 310 if (TRIM.value.equals(s)) { return TRIM; } 311 if (STRIPWS.value.equals(s)) { return STRIPWS; } 312 if (LONGDATETIME.value.equals(s)){ return LONGDATETIME; } 313 if (INVERTCASE.value.equals(s)) { return INVERTCASE; } 314 if (NONE.value.equals(s)) { return NONE; } 315 } 316 } 317 return null; 318 } 319 320 321 328 public static ValueTransform from(String s, ValueTransform dflt) 329 { 330 ValueTransform choice= from(s); 331 return (choice==null) ? dflt : choice; 332 } 333 } 334 335 336 | Popular Tags |