001: /*
002: * Created on Dec 25, 2003
003: *
004: */
005: package org.jmatlab.semantic;
006:
007: import java.util.Hashtable;
008:
009: import org.jmatlab.linalg.ICell;
010: import org.jmatlab.linalg.IComplex;
011: import org.jmatlab.linalg.IMatrix;
012: import org.jmatlab.linalg.IStruct;
013: import org.jmatlab.node.Node;
014:
015: /**
016: * @author Ali
017: *
018: */
019: public class LiteralTable {
020:
021: private final Hashtable values = new Hashtable(89);
022:
023: public void clear() {
024: values.clear();
025: }
026:
027: public void setBooleanValue(Node node, Boolean value) {
028: Symbol sym = (Symbol) values.get(node);
029: if (sym != null)
030: values.remove(node);
031: values.put(node, new Symbol(node.toString().toUpperCase(),
032: value));
033: }
034:
035: public void setDoubleValue(Node node, Double value) {
036: Symbol sym = (Symbol) values.get(node);
037: if (sym != null)
038: values.remove(node);
039: values.put(node, new Symbol(node.toString().toUpperCase(),
040: value));
041: }
042:
043: public void setComplexValue(Node node, IComplex value) {
044: Symbol sym = (Symbol) values.get(node);
045: if (sym != null)
046: values.remove(node);
047: values.put(node, new Symbol(node.toString().toUpperCase(),
048: value));
049: }
050:
051: public void setMatrixValue(Node node, IMatrix value) {
052: Symbol sym = (Symbol) values.get(node);
053: if (sym != null)
054: values.remove(node);
055: values.put(node, new Symbol(node.toString().toUpperCase(),
056: value));
057: }
058:
059: public void setStructValue(Node node, IStruct value) {
060: Symbol sym = (Symbol) values.get(node);
061: if (sym != null)
062: values.remove(node);
063: values.put(node, new Symbol(node.toString().toUpperCase(),
064: value));
065: }
066:
067: public void setCellValue(Node node, ICell value) {
068: Symbol sym = (Symbol) values.get(node);
069: if (sym != null)
070: values.remove(node);
071: values.put(node, new Symbol(node.toString().toUpperCase(),
072: value));
073: }
074:
075: public void setSymbol(Node node, Symbol value) {
076: Symbol sym = (Symbol) values.get(node);
077: if (sym != null)
078: values.remove(node);
079: values.put(node, value);
080: }
081:
082: public Symbol getSymbol(Node node) {
083: return (Symbol) values.get(node);
084: }
085:
086: public void setStringValue(Node node, String value) {
087: Symbol sym = (Symbol) values.get(node);
088: if (sym != null)
089: values.remove(node);
090: Symbol output = new Symbol(node.toString().toUpperCase(), value);
091: output.setType(DataType.STRING);
092: values.put(node, output);
093: }
094:
095: public int getType(Node node) {
096: return ((Symbol) values.get(node)).getType();
097: }
098:
099: public Double getDoubleValue(Node node) {
100: return ((Symbol) values.get(node)).getDouble();
101: }
102:
103: public String getStringValue(Node node) {
104: return ((Symbol) values.get(node)).getString();
105: }
106:
107: public Boolean getBooleanValue(Node node) {
108: return ((Symbol) values.get(node)).getBoolean();
109: }
110:
111: public IMatrix getMatrixValue(Node node) {
112: return ((Symbol) values.get(node)).getMatrix();
113: }
114:
115: public IStruct getStructValue(Node node) {
116: return ((Symbol) values.get(node)).getStruct();
117: }
118:
119: public IComplex getComplexValue(Node node) {
120: Symbol symbol = (Symbol) values.get(node);
121: return symbol.getComplex();
122: }
123: }
|