[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