All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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);
   }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy