forked from JavaTX/JavaCompilerCore
62 lines
1.5 KiB
Java
62 lines
1.5 KiB
Java
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<OderConstraint>{
|
|
private Vector<OderConstraint> constraintsSet;
|
|
|
|
public ConstraintsSet(){
|
|
constraintsSet = new Vector<OderConstraint>();
|
|
}
|
|
|
|
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<Vector<UndConstraint>> getConstraints(){
|
|
Vector<Vector<UndConstraint>> ret = new Vector<Vector<UndConstraint>>();
|
|
for(OderConstraint con : constraintsSet){
|
|
ret.add(con.getUndConstraints());
|
|
}
|
|
ret = new KarthesischesProdukt<UndConstraint>().berechneKarthesischesProdukt(ret);
|
|
/*Vector<Pair> firstConstraints = new Vector<Pair>();
|
|
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<OderConstraint> iterator() {
|
|
return constraintsSet.iterator();
|
|
}
|
|
|
|
|
|
|
|
}
|