X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.modeling%2Fsrc%2Forg%2Fsimantics%2Fmodeling%2Fscl%2FGraphRelation.java;h=331cef2cb280b282260754cc0a0427747f606e21;hp=da08a2a38d2087d7993eca98991bd1316f2ad730;hb=862c09c9608329f326404342d12da61792eece2c;hpb=695ffae899b981f31695e5fdd30ac8fed9fe84b8 diff --git a/bundles/org.simantics.modeling/src/org/simantics/modeling/scl/GraphRelation.java b/bundles/org.simantics.modeling/src/org/simantics/modeling/scl/GraphRelation.java index da08a2a38..331cef2cb 100644 --- a/bundles/org.simantics.modeling/src/org/simantics/modeling/scl/GraphRelation.java +++ b/bundles/org.simantics.modeling/src/org/simantics/modeling/scl/GraphRelation.java @@ -2,6 +2,7 @@ package org.simantics.modeling.scl; import org.simantics.db.Resource; import org.simantics.scl.compiler.common.names.Name; +import org.simantics.scl.compiler.compilation.CompilationContext; import org.simantics.scl.compiler.elaboration.chr.plan.PlanContext; import org.simantics.scl.compiler.elaboration.expressions.EApply; import org.simantics.scl.compiler.elaboration.expressions.EExternalConstant; @@ -11,7 +12,6 @@ import org.simantics.scl.compiler.elaboration.expressions.Variable; import org.simantics.scl.compiler.elaboration.query.compilation.EnforcingContext; import org.simantics.scl.compiler.elaboration.query.compilation.QueryCompilationContext; import org.simantics.scl.compiler.elaboration.relations.SCLRelation; -import org.simantics.scl.compiler.environment.Environment; import org.simantics.scl.compiler.errors.Locations; import org.simantics.scl.compiler.internal.codegen.writer.CodeWriter; import org.simantics.scl.compiler.types.TVar; @@ -139,13 +139,13 @@ public class GraphRelation implements SCLRelation { @Override public void generateIterate(PlanContext context, CodeWriter w, long location, int boundMask, Variable[] variables, Expression[] expressions, Expression[] typeConstraintEvidenceParameters) { - Environment env = context.context.environment; + CompilationContext compilationContext = context.context; switch(boundMask) { case BF: context.iterateList(location, w, variables[1], w.apply(location, - env.getValue(GET_OBJECTS).getValue(), - expressions[0].toVal(env, w), + compilationContext.environment.getValue(GET_OBJECTS).getValue(), + expressions[0].toVal(compilationContext, w), w.getModuleWriter().getExternalConstant(relation, Types.RESOURCE))); break; case FB: @@ -153,21 +153,21 @@ public class GraphRelation implements SCLRelation { throw new IllegalArgumentException(); context.iterateList(location, w, variables[0], w.apply(location, - env.getValue(GET_OBJECTS).getValue(), - expressions[1].toVal(env, w), + compilationContext.environment.getValue(GET_OBJECTS).getValue(), + expressions[1].toVal(compilationContext, w), w.getModuleWriter().getExternalConstant(inverseRelation, Types.RESOURCE))); break; case BB: context.check(location, w, inverseRelation == null || relationSelectivity <= inverseRelationSelectivity - ? w.apply(location, env.getValue(HAS_STATEMENT).getValue(), - expressions[0].toVal(env, w), + ? w.apply(location, compilationContext.environment.getValue(HAS_STATEMENT).getValue(), + expressions[0].toVal(compilationContext, w), w.getModuleWriter().getExternalConstant(relation, Types.RESOURCE), - expressions[1].toVal(env, w)) - : w.apply(location, env.getValue(HAS_STATEMENT).getValue(), - expressions[1].toVal(env, w), + expressions[1].toVal(compilationContext, w)) + : w.apply(location, compilationContext.environment.getValue(HAS_STATEMENT).getValue(), + expressions[1].toVal(compilationContext, w), w.getModuleWriter().getExternalConstant(inverseRelation, Types.RESOURCE), - expressions[0].toVal(env, w))); + expressions[0].toVal(compilationContext, w))); break; default: throw new IllegalArgumentException(); } @@ -176,11 +176,11 @@ public class GraphRelation implements SCLRelation { @Override public void generateEnforce(PlanContext context, CodeWriter w, long location, Expression[] parameters, Expression[] typeConstraintEvidenceParameters) { - Environment env = context.context.environment; + CompilationContext compilationContext = context.context; w.apply(location, - env.getValue(CLAIM).getValue(), - parameters[0].toVal(env, w), + compilationContext.environment.getValue(CLAIM).getValue(), + parameters[0].toVal(compilationContext, w), w.getModuleWriter().getExternalConstant(relation, Types.RESOURCE), - parameters[1].toVal(env, w)); + parameters[1].toVal(compilationContext, w)); } }