package org.simantics.scl.compiler.elaboration.relations; import org.simantics.scl.compiler.elaboration.chr.plan.PlanContext; import org.simantics.scl.compiler.elaboration.expressions.Expression; import org.simantics.scl.compiler.elaboration.expressions.Variable; import org.simantics.scl.compiler.elaboration.query.compilation.EnforcingContext; import org.simantics.scl.compiler.internal.codegen.writer.CodeWriter; import org.simantics.scl.compiler.types.Type; public abstract class AbstractRelation implements SCLRelation { @Override public int getPhase() { return 0; } @Override public Expression generateEnforce(long location, EnforcingContext context, Type[] typeParameters, Variable[] parameters) { throw new UnsupportedOperationException(getClass().getSimpleName() + " does not support enforce."); } @Override public void generateEnforce(PlanContext context, CodeWriter w, long location, Expression[] parameters) { throw new UnsupportedOperationException(getClass().getSimpleName() + " does not support enforce."); } @Override public void generateIterate(PlanContext context, CodeWriter w, long location, int boundMask, Variable[] variables, Expression[] expressions) { throw new UnsupportedOperationException(getClass().getSimpleName() + " does not support iterate."); } }