Storage.java
01 package gate.creole.morph;
02 
03 import java.util.HashMap;
04 import java.util.Iterator;
05 
06 /**
07  <p>Title: Storage.java </p>
08  <p>Description: This class is used as the storage in the system, where
09  * all the declared variables and their appropriate values are stored </p>
10  */
11 public class Storage {
12 
13   /**
14    * Stores variable name as the key, and its variable values as values of these
15    * keys
16    */
17   private HashMap variables;
18 
19   /**
20    * Constructor
21    */
22   public Storage() {
23     variables = new HashMap();
24   }
25 
26   /**
27    * Adds the variable name and its value into the hashTable
28    @param varName name of the variable
29    @param varValue value for the variable
30    @return true if variable doesnot exist, false otherwise
31    */
32   public boolean add(String varName, String varValue) {
33     if(variables.containsKey(varName)) {
34       return false;
35     else {
36 
37       // before storing varValue try to find if it is
38       // a Character Range
39       // a Character Set
40       // a Sting Set
41 
42       variables.put(varName,varValue);
43       return true;
44     }
45   }
46 
47   /**
48    * This method looks into the hashtable and searches for the value of the
49    * given variable
50    @param varName
51    @return value of the variable if variable found in the table,null otherwise
52    */
53   public String get(String varName) {
54     String varValue = (String)(variables.get(varName));
55     return varValue;
56   }
57 
58   /**
59    * This method checks for the existance of the variable into the hashtable
60    @param varName
61    @return true if variable exists, false otherwise
62    */
63   public boolean isExist(String varName) {
64     if(variables.containsKey(varName)) {
65       return true;
66     else {
67       return false;
68     }
69   }
70 
71   /**
72    * Update the variable with the new value. If variable doesnot exist, add it
73    * to the hashtable
74    @param varName name of the variable to be updated, or added
75    @param varValue value of the variable
76    */
77   public void update(String varName,String varValue) {
78     variables.put(varName,varValue);
79 
80   }
81 
82   /**
83    * This method returns names of all the variables available in the hashtable
84    @return array of Strings - names of the variables
85    */
86   public String [] getVarNames() {
87     Iterator iter = variables.keySet().iterator();
88     String [] varNames = new String[variables.size()];
89     int i=0;
90     while(iter.hasNext()) {
91       varNames[i(String)(iter.next());
92       i++;
93     }
94     return varNames;
95   }
96 }