This is an automated email from the ASF dual-hosted git repository.
mariofusco pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-drools.git
The following commit(s) were added to refs/heads/main by this push:
new d3b4e17a62 [incubator-kie-issues #203] Cleanup Phreak code - Remove
ReteEvaluator dep from PathMemory methods. (#6494)
d3b4e17a62 is described below
commit d3b4e17a62ab85e54969487e47bf32cf5d5d907a
Author: Paolo Bizzarri <[email protected]>
AuthorDate: Tue Oct 21 11:14:51 2025 +0200
[incubator-kie-issues #203] Cleanup Phreak code - Remove ReteEvaluator dep
from PathMemory methods. (#6494)
* Making PathMemory use ActivationsManager as instance variable
* Removed unnecessary stuff
* More code to fix, more depenencies to remove
* Fixing missing parameter removal
---
.../org/drools/core/common/ActivationsManager.java | 2 +-
.../drools/core/common/ConcurrentNodeMemories.java | 2 +-
.../org/drools/core/phreak/EagerPhreakBuilder.java | 6 +-
.../org/drools/core/phreak/LazyPhreakBuilder.java | 26 +++---
.../java/org/drools/core/phreak/PhreakNotNode.java | 8 +-
.../core/phreak/PhreakQueryTerminalNode.java | 10 +--
.../org/drools/core/phreak/PhreakTimerNode.java | 6 +-
.../java/org/drools/core/phreak/RuleExecutor.java | 16 ++--
.../drools/core/phreak/RuleNetworkEvaluator.java | 5 +-
.../core/phreak/RuntimeSegmentUtilities.java | 2 +-
.../drools/core/phreak/TupleEvaluationUtil.java | 5 +-
.../org/drools/core/reteoo/AlphaTerminalNode.java | 2 +-
.../org/drools/core/reteoo/AsyncReceiveNode.java | 2 +-
.../java/org/drools/core/reteoo/BetaMemory.java | 8 +-
.../drools/core/reteoo/LeftInputAdapterNode.java | 28 +++----
.../java/org/drools/core/reteoo/PathMemory.java | 97 ++++++++++------------
.../drools/core/reteoo/RightInputAdapterNode.java | 2 +-
.../org/drools/core/reteoo/RuleTerminalNode.java | 5 +-
.../java/org/drools/core/reteoo/SegmentMemory.java | 26 +++---
.../core/reteoo/SingleObjectSinkAdapter.java | 2 +-
.../org/drools/core/reteoo/TupleToObjectNode.java | 90 ++++++++++----------
.../consequence/DefaultKnowledgeHelper.java | 2 +-
.../kiesession/NodeSegmentUnlinkingTest.java | 2 +-
.../protobuf/ProtobufInputMarshaller.java | 8 +-
.../protobuf/ProtobufOutputMarshaller.java | 4 +-
25 files changed, 175 insertions(+), 191 deletions(-)
diff --git
a/drools-core/src/main/java/org/drools/core/common/ActivationsManager.java
b/drools-core/src/main/java/org/drools/core/common/ActivationsManager.java
index 6235a2811b..05c093f6ca 100644
--- a/drools-core/src/main/java/org/drools/core/common/ActivationsManager.java
+++ b/drools-core/src/main/java/org/drools/core/common/ActivationsManager.java
@@ -93,7 +93,7 @@ public interface ActivationsManager {
default void stageLeftTuple(RuleAgendaItem ruleAgendaItem, InternalMatch
justified) {
if (!ruleAgendaItem.isQueued()) {
-
ruleAgendaItem.getRuleExecutor().getPathMemory().queueRuleAgendaItem(this);
+
ruleAgendaItem.getRuleExecutor().getPathMemory().queueRuleAgendaItem();
}
ruleAgendaItem.getRuleExecutor().modifyActiveTuple((RuleTerminalNodeLeftTuple)
justified.getTuple() );
}
diff --git
a/drools-core/src/main/java/org/drools/core/common/ConcurrentNodeMemories.java
b/drools-core/src/main/java/org/drools/core/common/ConcurrentNodeMemories.java
index 712c760ed0..9076e752ce 100644
---
a/drools-core/src/main/java/org/drools/core/common/ConcurrentNodeMemories.java
+++
b/drools-core/src/main/java/org/drools/core/common/ConcurrentNodeMemories.java
@@ -72,7 +72,7 @@ public class ConcurrentNodeMemories implements NodeMemories {
if (smem != null) {
smem.reset(ruleBase.getSegmentPrototypeRegistry().getSegmentPrototype(smem));
if (smem.isSegmentLinked()) {
- smem.notifyRuleLinkSegment(reteEvaluator);
+ smem.notifyRuleLinkSegment();
}
}
}
diff --git
a/drools-core/src/main/java/org/drools/core/phreak/EagerPhreakBuilder.java
b/drools-core/src/main/java/org/drools/core/phreak/EagerPhreakBuilder.java
index 41766b60e2..20184a38c4 100644
--- a/drools-core/src/main/java/org/drools/core/phreak/EagerPhreakBuilder.java
+++ b/drools-core/src/main/java/org/drools/core/phreak/EagerPhreakBuilder.java
@@ -123,7 +123,7 @@ public class EagerPhreakBuilder implements PhreakBuilder {
Add.insertFacts(wm, tn, visited, false);
}
- smemsToNotify.forEach(pair -> pair.sm.notifyRuleLinkSegment(pair.wm));
+ smemsToNotify.forEach(pair -> pair.sm.notifyRuleLinkSegment());
}
/**
@@ -554,7 +554,7 @@ public class EagerPhreakBuilder implements PhreakBuilder {
SegmentMemory sm = parentMem.getSegmentMemory();
SegmentMemory childSmem =
RuntimeSegmentUtilities.createChildSegment(wm, child);
sm.add(childSmem);
- sm.notifyRuleLinkSegment(wm);
+ sm.notifyRuleLinkSegment();
notifyImpactedSegments(wm, sm, smemsToNotify);
notifyImpactedSegments(wm, childSmem, smemsToNotify);
}
@@ -1132,7 +1132,7 @@ public class EagerPhreakBuilder implements PhreakBuilder {
if (NodeTypeEnums.isTerminalNode(lt.getSink())) {
PathMemory pmem = (PathMemory)
wm.getNodeMemories().peekNodeMemory(lt.getSink());
if (pmem != null) {
-
PhreakRuleTerminalNode.doLeftDelete(pmem.getActualActivationsManager(wm),
pmem.getRuleAgendaItem()
+
PhreakRuleTerminalNode.doLeftDelete(pmem.getActualActivationsManager(),
pmem.getRuleAgendaItem()
.getRuleExecutor(), (RuleTerminalNodeLeftTuple) lt);
}
} else {
diff --git
a/drools-core/src/main/java/org/drools/core/phreak/LazyPhreakBuilder.java
b/drools-core/src/main/java/org/drools/core/phreak/LazyPhreakBuilder.java
index b2fa7674c4..f377941299 100644
--- a/drools-core/src/main/java/org/drools/core/phreak/LazyPhreakBuilder.java
+++ b/drools-core/src/main/java/org/drools/core/phreak/LazyPhreakBuilder.java
@@ -154,7 +154,7 @@ class LazyPhreakBuilder implements PhreakBuilder {
processLeftTuples(wm, rule, firstSplit, true);
- notifySegments(wm, smemsToNotify);
+ notifySegments(smemsToNotify);
}
}
@@ -215,7 +215,7 @@ class LazyPhreakBuilder implements PhreakBuilder {
Set<SegmentMemory> smemsToNotify = handleExistingPaths(wm,
tn, prevSmemsLookup, tnms.otherPmems,
ExistingPathStrategy.REMOVE_STRATEGY);
- notifySegments(wm, smemsToNotify);
+ notifySegments(smemsToNotify);
}
}
@@ -282,7 +282,7 @@ class LazyPhreakBuilder implements PhreakBuilder {
SegmentMemory smem,
int smemSplitAdjustAmount) {
smemsToNotify.add(smem);
- smem.unlinkSegment(wm);
+ smem.unlinkSegment();
smem.correctSegmentMemoryAfterSplitOnAdd(smemSplitAdjustAmount);
}
@@ -353,7 +353,7 @@ class LazyPhreakBuilder implements PhreakBuilder {
SegmentMemory smem,
int smemSplitAdjustAmount) {
smemsToNotify.add(smem);
- smem.unlinkSegment(wm);
+ smem.unlinkSegment();
smem.correctSegmentMemoryAfterSplitOnRemove(smemSplitAdjustAmount);
}
@@ -397,8 +397,8 @@ class LazyPhreakBuilder implements PhreakBuilder {
sm1.mergeSegment(sm2);
smemsToNotify.add(sm1);
- sm1.unlinkSegment(wm);
- sm2.unlinkSegment(wm);
+ sm1.unlinkSegment();
+ sm2.unlinkSegment();
visited.add(node);
// Add back the the terminal node of the rule to be removed
into the rete network to permit the network
@@ -535,14 +535,14 @@ class LazyPhreakBuilder implements PhreakBuilder {
SegmentMemory sm = mem.getSegmentMemory();
if (sm != null &&
!sm.getPathMemories().contains(pmem)) {
RuntimeSegmentUtilities.addSegmentToPathMemory(pmem, sm);
- sm.notifyRuleLinkSegment(wm, pmem);
+ sm.notifyRuleLinkSegment(pmem);
}
}
}
} else {
Memory mem = wm.getNodeMemories().peekNodeMemory(child);
if (mem != null) {
- mem.getSegmentMemory().notifyRuleLinkSegment(wm, pmem);
+ mem.getSegmentMemory().notifyRuleLinkSegment(pmem);
}
}
@@ -633,7 +633,7 @@ class LazyPhreakBuilder implements PhreakBuilder {
List<LeftTupleNode> splits) {
// first flush the subject rule, then flush any staging lists that are
part of a merge
if (pmem.isInitialized()) {
- RuleNetworkEvaluator.INSTANCE.evaluateNetwork(wm,
pmem.getRuleAgendaItem().getRuleExecutor(), pmem);
+
RuleNetworkEvaluator.INSTANCE.evaluateNetwork(pmem.getRuleAgendaItem().getRuleExecutor(),
pmem);
}
// With the removing rules being flushed, we need to check any splits
that will be merged, to see if they need flushing
@@ -719,9 +719,9 @@ class LazyPhreakBuilder implements PhreakBuilder {
return previousSmems;
}
- private static void notifySegments(InternalWorkingMemory wm,
Set<SegmentMemory> smems) {
+ private static void notifySegments(Set<SegmentMemory> smems) {
for (SegmentMemory sm : smems) {
- sm.notifyRuleLinkSegment(wm);
+ sm.notifyRuleLinkSegment();
}
}
@@ -1063,7 +1063,7 @@ class LazyPhreakBuilder implements PhreakBuilder {
if (NodeTypeEnums.isTerminalNode(lt.getSink())) {
PathMemory pmem = (PathMemory)
wm.getNodeMemories().peekNodeMemory(lt.getSink());
if (pmem != null) {
-
PhreakRuleTerminalNode.doLeftDelete(pmem.getActualActivationsManager(wm),
pmem.getRuleAgendaItem()
+
PhreakRuleTerminalNode.doLeftDelete(pmem.getActualActivationsManager(),
pmem.getRuleAgendaItem()
.getRuleExecutor(), (RuleTerminalNodeLeftTuple) lt);
}
} else {
@@ -1606,7 +1606,7 @@ class LazyPhreakBuilder implements PhreakBuilder {
RuntimeSegmentUtilities.addSegmentToPathMemory(pmem, smem);
if (smem.isSegmentLinked()) {
// not's can cause segments to be linked, and the rules
need to be notified for evaluation
- smem.notifyRuleLinkSegment(reteEvaluator);
+ smem.notifyRuleLinkSegment();
}
checkEagerSegmentCreation(reteEvaluator,
sink.getLeftTupleSource(), nodeTypesInSegment);
pmem = null;
diff --git
a/drools-core/src/main/java/org/drools/core/phreak/PhreakNotNode.java
b/drools-core/src/main/java/org/drools/core/phreak/PhreakNotNode.java
index c666feddbc..8feb1b1200 100644
--- a/drools-core/src/main/java/org/drools/core/phreak/PhreakNotNode.java
+++ b/drools-core/src/main/java/org/drools/core/phreak/PhreakNotNode.java
@@ -154,8 +154,7 @@ public class PhreakNotNode {
// this must be processed here, rather than initial insert, as we need
to link the blocker
unlinkNotNodeOnRightInsert(notNode,
- bm,
- reteEvaluator);
+ bm);
for (RightTuple rightTuple = (RightTuple)
srcRightTuples.getInsertFirst(); rightTuple != null; ) {
RightTuple next = (RightTuple) rightTuple.getStagedNext();
@@ -206,12 +205,11 @@ public class PhreakNotNode {
}
public static void unlinkNotNodeOnRightInsert(NotNode notNode,
- BetaMemory bm,
- ReteEvaluator reteEvaluator)
{
+ BetaMemory bm) {
if (bm.getSegmentMemory().isSegmentLinked() &&
notNode.isEmptyBetaConstraints()) {
// this must be processed here, rather than initial insert, as we
need to link the blocker
// @TODO this could be more efficient, as it means the entire
StagedLeftTuples for all previous nodes where evaluated, needlessly.
- bm.unlinkNode(reteEvaluator);
+ bm.unlinkNode();
}
}
diff --git
a/drools-core/src/main/java/org/drools/core/phreak/PhreakQueryTerminalNode.java
b/drools-core/src/main/java/org/drools/core/phreak/PhreakQueryTerminalNode.java
index e828320a98..b553d644b0 100644
---
a/drools-core/src/main/java/org/drools/core/phreak/PhreakQueryTerminalNode.java
+++
b/drools-core/src/main/java/org/drools/core/phreak/PhreakQueryTerminalNode.java
@@ -73,7 +73,7 @@ public class PhreakQueryTerminalNode {
DroolsQueryImpl dquery = (DroolsQueryImpl)
rootEntry.getFactHandle().getObject();
dquery.setQuery(qtnNode.getQuery());
if (dquery.getStackEntry() != null) {
- checkAndTriggerQueryReevaluation(activationsManager, stack,
rootEntry, dquery);
+ checkAndTriggerQueryReevaluation(stack, rootEntry, dquery);
}
// Add results to the adapter
@@ -101,7 +101,7 @@ public class PhreakQueryTerminalNode {
DroolsQueryImpl dquery = (DroolsQueryImpl)
rootEntry.getFactHandle().getObject();
dquery.setQuery(qtnNode.getQuery());
if (dquery.getStackEntry() != null) {
- checkAndTriggerQueryReevaluation(activationsManager, stack,
rootEntry, dquery);
+ checkAndTriggerQueryReevaluation(stack, rootEntry, dquery);
}
// Add results to the adapter
@@ -131,7 +131,7 @@ public class PhreakQueryTerminalNode {
dquery.setQuery(qtnNode.getQuery());
if (dquery.getStackEntry() != null) {
- checkAndTriggerQueryReevaluation(activationsManager, stack,
rootEntry, dquery);
+ checkAndTriggerQueryReevaluation(stack, rootEntry, dquery);
}
// Add results to the adapter
@@ -145,7 +145,7 @@ public class PhreakQueryTerminalNode {
}
- public static void checkAndTriggerQueryReevaluation(ActivationsManager
activationsManager, LinkedList<StackEntry> stack, Tuple rootEntry,
DroolsQueryImpl dquery) {
+ public static void checkAndTriggerQueryReevaluation(LinkedList<StackEntry>
stack, Tuple rootEntry, DroolsQueryImpl dquery) {
StackEntry stackEntry = dquery.getStackEntry();
if (!isAdded(stack, stackEntry)) {
// Ignore unless stackEntry is not added to stack
@@ -165,7 +165,7 @@ public class PhreakQueryTerminalNode {
// reactivity comes form within the query, so need to
notify parent rules to evaluate the results
for (int i = 0, length = pmems.size(); i < length; i++) {
PathMemory pmem = pmems.get(i);
- pmem.doLinkRule(activationsManager); // method already
ignores is rule is activated and on agenda
+ pmem.doLinkRule(); // method already ignores is rule
is activated and on agenda
}
}
}
diff --git
a/drools-core/src/main/java/org/drools/core/phreak/PhreakTimerNode.java
b/drools-core/src/main/java/org/drools/core/phreak/PhreakTimerNode.java
index ebce320ba6..b0d503b900 100644
--- a/drools-core/src/main/java/org/drools/core/phreak/PhreakTimerNode.java
+++ b/drools-core/src/main/java/org/drools/core/phreak/PhreakTimerNode.java
@@ -182,7 +182,7 @@ public class PhreakTimerNode {
// a expire clashes with insert or update, allow it to
propagate once, will handle the expire the second time around
doPropagateChildLeftTuple( sink, trgLeftTuples,
stagedLeftTuples, leftTuple );
tm.getDeleteLeftTuples().add( leftTuple );
- pmem.doLinkRule( activationsManager ); // make sure it's
dirty, so it'll evaluate again
+ pmem.doLinkRule( ); // make sure it's dirty, so it'll
evaluate again
if ( log.isTraceEnabled() ) {
log.trace( "Timer Postponed Delete {}", leftTuple );
}
@@ -415,8 +415,8 @@ public class PhreakTimerNode {
// if the corresponding rule has been removed avoid to
link and notify this pmem
continue;
}
- ActivationsManager activationsManager =
pmem.getActualActivationsManager( reteEvaluator );
- pmem.doLinkRule( activationsManager );
+ ActivationsManager activationsManager =
pmem.getActualActivationsManager( );
+ pmem.doLinkRule( );
if (needEvaluation && filter.accept(new
Rule[]{pmem.getRule()})) {
evaluateAndFireRule( pmem, activationsManager );
diff --git a/drools-core/src/main/java/org/drools/core/phreak/RuleExecutor.java
b/drools-core/src/main/java/org/drools/core/phreak/RuleExecutor.java
index 42c4f16746..812084485d 100644
--- a/drools-core/src/main/java/org/drools/core/phreak/RuleExecutor.java
+++ b/drools-core/src/main/java/org/drools/core/phreak/RuleExecutor.java
@@ -77,8 +77,8 @@ public class RuleExecutor {
AgendaFilter filter,
int fireCount,
int fireLimit ) {
- evaluateNetworkIfDirty( reteEvaluator );
- return fire(reteEvaluator, pmem.getActualActivationsManager(
reteEvaluator ), filter, fireCount, fireLimit);
+ evaluateNetworkIfDirty( );
+ return fire(reteEvaluator, pmem.getActualActivationsManager( ),
filter, fireCount, fireLimit);
}
public int evaluateNetworkAndFire( ActivationsManager activationsManager,
AgendaFilter filter, int fireCount, int fireLimit ) {
@@ -185,7 +185,7 @@ public class RuleExecutor {
}
}
- removeRuleAgendaItemWhenEmpty(reteEvaluator);
+ removeRuleAgendaItemWhenEmpty();
fireExitedEarly = false;
return localFireCount;
@@ -212,16 +212,16 @@ public class RuleExecutor {
return pmem;
}
- public void removeRuleAgendaItemWhenEmpty(ReteEvaluator reteEvaluator) {
+ public void removeRuleAgendaItemWhenEmpty() {
if (!dirty && activeMatches.isEmpty()) {
if (log.isTraceEnabled()) {
log.trace("Removing RuleAgendaItem " + ruleAgendaItem);
}
ruleAgendaItem.remove();
if ( ruleAgendaItem.getRule().isQuery() ) {
- pmem.getActualActivationsManager( reteEvaluator
).removeQueryAgendaItem( ruleAgendaItem );
+ pmem.getActualActivationsManager( ).removeQueryAgendaItem(
ruleAgendaItem );
} else if ( ruleAgendaItem.getRule().isEager() ) {
- pmem.getActualActivationsManager( reteEvaluator
).removeEagerRuleAgendaItem(ruleAgendaItem);
+ pmem.getActualActivationsManager(
).removeEagerRuleAgendaItem(ruleAgendaItem);
}
}
}
@@ -231,8 +231,8 @@ public class RuleExecutor {
setDirty( false );
}
- public void evaluateNetworkIfDirty(ReteEvaluator reteEvaluator) {
- evaluateNetworkIfDirty(pmem.getActualActivationsManager( reteEvaluator
));
+ public void evaluateNetworkIfDirty() {
+ evaluateNetworkIfDirty(pmem.getActualActivationsManager( ));
}
public void evaluateNetworkIfDirty(ActivationsManager activationsManager) {
diff --git
a/drools-core/src/main/java/org/drools/core/phreak/RuleNetworkEvaluator.java
b/drools-core/src/main/java/org/drools/core/phreak/RuleNetworkEvaluator.java
index f6044e158c..75a9a6a07b 100644
--- a/drools-core/src/main/java/org/drools/core/phreak/RuleNetworkEvaluator.java
+++ b/drools-core/src/main/java/org/drools/core/phreak/RuleNetworkEvaluator.java
@@ -108,10 +108,9 @@ public class RuleNetworkEvaluator {
private RuleNetworkEvaluator() { }
- public void evaluateNetwork(ReteEvaluator reteEvaluator,
- RuleExecutor executor,
+ public void evaluateNetwork(RuleExecutor executor,
PathMemory pmem) {
- evaluateNetwork(pmem.getActualActivationsManager(reteEvaluator),
executor, pmem);
+ evaluateNetwork(pmem.getActualActivationsManager(), executor, pmem);
}
public void evaluateNetwork(ActivationsManager activationsManager,
diff --git
a/drools-core/src/main/java/org/drools/core/phreak/RuntimeSegmentUtilities.java
b/drools-core/src/main/java/org/drools/core/phreak/RuntimeSegmentUtilities.java
index 5ec3d1e90d..8baff7d0c2 100644
---
a/drools-core/src/main/java/org/drools/core/phreak/RuntimeSegmentUtilities.java
+++
b/drools-core/src/main/java/org/drools/core/phreak/RuntimeSegmentUtilities.java
@@ -186,7 +186,7 @@ public class RuntimeSegmentUtilities {
if (smem.getAllLinkedMaskTest() > 0 && smem.isSegmentLinked()) {
// not's can cause segments to be linked, and the rules need
to be notified for evaluation
- smem.notifyRuleLinkSegment(reteEvaluator);
+ smem.notifyRuleLinkSegment();
}
}
}
diff --git
a/drools-core/src/main/java/org/drools/core/phreak/TupleEvaluationUtil.java
b/drools-core/src/main/java/org/drools/core/phreak/TupleEvaluationUtil.java
index 4a3023a8e6..67de54b239 100644
--- a/drools-core/src/main/java/org/drools/core/phreak/TupleEvaluationUtil.java
+++ b/drools-core/src/main/java/org/drools/core/phreak/TupleEvaluationUtil.java
@@ -136,9 +136,8 @@ public class TupleEvaluationUtil {
PathMemory rtnPmem =
NodeTypeEnums.isTerminalNode(pmem.getPathEndNode()) ? pmem :
reteEvaluator.getNodeMemory(
(AbstractTerminalNode)
pmem.getPathEndNode().getPathEndNodes()[0]);
- ActivationsManager activationsManager =
pmem.getActualActivationsManager(reteEvaluator);
- RuleNetworkEvaluator.INSTANCE.outerEval(activationsManager,
rtnPmem.getOrCreateRuleAgendaItem(
- activationsManager).getRuleExecutor(), pmem, smems,
sm.getPos(), bit, mem, node,
+ ActivationsManager activationsManager =
pmem.getActualActivationsManager();
+ RuleNetworkEvaluator.INSTANCE.outerEval(activationsManager,
rtnPmem.getOrCreateRuleAgendaItem().getRuleExecutor(), pmem, smems,
sm.getPos(), bit, mem, node,
leftTupleSets,
true);
}
diff --git
a/drools-core/src/main/java/org/drools/core/reteoo/AlphaTerminalNode.java
b/drools-core/src/main/java/org/drools/core/reteoo/AlphaTerminalNode.java
index 7a803073ed..a0377dd594 100644
--- a/drools-core/src/main/java/org/drools/core/reteoo/AlphaTerminalNode.java
+++ b/drools-core/src/main/java/org/drools/core/reteoo/AlphaTerminalNode.java
@@ -114,7 +114,7 @@ public class AlphaTerminalNode extends LeftInputAdapterNode
{
public static RuleAgendaItem getRuleAgendaItem(ReteEvaluator
reteEvaluator, ActivationsManager activationsManager, TerminalNode rtn, boolean
linkPmem ) {
PathMemory pathMemory = reteEvaluator.getNodeMemory( rtn );
if (linkPmem) {
- pathMemory.doLinkRule( activationsManager );
+ pathMemory.doLinkRule( );
}
return pathMemory.getRuleAgendaItem();
}
diff --git
a/drools-core/src/main/java/org/drools/core/reteoo/AsyncReceiveNode.java
b/drools-core/src/main/java/org/drools/core/reteoo/AsyncReceiveNode.java
index a520959458..823eb49917 100644
--- a/drools-core/src/main/java/org/drools/core/reteoo/AsyncReceiveNode.java
+++ b/drools-core/src/main/java/org/drools/core/reteoo/AsyncReceiveNode.java
@@ -131,7 +131,7 @@ public class AsyncReceiveNode extends LeftTupleSource
// if the corresponding rule has been removed avoid to
link and notify this pmem
continue;
}
- pmem.doLinkRule( reteEvaluator );
+ pmem.doLinkRule();
}
}
}
diff --git a/drools-core/src/main/java/org/drools/core/reteoo/BetaMemory.java
b/drools-core/src/main/java/org/drools/core/reteoo/BetaMemory.java
index afc43226ed..04ec2587f6 100644
--- a/drools-core/src/main/java/org/drools/core/reteoo/BetaMemory.java
+++ b/drools-core/src/main/java/org/drools/core/reteoo/BetaMemory.java
@@ -92,12 +92,12 @@ public class BetaMemory<C> extends
AbstractLinkedListNode<Memory> implements Seg
segmentMemory = getOrCreateSegmentMemory( tupleSource,
reteEvaluator );
}
return notify ?
- segmentMemory.linkNode(nodePosMaskBit, reteEvaluator) :
+ segmentMemory.linkNode(nodePosMaskBit) :
segmentMemory.linkNodeWithoutRuleNotify(nodePosMaskBit);
}
- public boolean unlinkNode(ReteEvaluator reteEvaluator) {
- return segmentMemory.unlinkNode(nodePosMaskBit, reteEvaluator);
+ public boolean unlinkNode() {
+ return segmentMemory.unlinkNode(nodePosMaskBit);
}
public int getNodeType() {
@@ -145,7 +145,7 @@ public class BetaMemory<C> extends
AbstractLinkedListNode<Memory> implements Seg
segmentMemory = getOrCreateSegmentMemory( tupleSource,
reteEvaluator );
}
return notify ?
- segmentMemory.notifyRuleLinkSegment(reteEvaluator,
nodePosMaskBit) :
+ segmentMemory.notifyRuleLinkSegment(nodePosMaskBit) :
segmentMemory.linkSegmentWithoutRuleNotify(nodePosMaskBit);
}
diff --git
a/drools-core/src/main/java/org/drools/core/reteoo/LeftInputAdapterNode.java
b/drools-core/src/main/java/org/drools/core/reteoo/LeftInputAdapterNode.java
index 2e526fe818..39ed5cb651 100644
--- a/drools-core/src/main/java/org/drools/core/reteoo/LeftInputAdapterNode.java
+++ b/drools-core/src/main/java/org/drools/core/reteoo/LeftInputAdapterNode.java
@@ -195,7 +195,7 @@ public class LeftInputAdapterNode extends LeftTupleSource
// if there is no left memory, then there is no linking or
notification
if ( linkOrNotify ) {
// link and notify
- lm.linkNode( reteEvaluator );
+ lm.linkNode( );
} else {
// link without notify, when driven by a query, as we don't
want it, placed on the agenda
lm.linkNodeWithoutRuleNotify();
@@ -247,7 +247,7 @@ public class LeftInputAdapterNode extends LeftTupleSource
if ( pmem != null ) {
forceFlushLeftTuple( reteEvaluator, pmem, sm,
createLeftTupleTupleSets(leftTuple, Tuple.INSERT) );
if ( linkOrNotify ) {
- lm.setNodeDirty( reteEvaluator );
+ lm.setNodeDirty( );
}
return findPathsToFlushFromSubnetwork(reteEvaluator, pmem);
}
@@ -257,7 +257,7 @@ public class LeftInputAdapterNode extends LeftTupleSource
if ( stagedInsertWasEmpty && linkOrNotify ) {
// staged is empty, so notify rule, to force re-evaluation.
- lm.setNodeDirty(reteEvaluator);
+ lm.setNodeDirty();
}
return Collections.emptyList();
}
@@ -296,7 +296,7 @@ public class LeftInputAdapterNode extends LeftTupleSource
if ( lm.getAndDecreaseCounter() == 1 ) {
if ( linkOrNotify ) {
- lm.unlinkNode( reteEvaluator );
+ lm.unlinkNode( );
} else {
lm.unlinkNodeWithoutRuleNotify();
}
@@ -308,7 +308,7 @@ public class LeftInputAdapterNode extends LeftTupleSource
leftTuple.setPropagationContext( pctx );
if ( flushLeftTupleIfNecessary( reteEvaluator, sm, leftTuple,
streamMode, Tuple.DELETE ) ) {
if ( linkOrNotify ) {
- lm.setNodeDirty( reteEvaluator );
+ lm.setNodeDirty( );
}
return;
}
@@ -318,7 +318,7 @@ public class LeftInputAdapterNode extends LeftTupleSource
if ( stagedDeleteWasEmpty && linkOrNotify ) {
// staged is empty, so notify rule, to force re-evaluation
- lm.setNodeDirty(reteEvaluator);
+ lm.setNodeDirty();
}
}
@@ -360,7 +360,7 @@ public class LeftInputAdapterNode extends LeftTupleSource
if ( leftTuple.getStagedType() == LeftTuple.NONE ) {
if ( flushLeftTupleIfNecessary( reteEvaluator, sm, leftTuple,
streamMode, Tuple.UPDATE ) ) {
if ( linkOrNotify ) {
- lm.setNodeDirty( reteEvaluator );
+ lm.setNodeDirty( );
}
return;
}
@@ -370,7 +370,7 @@ public class LeftInputAdapterNode extends LeftTupleSource
if ( stagedUpdateWasEmpty && linkOrNotify ) {
// staged is empty, so notify rule, to force re-evaluation
- lm.setNodeDirty(reteEvaluator);
+ lm.setNodeDirty();
}
}
}
@@ -572,12 +572,12 @@ public class LeftInputAdapterNode extends LeftTupleSource
segmentMemory.linkNodeWithoutRuleNotify(nodePosMaskBit);
}
- public void linkNode(ReteEvaluator reteEvaluator) {
- segmentMemory.linkNode(nodePosMaskBit, reteEvaluator);
+ public void linkNode() {
+ segmentMemory.linkNode(nodePosMaskBit);
}
- public boolean unlinkNode(ReteEvaluator reteEvaluator) {
- return segmentMemory.unlinkNode(nodePosMaskBit, reteEvaluator);
+ public boolean unlinkNode() {
+ return segmentMemory.unlinkNode(nodePosMaskBit);
}
public void unlinkNodeWithoutRuleNotify() {
@@ -588,8 +588,8 @@ public class LeftInputAdapterNode extends LeftTupleSource
return NodeTypeEnums.LeftInputAdapterNode;
}
- public void setNodeDirty(ReteEvaluator reteEvaluator) {
- segmentMemory.notifyRuleLinkSegment(reteEvaluator, nodePosMaskBit);
+ public void setNodeDirty() {
+ segmentMemory.notifyRuleLinkSegment(nodePosMaskBit);
}
public void reset() {
diff --git a/drools-core/src/main/java/org/drools/core/reteoo/PathMemory.java
b/drools-core/src/main/java/org/drools/core/reteoo/PathMemory.java
index 5f6d836452..f753167dd4 100644
--- a/drools-core/src/main/java/org/drools/core/reteoo/PathMemory.java
+++ b/drools-core/src/main/java/org/drools/core/reteoo/PathMemory.java
@@ -33,34 +33,38 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class PathMemory extends AbstractLinkedListNode<Memory>
- implements
- Serializable, Memory {
+ implements
+ Serializable, Memory {
protected static final Logger log =
LoggerFactory.getLogger(PathMemory.class);
protected static final boolean isLogTraceEnabled = log.isTraceEnabled();
- private long linkedSegmentMask;
- private long allLinkedMaskTest;
- private final PathEndNode pathEndNode;
- private RuleAgendaItem agendaItem;
- private SegmentMemory[] segmentMemories;
- private SegmentMemory segmentMemory;
+ private long linkedSegmentMask;
+ private long allLinkedMaskTest;
+ private final PathEndNode pathEndNode;
+ private RuleAgendaItem agendaItem;
+ private SegmentMemory[] segmentMemories;
+ private SegmentMemory segmentMemory;
- public final boolean dataDriven;
+ public final boolean dataDriven;
+
+ private ActivationsManager activationsManager;
public PathMemory(PathEndNode pathEndNode, ReteEvaluator reteEvaluator) {
this.pathEndNode = pathEndNode;
this.linkedSegmentMask = 0L;
- this.dataDriven = initDataDriven( reteEvaluator );
+ this.dataDriven = initDataDriven(reteEvaluator);
+ this.activationsManager =
reteEvaluator.getActivationsManager().getPartitionedAgendaForNode(getPathEndNode());
}
- protected boolean initDataDriven( ReteEvaluator reteEvaluator ) {
- return isRuleDataDriven( reteEvaluator, getRule() );
+ protected boolean initDataDriven(ReteEvaluator reteEvaluator) {
+ return isRuleDataDriven(reteEvaluator, getRule());
}
- protected boolean isRuleDataDriven( ReteEvaluator reteEvaluator, RuleImpl
rule ) {
+ protected boolean isRuleDataDriven(ReteEvaluator reteEvaluator, RuleImpl
rule) {
return rule != null &&
- ( rule.isDataDriven() || ( reteEvaluator != null &&
reteEvaluator.getRuleSessionConfiguration().getForceEagerActivationFilter().accept(rule)
));
+ (rule.isDataDriven() || (reteEvaluator != null &&
reteEvaluator.getRuleSessionConfiguration()
+ .getForceEagerActivationFilter().accept(rule)));
}
public PathEndNode getPathEndNode() {
@@ -95,7 +99,7 @@ public class PathMemory extends AbstractLinkedListNode<Memory>
linkedSegmentMask |= mask;
}
- public void linkSegment(long mask, ReteEvaluator reteEvaluator) {
+ public void linkSegment(long mask) {
linkedSegmentMask |= mask;
if (isLogTraceEnabled) {
if (NodeTypeEnums.isTerminalNode(getPathEndNode())) {
@@ -106,16 +110,16 @@ public class PathMemory extends
AbstractLinkedListNode<Memory>
}
}
if (isRuleLinked()) {
- doLinkRule(reteEvaluator);
+ doLinkRule();
}
}
- public RuleAgendaItem getOrCreateRuleAgendaItem(ActivationsManager
activationsManager) {
- ensureAgendaItemCreated(activationsManager);
+ public RuleAgendaItem getOrCreateRuleAgendaItem() {
+ ensureAgendaItemCreated();
return agendaItem;
}
- private TerminalNode ensureAgendaItemCreated(ActivationsManager
activationsManager) {
+ private TerminalNode ensureAgendaItemCreated() {
AbstractTerminalNode rtn = (AbstractTerminalNode) getPathEndNode();
if (agendaItem == null) {
int salience = rtn.getRule().getSalience().isDynamic() ? 0 :
rtn.getRule().getSalience().getValue();
@@ -124,70 +128,62 @@ public class PathMemory extends
AbstractLinkedListNode<Memory>
return rtn;
}
- public void doLinkRule(ReteEvaluator reteEvaluator) {
- doLinkRule( getActualActivationsManager( reteEvaluator ) );
- }
-
- public void doLinkRule(ActivationsManager activationsManager) {
- TerminalNode rtn = ensureAgendaItemCreated(activationsManager);
+ public void doLinkRule() {
+ TerminalNode rtn = ensureAgendaItemCreated();
if (isLogTraceEnabled) {
log.trace(" LinkRule name={}", rtn.getRule().getName());
}
- queueRuleAgendaItem(activationsManager);
- }
-
- public void doUnlinkRule(ReteEvaluator reteEvaluator) {
- doUnlinkRule( getActualActivationsManager( reteEvaluator ) );
+ queueRuleAgendaItem();
}
- public void doUnlinkRule(ActivationsManager activationsManager) {
- TerminalNode rtn = ensureAgendaItemCreated(activationsManager);
+ public void doUnlinkRule() {
+ TerminalNode rtn = ensureAgendaItemCreated();
if (isLogTraceEnabled) {
log.trace(" UnlinkRule name={}", rtn.getRule().getName());
}
agendaItem.getRuleExecutor().setDirty(true);
- if ( !agendaItem.isQueued() ) {
- if ( isLogTraceEnabled ) {
+ if (!agendaItem.isQueued()) {
+ if (isLogTraceEnabled) {
log.trace("Queue RuleAgendaItem {}", agendaItem);
}
InternalAgendaGroup ag = agendaItem.getAgendaGroup();
- ag.add( agendaItem );
+ ag.add(agendaItem);
}
}
- public void queueRuleAgendaItem(ActivationsManager activationsManager) {
+ public void queueRuleAgendaItem() {
agendaItem.getRuleExecutor().setDirty(true);
ActivationsFilter activationFilter =
activationsManager.getActivationsFilter();
- if ( activationFilter != null ) {
- activationFilter.accept( agendaItem );
+ if (activationFilter != null) {
+ activationFilter.accept(agendaItem);
}
- if ( !agendaItem.isQueued() ) {
- if ( isLogTraceEnabled ) {
+ if (!agendaItem.isQueued()) {
+ if (isLogTraceEnabled) {
log.trace("Queue RuleAgendaItem {}", agendaItem);
}
InternalAgendaGroup ag = agendaItem.getAgendaGroup();
- ag.add( agendaItem );
+ ag.add(agendaItem);
}
- if ( agendaItem.getRule().isQuery() ) {
- activationsManager.addQueryAgendaItem( agendaItem );
- } else if ( agendaItem.getRule().isEager() ) {
- activationsManager.addEagerRuleAgendaItem( agendaItem );
+ if (agendaItem.getRule().isQuery()) {
+ activationsManager.addQueryAgendaItem(agendaItem);
+ } else if (agendaItem.getRule().isEager()) {
+ activationsManager.addEagerRuleAgendaItem(agendaItem);
}
}
- public void unlinkedSegment(long mask, ReteEvaluator reteEvaluator) {
- boolean linkedRule = isRuleLinked();
+ public void unlinkedSegment(long mask) {
+ boolean linkedRule = isRuleLinked();
linkedSegmentMask &= ~mask;
if (isLogTraceEnabled) {
log.trace(" UnlinkSegment smask={} rmask={} name={}", mask,
linkedSegmentMask, this);
}
if (linkedRule && !isRuleLinked()) {
- doUnlinkRule(reteEvaluator);
+ doUnlinkRule();
}
}
@@ -237,8 +233,7 @@ public class PathMemory extends
AbstractLinkedListNode<Memory>
this.agendaItem = null;
}
- public ActivationsManager getActualActivationsManager(ReteEvaluator
reteEvaluator) {
- ActivationsManager activationsManager =
reteEvaluator.getActivationsManager();
- return activationsManager.getPartitionedAgendaForNode(
getPathEndNode() );
+ public ActivationsManager getActualActivationsManager() {
+ return activationsManager;
}
}
diff --git
a/drools-core/src/main/java/org/drools/core/reteoo/RightInputAdapterNode.java
b/drools-core/src/main/java/org/drools/core/reteoo/RightInputAdapterNode.java
index a695f650de..267ae40acb 100644
---
a/drools-core/src/main/java/org/drools/core/reteoo/RightInputAdapterNode.java
+++
b/drools-core/src/main/java/org/drools/core/reteoo/RightInputAdapterNode.java
@@ -176,7 +176,7 @@ public abstract class RightInputAdapterNode<T extends
BetaNode> extends BaseNod
if ( stagedDeleteWasEmpty ) {
memory.setNodeDirtyWithoutNotify();
}
- shouldFlush = memory.unlinkNode(reteEvaluator) | shouldFlush;
+ shouldFlush = memory.unlinkNode() | shouldFlush;
} else if ( stagedDeleteWasEmpty ) {
// nothing staged before, notify rule, so it can evaluate network
shouldFlush = memory.setNodeDirty( betaNode, reteEvaluator ) |
shouldFlush;
diff --git
a/drools-core/src/main/java/org/drools/core/reteoo/RuleTerminalNode.java
b/drools-core/src/main/java/org/drools/core/reteoo/RuleTerminalNode.java
index 9cdf0cd5ef..28fc673a6e 100644
--- a/drools-core/src/main/java/org/drools/core/reteoo/RuleTerminalNode.java
+++ b/drools-core/src/main/java/org/drools/core/reteoo/RuleTerminalNode.java
@@ -26,7 +26,6 @@ import org.drools.base.definitions.rule.impl.RuleImpl;
import org.drools.base.reteoo.NodeTypeEnums;
import org.drools.base.rule.Declaration;
import org.drools.base.rule.GroupElement;
-import org.drools.core.common.ReteEvaluator;
import org.drools.core.phreak.PhreakRuleTerminalNode;
import org.drools.core.phreak.RuleExecutor;
import org.drools.core.reteoo.builder.BuildContext;
@@ -132,7 +131,7 @@ public class RuleTerminalNode extends AbstractTerminalNode {
return consequenceName == null ? RuleImpl.DEFAULT_CONSEQUENCE_NAME :
consequenceName;
}
- public void cancelMatch(InternalMatch match, ReteEvaluator reteEvaluator) {
+ public void cancelMatch(InternalMatch match) {
if ( match.isQueued() ) {
TupleImpl leftTuple = match.getTuple();
if ( match.getRuleAgendaItem() != null ) {
@@ -142,7 +141,7 @@ public class RuleTerminalNode extends AbstractTerminalNode {
}
}
RuleExecutor ruleExecutor =
((RuleTerminalNodeLeftTuple)leftTuple).getRuleAgendaItem().getRuleExecutor();
-
PhreakRuleTerminalNode.doLeftDelete(ruleExecutor.getPathMemory().getActualActivationsManager(
reteEvaluator ), ruleExecutor, (RuleTerminalNodeLeftTuple) leftTuple);
+
PhreakRuleTerminalNode.doLeftDelete(ruleExecutor.getPathMemory().getActualActivationsManager(
), ruleExecutor, (RuleTerminalNodeLeftTuple) leftTuple);
}
}
diff --git
a/drools-core/src/main/java/org/drools/core/reteoo/SegmentMemory.java
b/drools-core/src/main/java/org/drools/core/reteoo/SegmentMemory.java
index bf27716e08..cd828e8c8c 100644
--- a/drools-core/src/main/java/org/drools/core/reteoo/SegmentMemory.java
+++ b/drools-core/src/main/java/org/drools/core/reteoo/SegmentMemory.java
@@ -150,7 +150,7 @@ public class SegmentMemory extends LinkedList<SegmentMemory>
return sbuilder.toString();
}
- public boolean linkNode(long mask, ReteEvaluator reteEvaluator) {
+ public boolean linkNode(long mask) {
linkedNodeMask |= mask;
dirtyNodeMask |= mask;
if (IS_LOG_TRACE_ENABLED) {
@@ -158,7 +158,7 @@ public class SegmentMemory extends LinkedList<SegmentMemory>
getRuleNames());
}
- return notifyRuleLinkSegment(reteEvaluator);
+ return notifyRuleLinkSegment();
}
public boolean linkNodeWithoutRuleNotify(long mask) {
@@ -190,29 +190,29 @@ public class SegmentMemory extends
LinkedList<SegmentMemory>
return dataDrivePmemLinked;
}
- public boolean notifyRuleLinkSegment(ReteEvaluator reteEvaluator, long
mask) {
+ public boolean notifyRuleLinkSegment(long mask) {
dirtyNodeMask |= mask;
- return notifyRuleLinkSegment(reteEvaluator);
+ return notifyRuleLinkSegment();
}
- public boolean notifyRuleLinkSegment(ReteEvaluator reteEvaluator) {
+ public boolean notifyRuleLinkSegment() {
boolean dataDrivePmemLinked = false;
if (isSegmentLinked()) {
for (int i = 0, length = pathMemories.size(); i < length; i++) {
// do not use foreach, don't want Iterator object creation
PathMemory pmem = pathMemories.get(i);
- notifyRuleLinkSegment(reteEvaluator, pmem);
+ notifyRuleLinkSegment(pmem);
dataDrivePmemLinked |= (pmem.isDataDriven() &&
pmem.isRuleLinked());
}
}
return dataDrivePmemLinked;
}
- public void notifyRuleLinkSegment(ReteEvaluator reteEvaluator, PathMemory
pmem) {
- pmem.linkSegment(segmentPosMaskBit, reteEvaluator);
+ public void notifyRuleLinkSegment(PathMemory pmem) {
+ pmem.linkSegment(segmentPosMaskBit);
}
- public boolean unlinkNode(long mask, ReteEvaluator reteEvaluator) {
+ public boolean unlinkNode(long mask) {
boolean dataDrivePmemLinked = false;
boolean linked = isSegmentLinked();
// some node unlinking does not unlink the segment, such as nodes
after a Branch CE
@@ -230,24 +230,24 @@ public class SegmentMemory extends
LinkedList<SegmentMemory>
PathMemory pmem = pathMemories.get(i);
// the data driven pmem has to be flushed only if the pmem was
formerly linked
dataDrivePmemLinked |= (pmem.isDataDriven() &&
pmem.isRuleLinked());
- pmem.unlinkedSegment(segmentPosMaskBit, reteEvaluator);
+ pmem.unlinkedSegment(segmentPosMaskBit);
}
} else {
// if not unlinked, then we still need to notify if the rule is
linked
for (int i = 0, length = pathMemories.size(); i < length; i++) {
// do not use foreach, don't want Iterator object creation
if (pathMemories.get(i).isRuleLinked()) {
- pathMemories.get(i).doLinkRule(reteEvaluator);
+ pathMemories.get(i).doLinkRule();
}
}
}
return dataDrivePmemLinked;
}
- public void unlinkSegment(ReteEvaluator reteEvaluator) {
+ public void unlinkSegment() {
for (int i = 0, length = pathMemories.size(); i < length; i++) {
// do not use foreach, don't want Iterator object creation
- pathMemories.get(i).unlinkedSegment(segmentPosMaskBit,
reteEvaluator);
+ pathMemories.get(i).unlinkedSegment(segmentPosMaskBit);
}
}
diff --git
a/drools-core/src/main/java/org/drools/core/reteoo/SingleObjectSinkAdapter.java
b/drools-core/src/main/java/org/drools/core/reteoo/SingleObjectSinkAdapter.java
index 1a78866881..fb4ea60b36 100644
---
a/drools-core/src/main/java/org/drools/core/reteoo/SingleObjectSinkAdapter.java
+++
b/drools-core/src/main/java/org/drools/core/reteoo/SingleObjectSinkAdapter.java
@@ -132,7 +132,7 @@ public class SingleObjectSinkAdapter implements
ObjectSinkPropagator {
if (sink.getType() == NodeTypeEnums.NotNode) {
bm.linkNode( ( BetaNode ) sink, reteEvaluator );
} else {
- bm.unlinkNode(reteEvaluator);
+ bm.unlinkNode();
}
}
diff --git
a/drools-core/src/main/java/org/drools/core/reteoo/TupleToObjectNode.java
b/drools-core/src/main/java/org/drools/core/reteoo/TupleToObjectNode.java
index b621ebd875..75e57c8cbf 100644
--- a/drools-core/src/main/java/org/drools/core/reteoo/TupleToObjectNode.java
+++ b/drools-core/src/main/java/org/drools/core/reteoo/TupleToObjectNode.java
@@ -19,17 +19,13 @@
package org.drools.core.reteoo;
import java.util.ArrayList;
-import java.util.HashSet;
import java.util.List;
-import java.util.Set;
-
import org.drools.base.base.ObjectType;
import org.drools.base.common.NetworkNode;
import org.drools.base.definitions.rule.impl.RuleImpl;
import org.drools.base.reteoo.NodeTypeEnums;
import org.drools.base.rule.Pattern;
import org.drools.core.RuleBaseConfiguration;
-import org.drools.core.common.ActivationsManager;
import org.drools.core.common.InternalWorkingMemory;
import org.drools.core.common.Memory;
import org.drools.core.common.PropagationContext;
@@ -46,22 +42,23 @@ import org.kie.api.definition.rule.Rule;
* the main network.
*/
public class TupleToObjectNode extends ObjectSource
- implements
- LeftTupleSinkNode,
- PathEndNode {
+ implements
+ LeftTupleSinkNode,
+ PathEndNode {
private static final long serialVersionUID = 510l;
- private LeftTupleSource tupleSource;
+ private LeftTupleSource tupleSource;
/**
* This is first node inside of the subnetwork. The split, with two outs,
would be the parent node.
*/
- private LeftTupleSource startTupleSource;
+ private LeftTupleSource startTupleSource;
- private boolean tupleMemoryEnabled;
+ private boolean tupleMemoryEnabled;
private LeftTupleSinkNode previousTupleSinkNode;
+
private LeftTupleSinkNode nextTupleSinkNode;
private LeftTupleNode[] pathNodes;
@@ -76,8 +73,7 @@ public class TupleToObjectNode extends ObjectSource
private int objectCount;
- public TupleToObjectNode() {
- }
+ public TupleToObjectNode() {}
/**
* Constructor specifying the unique id of the node in the Rete network,
the position of the propagating <code>FactHandleImpl</code> in
@@ -92,13 +88,13 @@ public class TupleToObjectNode extends ObjectSource
final LeftTupleSource source,
final LeftTupleSource startTupleSource,
final BuildContext context) {
- super( id, context.getPartitionId() );
+ super(id, context.getPartitionId());
this.tupleSource = source;
this.tupleMemoryEnabled = context.isTupleMemoryEnabled();
this.startTupleSource = startTupleSource;
hashcode = calculateHashCode();
- initMemoryId( context );
+ initMemoryId(context);
}
@Override
@@ -106,7 +102,6 @@ public class TupleToObjectNode extends ObjectSource
return getPathMemSpec(null);
}
-
/**
* used during network build time, potentially during rule removal time.
* @param removingTN
@@ -115,12 +110,11 @@ public class TupleToObjectNode extends ObjectSource
@Override
public PathMemSpec getPathMemSpec(TerminalNode removingTN) {
if (pathMemSpec == null) {
- pathMemSpec = calculatePathMemSpec( startTupleSource, removingTN );
+ pathMemSpec = calculatePathMemSpec(startTupleSource, removingTN);
}
return pathMemSpec;
}
-
@Override
public void nullPathMemSpec() {
pathMemSpec = null;
@@ -185,23 +179,23 @@ public class TupleToObjectNode extends ObjectSource
/**
* Creates and return the node memory
- */
+ */
public SubnetworkPathMemory createMemory(final RuleBaseConfiguration
config, ReteEvaluator reteEvaluator) {
- return (SubnetworkPathMemory)
AbstractTerminalNode.initPathMemory(this, new SubnetworkPathMemory(this,
reteEvaluator));
+ return (SubnetworkPathMemory)
AbstractTerminalNode.initPathMemory(this, new SubnetworkPathMemory(this,
+ reteEvaluator));
}
- public void doAttach( BuildContext context ) {
- this.tupleSource.addTupleSink( this, context );
+ public void doAttach(BuildContext context) {
+ this.tupleSource.addTupleSink(this, context);
}
public void networkUpdated(UpdateContext updateContext) {
this.tupleSource.networkUpdated(updateContext);
}
-
protected boolean doRemove(final RuleRemovalContext context,
- final ReteooBuilder builder) {
- if ( !isInUse() ) {
+ final ReteooBuilder builder) {
+ if (!isInUse()) {
tupleSource.removeTupleSink(this);
return true;
}
@@ -262,22 +256,24 @@ public class TupleToObjectNode extends ObjectSource
return true;
}
- return ((NetworkNode)object).getType() ==
NodeTypeEnums.TupleToObjectNode && this.hashCode() == object.hashCode() &&
- this.tupleSource.getId() ==
((TupleToObjectNode)object).tupleSource.getId() &&
- this.tupleMemoryEnabled == ( (TupleToObjectNode) object
).tupleMemoryEnabled;
+ return ((NetworkNode) object).getType() ==
NodeTypeEnums.TupleToObjectNode && this.hashCode() == object
+ .hashCode() &&
+ this.tupleSource.getId() == ((TupleToObjectNode)
object).tupleSource.getId() &&
+ this.tupleMemoryEnabled == ((TupleToObjectNode)
object).tupleMemoryEnabled;
}
@Override
public String toString() {
- return "RightInputAdapterNode(" + id + ")[ tupleMemoryEnabled=" +
tupleMemoryEnabled + ", tupleSource=" + tupleSource + ", source="
- + source + ", associations=" + associations + ", partitionId="
+ partitionId + "]";
+ return "RightInputAdapterNode(" + id + ")[ tupleMemoryEnabled=" +
tupleMemoryEnabled + ", tupleSource=" +
+ tupleSource + ", source=" + source + ", associations=" +
associations + ", partitionId=" + partitionId +
+ "]";
}
public LeftTupleSource getLeftTupleSource() {
return this.tupleSource;
}
- public void setTupleSource( LeftTupleSource tupleSource ) {
+ public void setTupleSource(LeftTupleSource tupleSource) {
this.tupleSource = tupleSource;
}
@@ -287,8 +283,8 @@ public class TupleToObjectNode extends ObjectSource
public void setInputOtnId(ObjectTypeNodeId leftInputOtnId) {
throw new UnsupportedOperationException();
- }
-
+ }
+
@Override
public BitMask calculateDeclaredMask(Pattern pattern, ObjectType
modifiedType, List<String> settableProperties) {
throw new UnsupportedOperationException();
@@ -296,16 +292,19 @@ public class TupleToObjectNode extends ObjectSource
public static class SubnetworkPathMemory extends PathMemory implements
Memory {
+ private ReteEvaluator reteEvaluator;
+
public SubnetworkPathMemory(PathEndNode pathEndNode, ReteEvaluator
reteEvaluator) {
super(pathEndNode, reteEvaluator);
+ this.reteEvaluator = reteEvaluator;
}
@Override
- protected boolean initDataDriven( ReteEvaluator reteEvaluator ) {
+ protected boolean initDataDriven(ReteEvaluator reteEvaluator) {
for (PathEndNode pnode : getPathEndNode().getPathEndNodes()) {
if (NodeTypeEnums.isTerminalNode(pnode)) {
- RuleImpl rule = ( (TerminalNode) pnode ).getRule();
- if ( isRuleDataDriven( reteEvaluator, rule ) ) {
+ RuleImpl rule = ((TerminalNode) pnode).getRule();
+ if (isRuleDataDriven(reteEvaluator, rule)) {
return true;
}
}
@@ -318,17 +317,12 @@ public class TupleToObjectNode extends ObjectSource
}
@Override
- public void doLinkRule(ReteEvaluator reteEvaluator) {
+ public void doLinkRule() {
getTupleToObjectNode().getObjectSinkPropagator().doLinkSubnetwork(reteEvaluator);
}
@Override
- public void doLinkRule(ActivationsManager activationsManager) {
- doLinkRule(activationsManager.getReteEvaluator());
- }
-
- @Override
- public void doUnlinkRule(ReteEvaluator reteEvaluator) {
+ public void doUnlinkRule() {
getTupleToObjectNode().getObjectSinkPropagator().doUnlinkSubnetwork(reteEvaluator);
}
@@ -338,8 +332,8 @@ public class TupleToObjectNode extends ObjectSource
}
public String toString() {
- return "TupleToObjectNodeMem(" + getTupleToObjectNode().getId() +
") ["
- +
RuleNameExtractor.getRuleNames(getTupleToObjectNode().getObjectSinkPropagator().getSinks())
+ "]";
+ return "TupleToObjectNodeMem(" + getTupleToObjectNode().getId() +
") [" + RuleNameExtractor.getRuleNames(
+
getTupleToObjectNode().getObjectSinkPropagator().getSinks()) + "]";
}
}
@@ -354,7 +348,7 @@ public class TupleToObjectNode extends ObjectSource
public LeftTupleNode[] getPathNodes() {
if (pathNodes == null) {
- pathNodes = AbstractTerminalNode.getPathNodes( this );
+ pathNodes = AbstractTerminalNode.getPathNodes(this);
}
return pathNodes;
}
@@ -375,11 +369,11 @@ public class TupleToObjectNode extends ObjectSource
@Override
public void addAssociation(Rule rule, BuildContext context) {
super.addAssociation(rule, context);
- context.addPathEndNode( this );
+ context.addPathEndNode(this);
}
@Override
- public boolean removeAssociation( Rule rule, RuleRemovalContext context ) {
+ public boolean removeAssociation(Rule rule, RuleRemovalContext context) {
boolean result = super.associations.remove(rule);
if (getAssociationsSize() == 0) {
// avoid to recalculate the pathEndNodes if this node is going to
be removed
@@ -392,7 +386,7 @@ public class TupleToObjectNode extends ObjectSource
remainingPathNodes.add(pathEndNode);
}
}
- pathEndNodes = remainingPathNodes.toArray( new
PathEndNode[remainingPathNodes.size()] );
+ pathEndNodes = remainingPathNodes.toArray(new
PathEndNode[remainingPathNodes.size()]);
return result;
}
diff --git
a/drools-kiesession/src/main/java/org/drools/kiesession/consequence/DefaultKnowledgeHelper.java
b/drools-kiesession/src/main/java/org/drools/kiesession/consequence/DefaultKnowledgeHelper.java
index aaf4949756..8c396a7088 100644
---
a/drools-kiesession/src/main/java/org/drools/kiesession/consequence/DefaultKnowledgeHelper.java
+++
b/drools-kiesession/src/main/java/org/drools/kiesession/consequence/DefaultKnowledgeHelper.java
@@ -178,7 +178,7 @@ public class DefaultKnowledgeHelper implements
KnowledgeHelper, Externalizable {
public void cancelMatch(Match act) {
InternalMatch match = (InternalMatch) act;
- ((RuleTerminalNode)match.getTerminalNode()).cancelMatch( match,
reteEvaluator);
+ ((RuleTerminalNode)match.getTerminalNode()).cancelMatch( match);
}
public FactHandle getFactHandle(Object object) {
diff --git
a/drools-kiesession/src/test/java/org/drools/kiesession/NodeSegmentUnlinkingTest.java
b/drools-kiesession/src/test/java/org/drools/kiesession/NodeSegmentUnlinkingTest.java
index 82fb77049a..2bc17916d1 100644
---
a/drools-kiesession/src/test/java/org/drools/kiesession/NodeSegmentUnlinkingTest.java
+++
b/drools-kiesession/src/test/java/org/drools/kiesession/NodeSegmentUnlinkingTest.java
@@ -532,7 +532,7 @@ public class NodeSegmentUnlinkingTest {
n3.getRightInput().assertObject( f1, context, ksession );
// this doesn't unlink on the assertObject, as the node's memory must
be processed. So use the helper method the main network evaluator uses.
- PhreakNotNode.unlinkNotNodeOnRightInsert( (NotNode) n3, bm, ksession );
+ PhreakNotNode.unlinkNotNodeOnRightInsert( (NotNode) n3, bm );
assertThat(bm.getSegmentMemory().isSegmentLinked()).isFalse();
n3.getRightInput().retractRightTuple( f1.getFirstRightTuple(),
context, ksession );
diff --git
a/drools-serialization-protobuf/src/main/java/org/drools/serialization/protobuf/ProtobufInputMarshaller.java
b/drools-serialization-protobuf/src/main/java/org/drools/serialization/protobuf/ProtobufInputMarshaller.java
index 8a1de6c988..01cf029657 100644
---
a/drools-serialization-protobuf/src/main/java/org/drools/serialization/protobuf/ProtobufInputMarshaller.java
+++
b/drools-serialization-protobuf/src/main/java/org/drools/serialization/protobuf/ProtobufInputMarshaller.java
@@ -755,13 +755,13 @@ public class ProtobufInputMarshaller {
public void evaluateRNEAs(final InternalWorkingMemory wm) {
for ( RuleAgendaItem rai : rneaToFire ) {
- rai.getRuleExecutor().evaluateNetworkIfDirty( wm );
+ rai.getRuleExecutor().evaluateNetworkIfDirty( );
}
}
public void removeEmptyRNEAs(final InternalWorkingMemory wm) {
for ( RuleAgendaItem rai : rneaToFire ) {
- rai.getRuleExecutor().removeRuleAgendaItemWhenEmpty( wm );
+ rai.getRuleExecutor().removeRuleAgendaItemWhenEmpty( );
}
rneaToFire.clear();
}
@@ -769,8 +769,8 @@ public class ProtobufInputMarshaller {
public void fireRNEAs(final InternalWorkingMemory wm) {
for ( RuleAgendaItem rai : rneaToFire ) {
RuleExecutor ruleExecutor = rai.getRuleExecutor();
- ruleExecutor.evaluateNetworkIfDirty( wm );
- ruleExecutor.removeRuleAgendaItemWhenEmpty( wm );
+ ruleExecutor.evaluateNetworkIfDirty( );
+ ruleExecutor.removeRuleAgendaItemWhenEmpty( );
}
rneaToFire.clear();
}
diff --git
a/drools-serialization-protobuf/src/main/java/org/drools/serialization/protobuf/ProtobufOutputMarshaller.java
b/drools-serialization-protobuf/src/main/java/org/drools/serialization/protobuf/ProtobufOutputMarshaller.java
index 9fe389cd22..5f961bd548 100644
---
a/drools-serialization-protobuf/src/main/java/org/drools/serialization/protobuf/ProtobufOutputMarshaller.java
+++
b/drools-serialization-protobuf/src/main/java/org/drools/serialization/protobuf/ProtobufOutputMarshaller.java
@@ -239,8 +239,8 @@ public class ProtobufOutputMarshaller {
// this must clone as re-evaluation will under underlying
Collection
for ( RuleAgendaItem activation : new
ArrayList<>(wm.getAgenda().getAgendaGroupsManager().getActivations())) {
// evaluate it
- activation.getRuleExecutor().evaluateNetworkIfDirty( wm );
- activation.getRuleExecutor().removeRuleAgendaItemWhenEmpty( wm
);
+ activation.getRuleExecutor().evaluateNetworkIfDirty( );
+ activation.getRuleExecutor().removeRuleAgendaItemWhenEmpty( );
}
dirty = false;
// network evaluation with phreak and TMS may make previous
processed rules dirty again, so need to reprocess until all is flushed.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]