[jboss-svn-commits] JBL Code SVN: r26043 - in labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command: impl and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Apr 15 13:47:50 EDT 2009
Author: KrisVerlaenen
Date: 2009-04-15 13:47:50 -0400 (Wed, 15 Apr 2009)
New Revision: 26043
Added:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/AgendaGroupSetFocusCommand.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/ClearActivationGroupCommand.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/ClearAgendaCommand.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/ClearAgendaGroupCommand.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/ClearRuleFlowGroupCommand.java
Removed:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetAgendaCommand.java
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/CommandBasedStatefulKnowledgeSession.java
Log:
- made sure command-based impl. also uses command for agenda methods
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/AgendaGroupSetFocusCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/AgendaGroupSetFocusCommand.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/AgendaGroupSetFocusCommand.java 2009-04-15 17:47:50 UTC (rev 26043)
@@ -0,0 +1,28 @@
+package org.drools.process.command;
+
+import org.drools.common.InternalAgenda;
+import org.drools.reteoo.ReteooWorkingMemory;
+import org.drools.runtime.rule.impl.AgendaImpl;
+
+public class AgendaGroupSetFocusCommand implements Command<Object> {
+
+ private String name;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Object execute(ReteooWorkingMemory session) {
+ new AgendaImpl((InternalAgenda) session.getAgenda()).getAgendaGroup(name).setFocus();
+ return null;
+ }
+
+ public String toString() {
+ return "session.getAgenda().getAgendaGroup(" + name + ").setFocus();";
+ }
+
+}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/ClearActivationGroupCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/ClearActivationGroupCommand.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/ClearActivationGroupCommand.java 2009-04-15 17:47:50 UTC (rev 26043)
@@ -0,0 +1,28 @@
+package org.drools.process.command;
+
+import org.drools.common.InternalAgenda;
+import org.drools.reteoo.ReteooWorkingMemory;
+import org.drools.runtime.rule.impl.AgendaImpl;
+
+public class ClearActivationGroupCommand implements Command<Object> {
+
+ private String name;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Object execute(ReteooWorkingMemory session) {
+ new AgendaImpl((InternalAgenda) session.getAgenda()).getActivationGroup(name).clear();
+ return null;
+ }
+
+ public String toString() {
+ return "session.getAgenda().getActivationGroup(" + name + ").clear();";
+ }
+
+}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/ClearAgendaCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/ClearAgendaCommand.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/ClearAgendaCommand.java 2009-04-15 17:47:50 UTC (rev 26043)
@@ -0,0 +1,18 @@
+package org.drools.process.command;
+
+import org.drools.common.InternalAgenda;
+import org.drools.reteoo.ReteooWorkingMemory;
+import org.drools.runtime.rule.impl.AgendaImpl;
+
+public class ClearAgendaCommand implements Command<Object> {
+
+ public Object execute(ReteooWorkingMemory session) {
+ new AgendaImpl((InternalAgenda) session.getAgenda()).clear();
+ return null;
+ }
+
+ public String toString() {
+ return "session.getAgenda().clear();";
+ }
+
+}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/ClearAgendaGroupCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/ClearAgendaGroupCommand.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/ClearAgendaGroupCommand.java 2009-04-15 17:47:50 UTC (rev 26043)
@@ -0,0 +1,28 @@
+package org.drools.process.command;
+
+import org.drools.common.InternalAgenda;
+import org.drools.reteoo.ReteooWorkingMemory;
+import org.drools.runtime.rule.impl.AgendaImpl;
+
+public class ClearAgendaGroupCommand implements Command<Object> {
+
+ private String name;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Object execute(ReteooWorkingMemory session) {
+ new AgendaImpl((InternalAgenda) session.getAgenda()).getAgendaGroup(name).clear();
+ return null;
+ }
+
+ public String toString() {
+ return "session.getAgenda().getAgendaGroup(" + name + ").clear();";
+ }
+
+}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/ClearRuleFlowGroupCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/ClearRuleFlowGroupCommand.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/ClearRuleFlowGroupCommand.java 2009-04-15 17:47:50 UTC (rev 26043)
@@ -0,0 +1,28 @@
+package org.drools.process.command;
+
+import org.drools.common.InternalAgenda;
+import org.drools.reteoo.ReteooWorkingMemory;
+import org.drools.runtime.rule.impl.AgendaImpl;
+
+public class ClearRuleFlowGroupCommand implements Command<Object> {
+
+ private String name;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Object execute(ReteooWorkingMemory session) {
+ new AgendaImpl((InternalAgenda) session.getAgenda()).getRuleFlowGroup(name).clear();
+ return null;
+ }
+
+ public String toString() {
+ return "session.getAgenda().getRuleFlowGroup(" + name + ").clear();";
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetAgendaCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetAgendaCommand.java 2009-04-15 15:45:02 UTC (rev 26042)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetAgendaCommand.java 2009-04-15 17:47:50 UTC (rev 26043)
@@ -1,19 +0,0 @@
-package org.drools.process.command;
-
-import org.drools.common.InternalAgenda;
-import org.drools.reteoo.ReteooWorkingMemory;
-import org.drools.runtime.rule.Agenda;
-import org.drools.runtime.rule.impl.AgendaImpl;
-
-public class GetAgendaCommand
- implements
- Command<Agenda> {
-
- public Agenda execute(ReteooWorkingMemory session) {
- return new AgendaImpl( (InternalAgenda) session.getAgenda() );
- }
-
- public String toString() {
- return "ksession.getAgenda();";
- }
-}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/CommandBasedStatefulKnowledgeSession.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/CommandBasedStatefulKnowledgeSession.java 2009-04-15 15:45:02 UTC (rev 26042)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/CommandBasedStatefulKnowledgeSession.java 2009-04-15 17:47:50 UTC (rev 26043)
@@ -16,11 +16,15 @@
import org.drools.impl.StatefulKnowledgeSessionImpl.WorkingMemoryEventListenerWrapper;
import org.drools.process.command.AbortWorkItemCommand;
import org.drools.process.command.AddEventListenerCommand;
+import org.drools.process.command.AgendaGroupSetFocusCommand;
+import org.drools.process.command.ClearActivationGroupCommand;
+import org.drools.process.command.ClearAgendaCommand;
+import org.drools.process.command.ClearAgendaGroupCommand;
+import org.drools.process.command.ClearRuleFlowGroupCommand;
import org.drools.process.command.CommandService;
import org.drools.process.command.CompleteWorkItemCommand;
import org.drools.process.command.FireAllRulesCommand;
import org.drools.process.command.FireUntilHaltCommand;
-import org.drools.process.command.GetAgendaCommand;
import org.drools.process.command.GetAgendaEventListenersCommand;
import org.drools.process.command.GetEnvironmentCommand;
import org.drools.process.command.GetFactHandleCommand;
@@ -50,8 +54,8 @@
import org.drools.process.command.UnregisterExitPointCommand;
import org.drools.process.command.UpdateCommand;
import org.drools.reteoo.ReteooWorkingMemory;
+import org.drools.runtime.Environment;
import org.drools.runtime.ExecutionResults;
-import org.drools.runtime.Environment;
import org.drools.runtime.ExitPoint;
import org.drools.runtime.Globals;
import org.drools.runtime.ObjectFilter;
@@ -59,10 +63,13 @@
import org.drools.runtime.process.ProcessInstance;
import org.drools.runtime.process.WorkItemHandler;
import org.drools.runtime.process.WorkItemManager;
+import org.drools.runtime.rule.ActivationGroup;
import org.drools.runtime.rule.Agenda;
import org.drools.runtime.rule.AgendaFilter;
+import org.drools.runtime.rule.AgendaGroup;
import org.drools.runtime.rule.FactHandle;
import org.drools.runtime.rule.QueryResults;
+import org.drools.runtime.rule.RuleFlowGroup;
import org.drools.runtime.rule.WorkingMemoryEntryPoint;
import org.drools.time.SessionClock;
@@ -72,6 +79,7 @@
private CommandService commandService;
private transient WorkItemManager workItemManager;
+ private transient Agenda agenda;
public Map<WorkingMemoryEventListener, WorkingMemoryEventListenerWrapper> mappedWorkingMemoryListeners = new HashMap<WorkingMemoryEventListener, WorkingMemoryEventListenerWrapper>();
public Map<AgendaEventListener, AgendaEventListenerWrapper> mappedAgendaListeners = new HashMap<AgendaEventListener, AgendaEventListenerWrapper>();
@@ -189,7 +197,59 @@
}
public Agenda getAgenda() {
- return this.commandService.execute( new GetAgendaCommand() );
+ if ( agenda == null ) {
+ agenda = new Agenda() {
+ public void clear() {
+ ClearAgendaCommand command = new ClearAgendaCommand();
+ commandService.execute( command );
+ }
+
+ public ActivationGroup getActivationGroup(final String name) {
+ return new ActivationGroup() {
+ public void clear() {
+ ClearActivationGroupCommand command = new ClearActivationGroupCommand();
+ command.setName(name);
+ commandService.execute( command );
+ }
+ public String getName() {
+ return name;
+ }
+ };
+ }
+
+ public AgendaGroup getAgendaGroup(final String name) {
+ return new AgendaGroup() {
+ public void clear() {
+ ClearAgendaGroupCommand command = new ClearAgendaGroupCommand();
+ command.setName(name);
+ commandService.execute( command );
+ }
+ public String getName() {
+ return name;
+ }
+ public void setFocus() {
+ AgendaGroupSetFocusCommand command = new AgendaGroupSetFocusCommand();
+ command.setName(name);
+ commandService.execute( command );
+ }
+ };
+ }
+
+ public RuleFlowGroup getRuleFlowGroup(final String name) {
+ return new RuleFlowGroup() {
+ public void clear() {
+ ClearRuleFlowGroupCommand command = new ClearRuleFlowGroupCommand();
+ command.setName(name);
+ commandService.execute( command );
+ }
+ public String getName() {
+ return name;
+ }
+ };
+ }
+ };
+ }
+ return agenda;
}
public FactHandle getFactHandle(Object object) {
More information about the jboss-svn-commits
mailing list