org.snapscript.core.constraint.transform.GenericConstraintBuilder Maven / Gradle / Ivy
package org.snapscript.core.constraint.transform;
import java.util.ArrayList;
import java.util.List;
import org.snapscript.core.constraint.Constraint;
import org.snapscript.core.constraint.TypeConstraint;
import org.snapscript.core.type.Type;
public class GenericConstraintBuilder {
private final ConstraintTransform[] list;
private final Type type;
public GenericConstraintBuilder(Type type, ConstraintTransform[] list) {
this.list = list;
this.type = type;
}
public Constraint create(Constraint origin){
List constraints = new ArrayList();
for(ConstraintTransform entry : list){
ConstraintRule rule = entry.apply(origin);
Constraint constraint = rule.getSource();
constraints.add(constraint);
}
return new TypeConstraint(type, constraints);
}
}