Storage.java
01 package gate.creole.morph;
02 
03 import java.util.HashMap;
04 import java.util.Map;
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 Map<String, String> variables;
18 
19   /**
20    * Constructor
21    */
22   public Storage() {
23     variables = new HashMap<String, String>();
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     return variables.get(varName);
55   }
56 
57   /**
58    * This method checks for the existance of the variable into the hashtable
59    @param varName
60    @return true if variable exists, false otherwise
61    */
62   public boolean isExist(String varName) {
63     return variables.containsKey(varName);
64   }
65 
66   /**
67    * Update the variable with the new value. If variable doesnot exist, add it
68    * to the hashtable
69    @param varName name of the variable to be updated, or added
70    @param varValue value of the variable
71    */
72   public void update(String varName,String varValue) {
73     variables.put(varName,varValue);
74 
75   }
76 
77   /**
78    * This method returns names of all the variables available in the hashtable
79    @return array of Strings - names of the variables
80    */
81   public String [] getVarNames() {
82     return variables.keySet().toArray(new String[variables.size()]);
83   }
84 }