diff options
Diffstat (limited to 'org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/ExecutionStateClause.java')
-rw-r--r-- | org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/ExecutionStateClause.java | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/ExecutionStateClause.java b/org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/ExecutionStateClause.java index adb4e62..ab44d93 100644 --- a/org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/ExecutionStateClause.java +++ b/org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/ExecutionStateClause.java @@ -10,37 +10,55 @@ *******************************************************************************/ package org.eclipse.cdt.codan.extension; -import org.eclipse.cdt.core.dom.ast.IASTNode; +import org.eclipse.cdt.core.dom.ast.IVariable; public class ExecutionStateClause { - private IASTNode node; - private boolean truthValue; + protected IVariable var; + protected boolean truthValue; - public ExecutionStateClause(IASTNode node) { - this(node, true); + public ExecutionStateClause(IVariable var) { + this(var, true); } - public ExecutionStateClause(IASTNode node, boolean truthValue) { - this.node = node; + public ExecutionStateClause(IVariable var, boolean truthValue) { + this.var = var; this.truthValue = truthValue; } - public IASTNode getNode() { - return node; + public IVariable getVariable() { + return var; } public boolean isTrue() { return truthValue; } + public ExecutionStateClause getNegation() { + return new ExecutionStateClause(var, !truthValue); + } + + @Override + public boolean equals(Object obj) { + if (obj instanceof ExecutionStateClause) { + ExecutionStateClause other = (ExecutionStateClause) obj; + return var.equals(other.getVariable()) && truthValue == other.isTrue(); + } + return false; + } + + @Override + public int hashCode() { + return var.hashCode() + (truthValue ? 1 : 0); + } + @Override public String toString() { StringBuffer buf = new StringBuffer(); if (!truthValue) { buf.append("NOT "); } - buf.append(node.getRawSignature()); + buf.append(var.getName()); return buf.toString(); } |