View Javadoc

1   /*
2       Jameleon - An automation testing tool..
3       Copyright (C) 2003 Christian W. Hargraves (engrean@hotmail.com)
4       
5       This library is free software; you can redistribute it and/or
6       modify it under the terms of the GNU Lesser General Public
7       License as published by the Free Software Foundation; either
8       version 2.1 of the License, or (at your option) any later version.
9   
10      This library is distributed in the hope that it will be useful,
11      but WITHOUT ANY WARRANTY; without even the implied warranty of
12      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13      Lesser General Public License for more details.
14  
15      You should have received a copy of the GNU Lesser General Public
16      License along with this library; if not, write to the Free Software
17      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
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  }