diff options
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.java | 10 |
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 | ||
12 | import tools.refinery.interpreter.matchers.tuple.Tuple; | 12 | import tools.refinery.interpreter.matchers.tuple.Tuple; |
13 | import tools.refinery.interpreter.rete.aggregation.IndexerBasedAggregatorNode; | 13 | import tools.refinery.interpreter.rete.aggregation.IndexerBasedAggregatorNode; |
14 | import tools.refinery.interpreter.rete.aggregation.LeftJoinNode; | ||
14 | import tools.refinery.interpreter.rete.boundary.InputConnector; | 15 | import tools.refinery.interpreter.rete.boundary.InputConnector; |
15 | import tools.refinery.interpreter.rete.eval.RelationEvaluatorNode; | 16 | import tools.refinery.interpreter.rete.eval.RelationEvaluatorNode; |
16 | import tools.refinery.interpreter.rete.index.DualInputNode; | 17 | import 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(); |