import java.util.*;
-public class Constraint {
+public class Constraint implements Quantifiers {
private static int count = 1;
SymbolTable st = new SymbolTable();
Vector quantifiers = new Vector();
LogicStatement logicstatement = null;
+ DNFConstraint dnfconstraint;
+ int num;
public Constraint() {
+ num = count;
label = new String("c" + count++);
}
+ public String toString() {
+ String name="";
+ for(int i=0;i<numQuantifiers();i++) {
+ name+=getQuantifier(i).toString()+",";
+ }
+ name+=logicstatement.name();
+ return name;
+ }
+
+ public int getNum() {
+ return num;
+ }
+
+ public int numQuantifiers() {
+ return quantifiers.size();
+ }
+
+ public Quantifier getQuantifier(int i) {
+ return (Quantifier) quantifiers.get(i);
+ }
+
public String getLabel() {
return label;
}
public void setLogicStatement(LogicStatement ls) {
logicstatement = ls;
+ // Construct DNF form for analysis
+ dnfconstraint=logicstatement.constructDNF();
}
public LogicStatement getLogicStatement() {
this.crash = crash;
}
- public Iterator quantifiers() {
- return quantifiers.iterator();
+ public ListIterator quantifiers() {
+ return quantifiers.listIterator();
}
public Set getRequiredDescriptorsFromQuantifiers() {
for (int i = 0; i < quantifiers.size(); i++) {
Quantifier q = (Quantifier) quantifiers.elementAt(i);
- topdescriptors.addAll(q.getRequiredDescriptors());
+ topdescriptors.addAll(q.getRequiredDescriptors());
}
return SetDescriptor.expand(topdescriptors);