1 28 29 package com.idaremedia.antx.solo; 30 31 import com.idaremedia.antx.helpers.Tk; 32 import com.idaremedia.antx.parameters.EnumSkeleton; 33 34 50 51 public class Modification extends EnumSkeleton 52 { 53 55 57 58 public static final int SET_INDEX= 0; 59 60 public static final int INC_INDEX= SET_INDEX+1; 61 62 public static final int DEC_INDEX= INC_INDEX+1; 63 64 public static final int INC_BY1_INDEX= DEC_INDEX+1; 65 66 public static final int DEC_BY1_INDEX= INC_BY1_INDEX+1; 67 68 public static final int NOW_INDEX= DEC_BY1_INDEX+1; 69 70 public static final int MINUS_NOW_INDEX= NOW_INDEX+1; 71 72 74 public static final int STRCAT_INDEX= MINUS_NOW_INDEX+1; 75 76 78 public static final int STRLEN_INDEX= STRCAT_INDEX+1; 79 80 81 82 85 protected static final int BASE_VALUE_COUNT= STRLEN_INDEX+1; 86 87 88 90 91 private static final String [] VALUES_= new String [] { 92 "=", "+", "-", "++", "--", "now", "-now", "+s", "len" 93 }; 94 95 96 98 99 public static final Modification SET = 100 new Modification(VALUES_[SET_INDEX],SET_INDEX); 101 102 public static final Modification INC = 103 new Modification(VALUES_[INC_INDEX],INC_INDEX); 104 105 public static final Modification DEC = 106 new Modification(VALUES_[DEC_INDEX],DEC_INDEX); 107 108 public static final Modification INC_BY1 = 109 new Modification(VALUES_[INC_BY1_INDEX],INC_BY1_INDEX); 110 111 public static final Modification DEC_BY1 = 112 new Modification(VALUES_[DEC_BY1_INDEX],DEC_BY1_INDEX); 113 114 public static final Modification NOW = 115 new Modification(VALUES_[NOW_INDEX],NOW_INDEX); 116 117 public static final Modification MINUS_NOW = 118 new Modification(VALUES_[MINUS_NOW_INDEX],MINUS_NOW_INDEX); 119 120 122 public static final Modification STRCAT = 123 new Modification(VALUES_[STRCAT_INDEX],STRCAT_INDEX); 124 125 127 public static final Modification STRLEN = 128 new Modification(VALUES_[STRLEN_INDEX],STRLEN_INDEX); 129 130 131 134 public Modification() 135 { 136 super(); 137 } 138 139 140 144 private Modification(String v, int i) 145 { 146 super(v); 147 } 148 149 150 151 157 public static String [] copyOfDefaultValues(String [] fillin) 158 { 159 if (fillin==null) { 160 fillin = new String [VALUES_.length]; 161 } 162 System.arraycopy(VALUES_,0,fillin,0,VALUES_.length); 163 return fillin; 164 } 165 166 167 168 172 public String [] getValues() 173 { 174 return Modification.copyOfDefaultValues(null); 175 }; 176 177 178 179 185 public static Modification from(int i) 186 { 187 switch(i) { 188 case SET_INDEX: return SET; 189 case INC_INDEX: return INC; 190 case DEC_INDEX: return DEC; 191 case INC_BY1_INDEX: return INC_BY1; 192 case DEC_BY1_INDEX: return DEC_BY1; 193 case NOW_INDEX: return NOW; 194 case MINUS_NOW_INDEX: return MINUS_NOW; 195 case STRCAT_INDEX: return STRCAT; 196 case STRLEN_INDEX: return STRLEN; 197 } 198 return null; 199 } 200 201 202 209 public static Modification from(int i, Modification dfltMod) 210 { 211 Modification mod= from(i); 212 return (mod==null) ? dfltMod : mod; 213 } 214 215 216 222 public static Modification from(String s) 223 { 224 if (s!=null && s.length()>1) { 225 s = Tk.lowercaseFrom(s); 226 if (Character.isDigit(s.charAt(0))) { 227 try { return from(Integer.parseInt(s)); } 228 catch(Exception nfx) {} 229 } else { 230 if ("default".equals(s)) { return getAntXDefault(); } 231 if (SET.value.equals(s)) { return SET; } 232 if (INC.value.equals(s)) { return INC; } 233 if (DEC.value.equals(s)) { return DEC; } 234 if (INC_BY1.value.equals(s)) { return INC_BY1; } 235 if (DEC_BY1.value.equals(s)) { return DEC_BY1; } 236 if (NOW.value.equals(s)) { return NOW; } 237 if (MINUS_NOW.value.equals(s)) { return MINUS_NOW; } 238 if (STRCAT.value.equals(s)) { return STRCAT; } 239 if ("strcat".equals(s)) { return STRCAT; } 240 if (STRLEN.value.equals(s)) { return STRLEN; } 241 if ("=s".equals(s)) { return STRLEN; } 242 if ("strlen".equals(s)) { return STRLEN; } 243 } 244 } 245 return null; 246 } 247 248 249 256 public static Modification from(String s, Modification dfltMod) 257 { 258 Modification mod= from(s); 259 return (mod==null) ? dfltMod : mod; 260 } 261 262 263 266 public static final Modification getAntXDefault() 267 { 268 return Modification.SET; 269 } 270 } 271 272 273 | Popular Tags |