1 23 package org.mdarad.framework.util.struts.criteria; 24 25 import java.util.Collection ; 26 import java.util.Hashtable ; 27 import java.util.Iterator ; 28 import java.util.Locale ; 29 import java.util.Map ; 30 31 43 public class CriterionFormPatterns { 44 45 46 49 protected static Map formPatterns = new Hashtable (); 50 51 52 56 static CriterionFormPattern NO_OPERATOR_LIST = new CriterionFormPattern(new String ("NO_OPERATOR_LIST"), "NO_OPERATOR_LIST"); 57 60 static CriterionFormPattern OPERATOR_INPUT = new CriterionFormPattern(new String ("OPERATOR_INPUT"), "OPERATOR_INPUT"); 61 64 static CriterionFormPattern NO_OPERATOR_MULTIPLE_LIST = new CriterionFormPattern(new String ("NO_OPERATOR_MULTIPLE_LIST"), "NO_OPERATOR_MULTIPLE_LIST"); 65 66 static { 68 add(NO_OPERATOR_LIST); 69 add(OPERATOR_INPUT); 70 add(NO_OPERATOR_MULTIPLE_LIST); 71 } 72 73 74 79 protected static final void add(CriterionFormPattern allowable) { 80 formPatterns.put(allowable.getValue(), allowable); 81 } 82 83 92 public static CriterionFormPattern getAllowableFormPattern(String value) { 93 if( value == null) { 95 return null; 96 } 97 98 CriterionFormPattern allowable = (CriterionFormPattern) formPatterns.get(value); 100 101 if (allowable == null) { 103 throw new IllegalStateException ("Code:" + value); 104 } 105 106 return allowable; 107 } 108 109 115 public static String [] getAllowableLabels(Locale locale) { 116 if (locale == null) 118 throw new IllegalArgumentException ("The locale object must not be null to retreive the labels"); 119 120 String [] labels = new String [formPatterns.size()]; 122 int i = 0; 123 Iterator iterator = formPatterns.values().iterator(); 124 while(iterator.hasNext()) { 127 CriterionFormPattern allowable = (CriterionFormPattern) iterator.next(); 128 labels[i++] = allowable.getLabel(); } 130 return labels; 131 } 132 133 139 public static Collection getAllowableValues() { 140 return formPatterns.keySet(); 141 } 142 143 147 public String toString () { 148 return formPatterns.toString(); 149 } 150 151 152 } 153 | Popular Tags |