diff options
Diffstat (limited to 'dice-lang/src/main/java/bjc/dicelang/ast/VariableDiceNode.java')
| -rw-r--r-- | dice-lang/src/main/java/bjc/dicelang/ast/VariableDiceNode.java | 62 |
1 files changed, 55 insertions, 7 deletions
diff --git a/dice-lang/src/main/java/bjc/dicelang/ast/VariableDiceNode.java b/dice-lang/src/main/java/bjc/dicelang/ast/VariableDiceNode.java index e02952d..e2dec64 100644 --- a/dice-lang/src/main/java/bjc/dicelang/ast/VariableDiceNode.java +++ b/dice-lang/src/main/java/bjc/dicelang/ast/VariableDiceNode.java @@ -10,16 +10,50 @@ public class VariableDiceNode implements IDiceASTNode { /** * The variable referenced by this node */ - private String var; + private String variableName; /** * Create a new node representing the specified variable * - * @param data + * @param varName * The name of the variable being referenced */ - public VariableDiceNode(String data) { - this.var = data; + public VariableDiceNode(String varName) { + this.variableName = varName; + } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#equals(java.lang.Object) + */ + @Override + public boolean equals(Object obj) { + // Handle special cases + if (this == obj) { + return true; + } else if (obj == null) { + return false; + } else if (getClass() != obj.getClass()) { + return false; + } else { + VariableDiceNode other = (VariableDiceNode) obj; + + if (variableName == null) { + if (other.variableName != null) { + return false; + } + } else if (!variableName.equals(other.variableName)) { + return false; + } + + return true; + } + } + + @Override + public DiceASTType getType() { + return DiceASTType.VARIABLE; } /** @@ -28,7 +62,21 @@ public class VariableDiceNode implements IDiceASTNode { * @return the variable referenced by this AST node */ public String getVariable() { - return var; + return variableName; + } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#hashCode() + */ + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + + ((variableName == null) ? 0 : variableName.hashCode()); + return result; } /* @@ -48,6 +96,6 @@ public class VariableDiceNode implements IDiceASTNode { */ @Override public String toString() { - return var; + return variableName; } -} +}
\ No newline at end of file |
