aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/interpreter-rete/src/main/java/tools/refinery/interpreter/rete/network/ConnectionFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/interpreter-rete/src/main/java/tools/refinery/interpreter/rete/network/ConnectionFactory.java')
-rw-r--r--subprojects/interpreter-rete/src/main/java/tools/refinery/interpreter/rete/network/ConnectionFactory.java10
1 files changed, 7 insertions, 3 deletions
diff --git a/subprojects/interpreter-rete/src/main/java/tools/refinery/interpreter/rete/network/ConnectionFactory.java b/subprojects/interpreter-rete/src/main/java/tools/refinery/interpreter/rete/network/ConnectionFactory.java
index c69757b6..fe70cbc3 100644
--- a/subprojects/interpreter-rete/src/main/java/tools/refinery/interpreter/rete/network/ConnectionFactory.java
+++ b/subprojects/interpreter-rete/src/main/java/tools/refinery/interpreter/rete/network/ConnectionFactory.java
@@ -11,6 +11,7 @@ package tools.refinery.interpreter.rete.network;
11 11
12import tools.refinery.interpreter.matchers.tuple.Tuple; 12import tools.refinery.interpreter.matchers.tuple.Tuple;
13import tools.refinery.interpreter.rete.aggregation.IndexerBasedAggregatorNode; 13import tools.refinery.interpreter.rete.aggregation.IndexerBasedAggregatorNode;
14import tools.refinery.interpreter.rete.aggregation.LeftJoinNode;
14import tools.refinery.interpreter.rete.boundary.InputConnector; 15import tools.refinery.interpreter.rete.boundary.InputConnector;
15import tools.refinery.interpreter.rete.eval.RelationEvaluatorNode; 16import tools.refinery.interpreter.rete.eval.RelationEvaluatorNode;
16import tools.refinery.interpreter.rete.index.DualInputNode; 17import tools.refinery.interpreter.rete.index.DualInputNode;
@@ -78,9 +79,12 @@ class ConnectionFactory {
78 Slots slots = avoidActiveNodeConflict(parentTraces.get(0), parentTraces.get(1)); 79 Slots slots = avoidActiveNodeConflict(parentTraces.get(0), parentTraces.get(1));
79 beta.connectToIndexers(slots.primary, slots.secondary); 80 beta.connectToIndexers(slots.primary, slots.secondary);
80 } else if (recipe instanceof IndexerBasedAggregatorRecipe) { 81 } else if (recipe instanceof IndexerBasedAggregatorRecipe) {
81 final IndexerBasedAggregatorNode aggregator = (IndexerBasedAggregatorNode) freshNode; 82 final IndexerBasedAggregatorNode aggregator = (IndexerBasedAggregatorNode) freshNode;
82 final IndexerBasedAggregatorRecipe aggregatorRecipe = (IndexerBasedAggregatorRecipe) recipe; 83 final IndexerBasedAggregatorRecipe aggregatorRecipe = (IndexerBasedAggregatorRecipe) recipe;
83 aggregator.initializeWith((ProjectionIndexer) resolveIndexer(aggregatorRecipe.getParent())); 84 aggregator.initializeWith((ProjectionIndexer) resolveIndexer(aggregatorRecipe.getParent()));
85 } else if (recipe instanceof OuterJoinNodeRecipe outerJoinNodeRecipe) {
86 var leftJoinNode = (LeftJoinNode) freshNode;
87 leftJoinNode.initializeWith((ProjectionIndexer) resolveIndexer(outerJoinNodeRecipe.getParent()));
84 } else if (recipe instanceof MultiParentNodeRecipe) { 88 } else if (recipe instanceof MultiParentNodeRecipe) {
85 final Receiver receiver = (Receiver) freshNode; 89 final Receiver receiver = (Receiver) freshNode;
86 List<ReteNodeRecipe> parentRecipes = ((MultiParentNodeRecipe) recipe).getParents(); 90 List<ReteNodeRecipe> parentRecipes = ((MultiParentNodeRecipe) recipe).getParents();