1 28 29 package com.idaremedia.antx.parameters; 30 31 import com.idaremedia.antx.helpers.Tk; 32 33 56 57 public final class MergeBehavior extends EnumSkeleton 58 { 59 60 public static final int ONLY_INDEX = 0; 61 62 public static final int IGNORE_INDEX = ONLY_INDEX+1; 63 64 public static final int FIRST_INDEX = IGNORE_INDEX+1; 65 66 public static final int LAST_INDEX = FIRST_INDEX+1; 67 68 69 70 public static final MergeBehavior ONLY= 71 new MergeBehavior("only",ONLY_INDEX); 72 73 74 public static final MergeBehavior IGNORE= 75 new MergeBehavior("ignore",IGNORE_INDEX); 76 77 78 public static final MergeBehavior FIRST= 79 new MergeBehavior("first",FIRST_INDEX); 80 81 82 public static final MergeBehavior LAST= 83 new MergeBehavior("last",LAST_INDEX); 84 85 86 87 90 public MergeBehavior() 91 { 92 super(); 93 } 94 95 96 101 private MergeBehavior(String v, int i) 102 { 103 super(v); 104 } 105 106 107 112 public String [] getValues() 113 { 114 return new String [] {"only", "ignore", "first", "last"}; 115 }; 116 117 118 119 125 public static MergeBehavior from(int i) 126 { 127 if (i==FIRST.index) { return FIRST; } 128 if (i==ONLY.index) { return ONLY; } 129 if (i==LAST.index) { return LAST; } 130 if (i==IGNORE.index) { return IGNORE; } 131 return null; 132 } 133 134 135 142 public static MergeBehavior from(int i, MergeBehavior dflt) 143 { 144 MergeBehavior choice= from(i); 145 return (choice==null) ? dflt : choice; 146 } 147 148 149 154 public static MergeBehavior from(String s) 155 { 156 if (s!=null && s.length()>1) { 157 s = Tk.lowercaseFrom(s); 158 if (Character.isDigit(s.charAt(0))) { 159 try { return from(Integer.parseInt(s)); } 160 catch(Exception nfx) {} 161 } else { 162 if (FIRST.value.equals(s)) { return FIRST; } 163 if (ONLY.value.equals(s)) { return ONLY; } 164 if (LAST.value.equals(s)) { return LAST; } 165 if (IGNORE.value.equals(s)) { return IGNORE; } 166 } 167 } 168 return null; 169 } 170 171 172 179 public static MergeBehavior from(String s, MergeBehavior dflt) 180 { 181 MergeBehavior choice= from(s); 182 return (choice==null) ? dflt : choice; 183 } 184 } 185 186 | Popular Tags |