aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/interpreter/src/main/java/tools/refinery/interpreter/matchers/psystem/rewriters/PBodyCopier.java
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/interpreter/src/main/java/tools/refinery/interpreter/matchers/psystem/rewriters/PBodyCopier.java')
-rw-r--r--subprojects/interpreter/src/main/java/tools/refinery/interpreter/matchers/psystem/rewriters/PBodyCopier.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/subprojects/interpreter/src/main/java/tools/refinery/interpreter/matchers/psystem/rewriters/PBodyCopier.java b/subprojects/interpreter/src/main/java/tools/refinery/interpreter/matchers/psystem/rewriters/PBodyCopier.java
index 99350185..1e580599 100644
--- a/subprojects/interpreter/src/main/java/tools/refinery/interpreter/matchers/psystem/rewriters/PBodyCopier.java
+++ b/subprojects/interpreter/src/main/java/tools/refinery/interpreter/matchers/psystem/rewriters/PBodyCopier.java
@@ -137,7 +137,9 @@ public class PBodyCopier extends AbstractRewriterTraceSource {
137 } else if (constraint instanceof PatternMatchCounter) { 137 } else if (constraint instanceof PatternMatchCounter) {
138 copyPatternMatchCounterConstraint((PatternMatchCounter) constraint); 138 copyPatternMatchCounterConstraint((PatternMatchCounter) constraint);
139 } else if (constraint instanceof AggregatorConstraint) { 139 } else if (constraint instanceof AggregatorConstraint) {
140 copyAggregatorConstraint((AggregatorConstraint) constraint); 140 copyAggregatorConstraint((AggregatorConstraint) constraint);
141 } else if (constraint instanceof LeftJoinConstraint leftJoinConstraint) {
142 copyLeftJoinConstraint((LeftJoinConstraint) constraint);
141 } else if (constraint instanceof ExpressionEvaluation) { 143 } else if (constraint instanceof ExpressionEvaluation) {
142 copyExpressionEvaluationConstraint((ExpressionEvaluation) constraint); 144 copyExpressionEvaluationConstraint((ExpressionEvaluation) constraint);
143 } else { 145 } else {
@@ -256,6 +258,15 @@ public class PBodyCopier extends AbstractRewriterTraceSource {
256 constraint.getReferredQuery(), mappedResultVariable, constraint.getAggregatedColumn())); 258 constraint.getReferredQuery(), mappedResultVariable, constraint.getAggregatedColumn()));
257 } 259 }
258 260
261 protected void copyLeftJoinConstraint(LeftJoinConstraint constraint) {
262 PVariable[] mappedVariables = extractMappedVariables(constraint);
263 PVariable mappedResultVariable = variableMapping.get(constraint.getResultVariable());
264 Tuple variablesTuple = Tuples.flatTupleOf((Object[]) mappedVariables);
265 addTrace(constraint, new LeftJoinConstraint(body, variablesTuple,
266 constraint.getReferredQuery(), mappedResultVariable, constraint.getOptionalColumn(),
267 constraint.getDefaultValue()));
268 }
269
259 protected void copyExpressionEvaluationConstraint(ExpressionEvaluation expressionEvaluation) { 270 protected void copyExpressionEvaluationConstraint(ExpressionEvaluation expressionEvaluation) {
260 PVariable mappedOutputVariable = variableMapping.get(expressionEvaluation.getOutputVariable()); 271 PVariable mappedOutputVariable = variableMapping.get(expressionEvaluation.getOutputVariable());
261 addTrace(expressionEvaluation, new ExpressionEvaluation(body, 272 addTrace(expressionEvaluation, new ExpressionEvaluation(body,