1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package net.sf.jameleon.function;
20
21 import java.util.Collection;
22 import java.util.Iterator;
23 import java.util.HashMap;
24
25 /***
26 * An Abstract class for implementations of {@link ParamTypeValidatable}.
27 * To add a valid param type to the list, call the {@link #addValidType(java.lang.String)} method.
28 */
29 public abstract class AbstractValidParamType implements ParamTypeValidatable{
30
31 protected HashMap types;
32
33 public AbstractValidParamType(){
34 types = new HashMap();
35 }
36
37 /***
38 * @return true if the param type is valid.
39 */
40 public boolean isValidType(String type) {
41 boolean bValid = true;
42 if (type != null) {
43 if (types.get(type.toLowerCase()) == null){
44 bValid = false;
45 }
46 }
47 return bValid;
48 }
49
50 /***
51 * @return a String listing the valid param types.
52 */
53 public String getValidTypes(){
54 String msg;
55 msg = "null";
56 Collection col = types.values();
57 Iterator ite = col.iterator();
58 while (ite.hasNext()){
59 String value = (String) ite.next();
60 msg += "\n" + value;
61 }
62 return msg;
63 }
64
65 /***
66 * Adds a valid parameter type to the list.
67 * @param type - The valid type.
68 * <b>NOTE</b> - This lowercases the actual type so when the compare occurs,
69 * the type is case-insensitive.
70 */
71 public void addValidType(String type){
72 String key = type.toLowerCase();
73 types.put(key, type);
74 }
75 }