package typinferenz; import java.util.Iterator; import java.util.Vector; import mycompiler.mytype.Pair; import mycompiler.mytypereconstruction.CTriple; import mycompiler.mytypereconstruction.set.CSet; import mycompiler.mytypereconstruction.set.CTripleSet; import mycompiler.mytypereconstruction.set.CVectorSet; public class ConstraintsSet implements Iterable{ private Vector constraintsSet; public ConstraintsSet(){ constraintsSet = new Vector(); } public void add(ConstraintsSet CSet){ for(OderConstraint element : CSet) add(element); } public void add(OderConstraint constraint){ constraintsSet.add(constraint); } /** * Liefert alle Constraint-Variationen * @return */ public Vector> getConstraints(){ Vector> ret = new Vector>(); for(OderConstraint con : constraintsSet){ ret.add(con.getUndConstraints()); } ret = new KarthesischesProdukt().berechneKarthesischesProdukt(ret); /*Vector firstConstraints = new Vector(); for(Constraint con : constraintsSet){ firstConstraints.addAll(con.getConstraintPairs()); } ret.add(firstConstraints); */ return ret; } @Override public String toString(){ String ret =""; for(OderConstraint constraint : this){ ret += constraint.toString()+"\n"; } return ret; } public Iterator iterator() { return constraintsSet.iterator(); } }