package wnlt.morph;
import java.util.HashMap;
import java.util.Map;
/**
* <p>Title: Storage.java </p>
* <p>Description: This class is used as the storage in the system, where
* all the declared variables and their appropriate values are stored </p>
*/
public class Storage {
/**
* Stores variable name as the key, and its variable values as values of these
* keys
*/
private Map<String, String> variables;
/**
* Constructor
*/
public Storage() {
variables = new HashMap<String, String>();
}
/**
* Adds the variable name and its value into the hashTable
* @param varName name of the variable
* @param varValue value for the variable
* @return true if variable doesnot exist, false otherwise
*/
public boolean add(String varName, String varValue) {
if(variables.containsKey(varName)) {
return false;
} else {
// before storing varValue try to find if it is
// a Character Range
// a Character Set
// a Sting Set
variables.put(varName,varValue);
return true;
}
}
/**
* This method looks into the hashtable and searches for the value of the
* given variable
* @param varName
* @return value of the variable if variable found in the table,null otherwise
*/
public String get(String varName) {
return variables.get(varName);
}
/**
* This method checks for the existance of the variable into the hashtable
* @param varName
* @return true if variable exists, false otherwise
*/
public boolean isExist(String varName) {
return variables.containsKey(varName);
}
/**
* Update the variable with the new value. If variable doesnot exist, add it
* to the hashtable
* @param varName name of the variable to be updated, or added
* @param varValue value of the variable
*/
public void update(String varName,String varValue) {
variables.put(varName,varValue);
}
/**
* This method returns names of all the variables available in the hashtable
* @return array of Strings - names of the variables
*/
public String [] getVarNames() {
return variables.keySet().toArray(new String[variables.size()]);
}
}