summaryrefslogtreecommitdiffstats
path: root/org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/ExecutionStateClause.java
diff options
context:
space:
mode:
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.java38
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();
}