[jboss-svn-commits] JBL Code SVN: r25384 - 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
Mon Feb 23 09:53:31 EST 2009


Author: Rikkola
Date: 2009-02-23 09:53:30 -0500 (Mon, 23 Feb 2009)
New Revision: 25384

Added:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/AddEventListenerCommand.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/FireUntilHaltCommand.java
   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/GetEnvironmentCommand.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetFactHandleCommand.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetGlobalCommand.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetGlobalsCommand.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetKnowledgeBaseCommand.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetObjectCommand.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetProcessInstancesCommand.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetSessionClockCommand.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetWorkingMemoryEntryPointCommand.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/HaltCommand.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/RemoveEventListenerCommand.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/RetractCommand.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/UpdateCommand.java
Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/AbortWorkItemCommand.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/FireAllRulesCommand.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetObjectsCommand.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetProcessInstanceCommand.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/CommandBasedStatefulKnowledgeSession.java
Log:
JBRULES-1915: Improve process persistence usability

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/AbortWorkItemCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/AbortWorkItemCommand.java	2009-02-23 09:23:09 UTC (rev 25383)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/AbortWorkItemCommand.java	2009-02-23 14:53:30 UTC (rev 25384)
@@ -2,25 +2,27 @@
 
 import org.drools.StatefulSession;
 
-public class AbortWorkItemCommand implements Command<Object> {
-	
-	private long workItemId;
-	
-	public long getWorkItemId() {
-		return workItemId;
-	}
+public class AbortWorkItemCommand
+    implements
+    Command<Object> {
 
-	public void setWorkItemId(long workItemId) {
-		this.workItemId = workItemId;
-	}
+    private long workItemId;
 
-	public Object execute(StatefulSession session) {
-		session.getWorkItemManager().abortWorkItem(workItemId);
-		return null;
-	}
-	
-	public String toString() {
-		return "session.getWorkItemManager().abortWorkItem(" + workItemId + ");";
-	}
+    public long getWorkItemId() {
+        return workItemId;
+    }
 
+    public void setWorkItemId(long workItemId) {
+        this.workItemId = workItemId;
+    }
+
+    public Object execute(StatefulSession session) {
+        session.getWorkItemManager().abortWorkItem( workItemId );
+        return null;
+    }
+
+    public String toString() {
+        return "session.getWorkItemManager().abortWorkItem(" + workItemId + ");";
+    }
+
 }

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/AddEventListenerCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/AddEventListenerCommand.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/AddEventListenerCommand.java	2009-02-23 14:53:30 UTC (rev 25384)
@@ -0,0 +1,49 @@
+package org.drools.process.command;
+
+import org.drools.StatefulSession;
+import org.drools.event.process.ProcessEventListener;
+import org.drools.event.rule.AgendaEventListener;
+import org.drools.event.rule.WorkingMemoryEventListener;
+import org.drools.impl.StatefulKnowledgeSessionImpl;
+
+public class AddEventListenerCommand
+    implements
+    Command<Object> {
+
+    private WorkingMemoryEventListener workingMemoryEventlistener = null;
+    private AgendaEventListener        agendaEventlistener        = null;
+    private ProcessEventListener       processEventlistener       = null;
+
+    public AddEventListenerCommand(WorkingMemoryEventListener listener) {
+        this.workingMemoryEventlistener = listener;
+    }
+
+    public AddEventListenerCommand(AgendaEventListener listener) {
+        this.agendaEventlistener = listener;
+    }
+
+    public AddEventListenerCommand(ProcessEventListener listener) {
+        this.processEventlistener = listener;
+    }
+
+    public Object execute(StatefulSession session) {
+        if ( workingMemoryEventlistener != null ) {
+            session.addEventListener( new StatefulKnowledgeSessionImpl.WorkingMemoryEventListenerWrapper( workingMemoryEventlistener ) );
+        } else if ( agendaEventlistener != null ) {
+            session.addEventListener( new StatefulKnowledgeSessionImpl.AgendaEventListenerWrapper( agendaEventlistener ) );
+        } else {
+            session.addEventListener( new StatefulKnowledgeSessionImpl.ProcessEventListenerWrapper( processEventlistener ) );
+        }
+        return null;
+    }
+
+    public String toString() {
+        if ( workingMemoryEventlistener != null ) {
+            return "session.addEventListener( " + workingMemoryEventlistener + " );";
+        } else if ( agendaEventlistener != null ) {
+            return "session.addEventListener( " + agendaEventlistener + " );";
+        } else {
+            return "session.addEventListener( " + processEventlistener + " );";
+        }
+    }
+}

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/FireAllRulesCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/FireAllRulesCommand.java	2009-02-23 09:23:09 UTC (rev 25383)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/FireAllRulesCommand.java	2009-02-23 14:53:30 UTC (rev 25384)
@@ -1,20 +1,45 @@
 package org.drools.process.command;
 
 import org.drools.StatefulSession;
+import org.drools.impl.StatefulKnowledgeSessionImpl;
+import org.drools.runtime.rule.AgendaFilter;
 
 public class FireAllRulesCommand
     implements
     Command<Integer> {
 
+    private int          max          = -1;
+    private AgendaFilter agendaFilter = null;
+
     public FireAllRulesCommand() {
     }
 
+    public FireAllRulesCommand(int max) {
+        this.max = max;
+    }
+
+    public FireAllRulesCommand(AgendaFilter agendaFilter) {
+        this.agendaFilter = agendaFilter;
+    }
+
     public Integer execute(StatefulSession session) {
-        return session.fireAllRules();
+        if ( max > 0 ) {
+            return session.fireAllRules( max );
+        } else if ( agendaFilter != null ) {
+            return session.fireAllRules( new StatefulKnowledgeSessionImpl.AgendaFilterWrapper( agendaFilter ) );
+        } else {
+            return session.fireAllRules();
+        }
     }
 
     public String toString() {
-        return "session.fireAllRules();";
+        if ( max > 0 ) {
+            return "session.fireAllRules( " + max + " );";
+        } else if ( agendaFilter != null ) {
+            return "session.fireAllRules( " + agendaFilter + " );";
+        } else {
+            return "session.fireAllRules();";
+        }
     }
 
 }

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/FireUntilHaltCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/FireUntilHaltCommand.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/FireUntilHaltCommand.java	2009-02-23 14:53:30 UTC (rev 25384)
@@ -0,0 +1,37 @@
+package org.drools.process.command;
+
+import org.drools.StatefulSession;
+import org.drools.impl.StatefulKnowledgeSessionImpl;
+import org.drools.runtime.rule.AgendaFilter;
+
+public class FireUntilHaltCommand
+    implements
+    Command<Object> {
+
+    private AgendaFilter agendaFilter = null;
+
+    public FireUntilHaltCommand() {
+    }
+
+    public FireUntilHaltCommand(AgendaFilter agendaFilter) {
+        this.agendaFilter = agendaFilter;
+    }
+
+    public Object execute(StatefulSession session) {
+        if ( agendaFilter != null ) {
+            session.fireUntilHalt( new StatefulKnowledgeSessionImpl.AgendaFilterWrapper( agendaFilter ) );
+        } else {
+            session.fireUntilHalt();
+        }
+
+        return null;
+    }
+
+    public String toString() {
+        if ( agendaFilter != null ) {
+            return "session.fireUntilHalt( " + agendaFilter + " );";
+        } else {
+            return "session.fireUntilHalt();";
+        }
+    }
+}

Added: 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	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetAgendaCommand.java	2009-02-23 14:53:30 UTC (rev 25384)
@@ -0,0 +1,17 @@
+package org.drools.process.command;
+
+import org.drools.StatefulSession;
+import org.drools.runtime.rule.Agenda;
+
+public class GetAgendaCommand
+    implements
+    Command<Agenda> {
+
+    public Agenda execute(StatefulSession session) {
+        return session.getAgenda();
+    }
+
+    public String toString() {
+        return "session.getAgenda();";
+    }
+}

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetEnvironmentCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetEnvironmentCommand.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetEnvironmentCommand.java	2009-02-23 14:53:30 UTC (rev 25384)
@@ -0,0 +1,18 @@
+package org.drools.process.command;
+
+import org.drools.StatefulSession;
+import org.drools.runtime.Environment;
+
+public class GetEnvironmentCommand
+    implements
+    Command<Environment> {
+
+    public Environment execute(StatefulSession session) {
+        return session.getEnvironment();
+    }
+
+    public String toString() {
+        return "session.getEnvironment();";
+    }
+
+}

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetFactHandleCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetFactHandleCommand.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetFactHandleCommand.java	2009-02-23 14:53:30 UTC (rev 25384)
@@ -0,0 +1,24 @@
+package org.drools.process.command;
+
+import org.drools.StatefulSession;
+import org.drools.runtime.rule.FactHandle;
+
+public class GetFactHandleCommand
+    implements
+    Command<FactHandle> {
+
+    private Object object;
+
+    public GetFactHandleCommand(Object object) {
+        this.object = object;
+    }
+
+    public FactHandle execute(StatefulSession session) {
+        session.getFactHandle( object );
+        return null;
+    }
+
+    public String toString() {
+        return "session.getFactHandle( " + object + " );";
+    }
+}

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetGlobalCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetGlobalCommand.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetGlobalCommand.java	2009-02-23 14:53:30 UTC (rev 25384)
@@ -0,0 +1,22 @@
+package org.drools.process.command;
+
+import org.drools.StatefulSession;
+
+public class GetGlobalCommand
+    implements
+    Command<Object> {
+
+    private String identifier;
+
+    public GetGlobalCommand(String identifier) {
+        this.identifier = identifier;
+    }
+
+    public Object execute(StatefulSession session) {
+        return session.getGlobal( identifier );
+    }
+
+    public String toString() {
+        return "session.getGlobal( " + identifier + " );";
+    }
+}

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetGlobalsCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetGlobalsCommand.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetGlobalsCommand.java	2009-02-23 14:53:30 UTC (rev 25384)
@@ -0,0 +1,17 @@
+package org.drools.process.command;
+
+import org.drools.StatefulSession;
+import org.drools.runtime.Globals;
+
+public class GetGlobalsCommand
+    implements
+    Command<Globals> {
+
+    public Globals execute(StatefulSession session) {
+        return (Globals) session.getGlobalResolver();
+    }
+
+    public String toString() {
+        return "session.getGlobalResolver()";
+    }
+}

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetKnowledgeBaseCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetKnowledgeBaseCommand.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetKnowledgeBaseCommand.java	2009-02-23 14:53:30 UTC (rev 25384)
@@ -0,0 +1,25 @@
+package org.drools.process.command;
+
+import org.drools.KnowledgeBase;
+import org.drools.RuleBase;
+import org.drools.StatefulSession;
+import org.drools.impl.KnowledgeBaseImpl;
+
+public class GetKnowledgeBaseCommand
+    implements
+    Command<KnowledgeBase> {
+
+    public GetKnowledgeBaseCommand() {
+    }
+
+    public KnowledgeBase execute(StatefulSession session) {
+        RuleBase ruleBase = session.getRuleBase();
+
+        return new KnowledgeBaseImpl( ruleBase );
+    }
+
+    public String toString() {
+        return "session.getRuleBase();";
+    }
+
+}

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetObjectCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetObjectCommand.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetObjectCommand.java	2009-02-23 14:53:30 UTC (rev 25384)
@@ -0,0 +1,24 @@
+package org.drools.process.command;
+
+import org.drools.StatefulSession;
+import org.drools.runtime.rule.FactHandle;
+
+public class GetObjectCommand
+    implements
+    Command<Object> {
+
+    private FactHandle factHandle;
+
+    public GetObjectCommand(FactHandle factHandle) {
+        this.factHandle = factHandle;
+    }
+
+    public Object execute(StatefulSession session) {
+        return session.getObject( factHandle );
+    }
+
+    public String toString() {
+        return "session.getObject( " + factHandle + " );";
+    }
+
+}

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetObjectsCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetObjectsCommand.java	2009-02-23 09:23:09 UTC (rev 25383)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetObjectsCommand.java	2009-02-23 14:53:30 UTC (rev 25384)
@@ -3,18 +3,35 @@
 import java.util.Iterator;
 
 import org.drools.StatefulSession;
+import org.drools.runtime.ObjectFilter;
 
-public class GetObjectsCommand implements Command<Iterator<?>> {
+public class GetObjectsCommand
+    implements
+    Command<Iterator< ? >> {
 
-	public GetObjectsCommand() {
-	}
-	
-	public Iterator<?> execute(StatefulSession session) {
-		return session.iterateObjects();
-	}
-	
-	public String toString() {
-		return "session.iterateObjects();";
-	}
+    private ObjectFilter filter = null;
 
+    public GetObjectsCommand() {
+    }
+
+    public GetObjectsCommand(ObjectFilter filter) {
+        this.filter = filter;
+    }
+
+    public Iterator< ? > execute(StatefulSession session) {
+        if ( filter != null ) {
+            return session.iterateObjects( filter );
+        } else {
+            return session.iterateObjects();
+        }
+    }
+
+    public String toString() {
+        if ( filter != null ) {
+            return "session.iterateObjects( " + filter + " );";
+        } else {
+            return "session.iterateObjects();";
+        }
+    }
+
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetProcessInstanceCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetProcessInstanceCommand.java	2009-02-23 09:23:09 UTC (rev 25383)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetProcessInstanceCommand.java	2009-02-23 14:53:30 UTC (rev 25384)
@@ -1,7 +1,5 @@
 package org.drools.process.command;
 
-import java.util.Map;
-
 import org.drools.StatefulSession;
 import org.drools.process.instance.ProcessInstance;
 

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetProcessInstancesCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetProcessInstancesCommand.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetProcessInstancesCommand.java	2009-02-23 14:53:30 UTC (rev 25384)
@@ -0,0 +1,28 @@
+package org.drools.process.command;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.drools.StatefulSession;
+import org.drools.runtime.process.ProcessInstance;
+
+public class GetProcessInstancesCommand
+    implements
+    Command<Collection<ProcessInstance>> {
+
+    public Collection<ProcessInstance> execute(StatefulSession session) {
+        Collection<org.drools.process.instance.ProcessInstance> instances = session.getProcessInstances();
+        Collection<ProcessInstance> result = new ArrayList<ProcessInstance>();
+
+        for ( ProcessInstance instance : instances ) {
+            result.add( instance );
+        }
+
+        return result;
+    }
+
+    public String toString() {
+        return "session.getProcessInstances();";
+    }
+
+}

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetSessionClockCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetSessionClockCommand.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetSessionClockCommand.java	2009-02-23 14:53:30 UTC (rev 25384)
@@ -0,0 +1,17 @@
+package org.drools.process.command;
+
+import org.drools.StatefulSession;
+import org.drools.time.SessionClock;
+
+public class GetSessionClockCommand
+    implements
+    Command<SessionClock> {
+
+    public SessionClock execute(StatefulSession session) {
+        return session.getSessionClock();
+    }
+
+    public String toString() {
+        return "session.getSessionClock();";
+    }
+}

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetWorkingMemoryEntryPointCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetWorkingMemoryEntryPointCommand.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetWorkingMemoryEntryPointCommand.java	2009-02-23 14:53:30 UTC (rev 25384)
@@ -0,0 +1,23 @@
+package org.drools.process.command;
+
+import org.drools.StatefulSession;
+import org.drools.runtime.rule.WorkingMemoryEntryPoint;
+
+public class GetWorkingMemoryEntryPointCommand
+    implements
+    Command<WorkingMemoryEntryPoint> {
+
+    private String name;
+
+    public GetWorkingMemoryEntryPointCommand(String name) {
+        this.name = name;
+    }
+
+    public WorkingMemoryEntryPoint execute(StatefulSession session) {
+        return session.getWorkingMemoryEntryPoint( name );
+    }
+
+    public String toString() {
+        return "session.getWorkingMemoryEntryPoint( " + name + " );";
+    }
+}

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/HaltCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/HaltCommand.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/HaltCommand.java	2009-02-23 14:53:30 UTC (rev 25384)
@@ -0,0 +1,17 @@
+package org.drools.process.command;
+
+import org.drools.StatefulSession;
+
+public class HaltCommand
+    implements
+    Command<Object> {
+
+    public Object execute(StatefulSession session) {
+        session.halt();
+        return null;
+    }
+
+    public String toString() {
+        return "session.halt();";
+    }
+}

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/RemoveEventListenerCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/RemoveEventListenerCommand.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/RemoveEventListenerCommand.java	2009-02-23 14:53:30 UTC (rev 25384)
@@ -0,0 +1,49 @@
+package org.drools.process.command;
+
+import org.drools.StatefulSession;
+import org.drools.event.process.ProcessEventListener;
+import org.drools.event.rule.AgendaEventListener;
+import org.drools.event.rule.WorkingMemoryEventListener;
+import org.drools.impl.StatefulKnowledgeSessionImpl;
+
+public class RemoveEventListenerCommand
+    implements
+    Command<Object> {
+
+    private WorkingMemoryEventListener workingMemoryEventListener = null;
+    private AgendaEventListener        agendaEventListener        = null;
+    private ProcessEventListener       processEventListener       = null;
+
+    public RemoveEventListenerCommand(WorkingMemoryEventListener listener) {
+        this.workingMemoryEventListener = listener;
+    }
+
+    public RemoveEventListenerCommand(AgendaEventListener listener) {
+        this.agendaEventListener = listener;
+    }
+
+    public RemoveEventListenerCommand(ProcessEventListener listener) {
+        this.processEventListener = listener;
+    }
+
+    public Object execute(StatefulSession session) {
+        if ( workingMemoryEventListener != null ) {
+            session.removeEventListener( new StatefulKnowledgeSessionImpl.WorkingMemoryEventListenerWrapper( workingMemoryEventListener ) );
+        } else if ( agendaEventListener != null ) {
+            session.removeEventListener( new StatefulKnowledgeSessionImpl.AgendaEventListenerWrapper( agendaEventListener ) );
+        } else {
+            session.removeEventListener( new StatefulKnowledgeSessionImpl.ProcessEventListenerWrapper( processEventListener ) );
+        }
+        return null;
+    }
+
+    public String toString() {
+        if ( workingMemoryEventListener != null ) {
+            return "session.removeEventListener( " + workingMemoryEventListener + " );";
+        } else if ( agendaEventListener != null ) {
+            return "session.removeEventListener( " + agendaEventListener + " );";
+        } else {
+            return "session.removeEventListener( " + processEventListener + " );";
+        }
+    }
+}

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/RetractCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/RetractCommand.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/RetractCommand.java	2009-02-23 14:53:30 UTC (rev 25384)
@@ -0,0 +1,24 @@
+package org.drools.process.command;
+
+import org.drools.StatefulSession;
+import org.drools.runtime.rule.FactHandle;
+
+public class RetractCommand
+    implements
+    Command<Object> {
+
+    private FactHandle handle;
+
+    public RetractCommand(FactHandle handle) {
+        this.handle = handle;
+    }
+
+    public Object execute(StatefulSession session) {
+        session.retract( handle );
+        return null;
+    }
+
+    public String toString() {
+        return "session.retract( " + handle + " );";
+    }
+}

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/UpdateCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/UpdateCommand.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/UpdateCommand.java	2009-02-23 14:53:30 UTC (rev 25384)
@@ -0,0 +1,28 @@
+package org.drools.process.command;
+
+import org.drools.StatefulSession;
+import org.drools.runtime.rule.FactHandle;
+
+public class UpdateCommand
+    implements
+    Command<Object> {
+
+    private FactHandle handle;
+    private Object     object;
+
+    public UpdateCommand(FactHandle handle,
+                         Object object) {
+        this.handle = handle;
+        this.object = object;
+    }
+
+    public Object execute(StatefulSession session) {
+        session.update( handle,
+                        object );
+        return null;
+    }
+
+    public String toString() {
+        return "session.update( " + handle + ", " + object + " );";
+    }
+}

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-02-23 09:23:09 UTC (rev 25383)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/CommandBasedStatefulKnowledgeSession.java	2009-02-23 14:53:30 UTC (rev 25384)
@@ -10,16 +10,32 @@
 import org.drools.event.rule.AgendaEventListener;
 import org.drools.event.rule.WorkingMemoryEventListener;
 import org.drools.process.command.AbortWorkItemCommand;
+import org.drools.process.command.AddEventListenerCommand;
 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.GetEnvironmentCommand;
+import org.drools.process.command.GetFactHandleCommand;
+import org.drools.process.command.GetGlobalCommand;
+import org.drools.process.command.GetGlobalsCommand;
+import org.drools.process.command.GetKnowledgeBaseCommand;
+import org.drools.process.command.GetObjectCommand;
 import org.drools.process.command.GetObjectsCommand;
 import org.drools.process.command.GetProcessInstanceCommand;
+import org.drools.process.command.GetProcessInstancesCommand;
+import org.drools.process.command.GetSessionClockCommand;
+import org.drools.process.command.GetWorkingMemoryEntryPointCommand;
+import org.drools.process.command.HaltCommand;
 import org.drools.process.command.InsertObjectCommand;
 import org.drools.process.command.RegisterWorkItemHandlerCommand;
+import org.drools.process.command.RemoveEventListenerCommand;
+import org.drools.process.command.RetractCommand;
 import org.drools.process.command.SetGlobalCommand;
 import org.drools.process.command.SignalEventCommand;
 import org.drools.process.command.StartProcessCommand;
+import org.drools.process.command.UpdateCommand;
 import org.drools.runtime.Environment;
 import org.drools.runtime.ExitPoint;
 import org.drools.runtime.Globals;
@@ -34,218 +50,241 @@
 import org.drools.runtime.rule.WorkingMemoryEntryPoint;
 import org.drools.time.SessionClock;
 
-public class CommandBasedStatefulKnowledgeSession implements StatefulKnowledgeSession {
+public class CommandBasedStatefulKnowledgeSession
+    implements
+    StatefulKnowledgeSession {
 
-	private CommandService commandService;
-	private transient WorkItemManager workItemManager;
-	
-	public CommandBasedStatefulKnowledgeSession(CommandService commandService) {
-		this.commandService = commandService;
-	}
-	
-	public ProcessInstance getProcessInstance(long id) {
-		GetProcessInstanceCommand command = new GetProcessInstanceCommand();
-		command.setProcessInstanceId(id);
-		return commandService.execute(command);
-	}
+    private CommandService            commandService;
+    private transient WorkItemManager workItemManager;
 
-	public CommandService getCommandService() {
-		return commandService;
-	}
-	
-	public Collection<ProcessInstance> getProcessInstances() {
-		throw new UnsupportedOperationException();
-	}
+    public CommandBasedStatefulKnowledgeSession(CommandService commandService) {
+        this.commandService = commandService;
+    }
 
-	public WorkItemManager getWorkItemManager() {
-		if (workItemManager == null) {
-			workItemManager = new WorkItemManager() {
-				public void completeWorkItem(long id, Map<String, Object> results) {
-					CompleteWorkItemCommand command = new CompleteWorkItemCommand();
-					command.setWorkItemId(id);
-					command.setResults(results);
-					commandService.execute(command);
-				}
-				public void abortWorkItem(long id) {
-					AbortWorkItemCommand command = new AbortWorkItemCommand();
-					command.setWorkItemId(id);
-					commandService.execute(command);
-				}
-				public void registerWorkItemHandler(String workItemName, WorkItemHandler handler) {
-					RegisterWorkItemHandlerCommand command = new RegisterWorkItemHandlerCommand();
-					command.setWorkItemName(workItemName);
-					command.setHandler(handler);
-					commandService.execute(command);
-				}
-			};
-		}
-		return workItemManager;
-	}
+    public ProcessInstance getProcessInstance(long id) {
+        GetProcessInstanceCommand command = new GetProcessInstanceCommand();
+        command.setProcessInstanceId( id );
+        return commandService.execute( command );
+    }
 
-	public void signalEvent(String type, Object event) {
-		SignalEventCommand command = new SignalEventCommand();
-		command.setEventType(type);
-		command.setEvent(event);
-		commandService.execute(command);
-	}
+    public CommandService getCommandService() {
+        return commandService;
+    }
 
-	public ProcessInstance startProcess(String processId) {
-		return startProcess(processId, null);
-	}
+    public Collection<ProcessInstance> getProcessInstances() {
+        return this.commandService.execute( new GetProcessInstancesCommand() );
+    }
 
-	public ProcessInstance startProcess(String processId,
-			Map<String, Object> parameters) {
-		StartProcessCommand command = new StartProcessCommand();
-		command.setProcessId(processId);
-		command.setParameters(parameters);
-		return commandService.execute(command);
-	}
+    public WorkItemManager getWorkItemManager() {
+        if ( workItemManager == null ) {
+            workItemManager = new WorkItemManager() {
+                public void completeWorkItem(long id,
+                                             Map<String, Object> results) {
+                    CompleteWorkItemCommand command = new CompleteWorkItemCommand();
+                    command.setWorkItemId( id );
+                    command.setResults( results );
+                    commandService.execute( command );
+                }
 
-	public void dispose() {
-		commandService.dispose();
-	}
+                public void abortWorkItem(long id) {
+                    AbortWorkItemCommand command = new AbortWorkItemCommand();
+                    command.setWorkItemId( id );
+                    commandService.execute( command );
+                }
 
-	public int fireAllRules() {	    
-		return this.commandService.execute( new FireAllRulesCommand() ); 
-	}
+                public void registerWorkItemHandler(String workItemName,
+                                                    WorkItemHandler handler) {
+                    RegisterWorkItemHandlerCommand command = new RegisterWorkItemHandlerCommand();
+                    command.setWorkItemName( workItemName );
+                    command.setHandler( handler );
+                    commandService.execute( command );
+                }
+            };
+        }
+        return workItemManager;
+    }
 
-	public int fireAllRules(int max) {
-		throw new UnsupportedOperationException();
-	}
+    public void signalEvent(String type,
+                            Object event) {
+        SignalEventCommand command = new SignalEventCommand();
+        command.setEventType( type );
+        command.setEvent( event );
+        commandService.execute( command );
+    }
 
-	public int fireAllRules(AgendaFilter agendaFilter) {
-		throw new UnsupportedOperationException();
-	}
+    public ProcessInstance startProcess(String processId) {
+        return startProcess( processId,
+                             null );
+    }
 
-	public void fireUntilHalt() {
-		throw new UnsupportedOperationException();
-	}
+    public ProcessInstance startProcess(String processId,
+                                        Map<String, Object> parameters) {
+        StartProcessCommand command = new StartProcessCommand();
+        command.setProcessId( processId );
+        command.setParameters( parameters );
+        return commandService.execute( command );
+    }
 
-	public void fireUntilHalt(AgendaFilter agendaFilter) {
-		throw new UnsupportedOperationException();
-	}
+    public void dispose() {
+        commandService.dispose();
+    }
 
-	public KnowledgeBase getKnowledgeBase() {
-		throw new UnsupportedOperationException();
-	}
+    public int fireAllRules() {
+        return this.commandService.execute( new FireAllRulesCommand() );
+    }
 
-	public void registerExitPoint(String name, ExitPoint exitPoint) {
-		throw new UnsupportedOperationException();
-	}
+    public int fireAllRules(int max) {
+        return this.commandService.execute( new FireAllRulesCommand( max ) );
+    }
 
-	public void unregisterExitPoint(String name) {
-		throw new UnsupportedOperationException();
-	}
+    public int fireAllRules(AgendaFilter agendaFilter) {
+        return this.commandService.execute( new FireAllRulesCommand( agendaFilter ) );
+    }
 
-	public Agenda getAgenda() {
-		throw new UnsupportedOperationException();
-	}
+    public void fireUntilHalt() {
+        this.commandService.execute( new FireUntilHaltCommand() );
+    }
 
-	public FactHandle getFactHandle(Object object) {
-		throw new UnsupportedOperationException();
-	}
+    public void fireUntilHalt(AgendaFilter agendaFilter) {
+        this.commandService.execute( new FireUntilHaltCommand( agendaFilter ) );
+    }
 
-	public Collection<? extends FactHandle> getFactHandles() {
-		throw new UnsupportedOperationException();
-	}
+    public KnowledgeBase getKnowledgeBase() {
+        return this.commandService.execute( new GetKnowledgeBaseCommand() );
+    }
 
-	public Collection<? extends FactHandle> getFactHandles(ObjectFilter filter) {
-		throw new UnsupportedOperationException();
-	}
+    public void registerExitPoint(String name,
+                                  ExitPoint exitPoint) {
+        throw new UnsupportedOperationException();
 
-	public Collection<?> getObjects() {
-		Collection<Object> result = new ArrayList<Object>();
-		Iterator<?> iterator = commandService.execute(new GetObjectsCommand());
-		if (iterator != null) {
-			while (iterator.hasNext()) {
-				result.add(iterator.next());
-			}
-		}
-		return result;
-	}
+    }
 
-	public Collection<?> getObjects(ObjectFilter filter) {
-		throw new UnsupportedOperationException();
-	}
+    public void unregisterExitPoint(String name) {
+        throw new UnsupportedOperationException();
 
-	public SessionClock getSessionClock() {
-		throw new UnsupportedOperationException();
-	}
+    }
 
-	public WorkingMemoryEntryPoint getWorkingMemoryEntryPoint(String name) {
-		throw new UnsupportedOperationException();
-	}
+    public Agenda getAgenda() {
+        return this.commandService.execute( new GetAgendaCommand() );
+    }
 
-	public void halt() {
-		throw new UnsupportedOperationException();
-	}
+    public FactHandle getFactHandle(Object object) {
+        return this.commandService.execute( new GetFactHandleCommand( object ) );
+    }
 
-	public FactHandle insert(Object object) {
-		return commandService.execute(new InsertObjectCommand(object));
-	}
+    public Collection< ? extends FactHandle> getFactHandles() {
+        throw new UnsupportedOperationException();
 
-	public void retract(FactHandle handle) {
-		throw new UnsupportedOperationException();
-	}
+    }
 
-	public void update(FactHandle handle, Object object) {
-		throw new UnsupportedOperationException();
-	}
+    public Collection< ? extends FactHandle> getFactHandles(ObjectFilter filter) {
+        throw new UnsupportedOperationException();
+    }
 
-	public void addEventListener(WorkingMemoryEventListener listener) {
-		throw new UnsupportedOperationException();
-	}
+    public Collection< ? > getObjects() {
+        Collection<Object> result = new ArrayList<Object>();
+        Iterator< ? > iterator = commandService.execute( new GetObjectsCommand() );
+        if ( iterator != null ) {
+            while ( iterator.hasNext() ) {
+                result.add( iterator.next() );
+            }
+        }
+        return result;
+    }
 
-	public void addEventListener(AgendaEventListener listener) {
-		throw new UnsupportedOperationException();
-	}
+    public Collection< ? > getObjects(ObjectFilter filter) {
+        Collection<Object> result = new ArrayList<Object>();
+        Iterator< ? > iterator = commandService.execute( new GetObjectsCommand( filter ) );
+        if ( iterator != null ) {
+            while ( iterator.hasNext() ) {
+                result.add( iterator.next() );
+            }
+        }
+        return result;
+    }
 
-	public Collection<AgendaEventListener> getAgendaEventListeners() {
-		throw new UnsupportedOperationException();
-	}
+    public SessionClock getSessionClock() {
+        return this.commandService.execute( new GetSessionClockCommand() );
+    }
 
-	public Collection<WorkingMemoryEventListener> getWorkingMemoryEventListeners() {
-		throw new UnsupportedOperationException();
-	}
+    public WorkingMemoryEntryPoint getWorkingMemoryEntryPoint(String name) {
+        return this.commandService.execute( new GetWorkingMemoryEntryPointCommand( name ) );
+    }
 
-	public void removeEventListener(WorkingMemoryEventListener listener) {
-		throw new UnsupportedOperationException();
-	}
+    public void halt() {
+        this.commandService.execute( new HaltCommand() );
+    }
 
-	public void removeEventListener(AgendaEventListener listener) {
-		throw new UnsupportedOperationException();
-	}
+    public FactHandle insert(Object object) {
+        return commandService.execute( new InsertObjectCommand( object ) );
+    }
 
-	public void addEventListener(ProcessEventListener listener) {
-		throw new UnsupportedOperationException();
-	}
+    public void retract(FactHandle handle) {
+        commandService.execute( new RetractCommand( handle ) );
+    }
 
-	public Collection<ProcessEventListener> getProcessEventListeners() {
-		throw new UnsupportedOperationException();
-	}
+    public void update(FactHandle handle,
+                       Object object) {
+        commandService.execute( new UpdateCommand( handle,
+                                                   object ) );
+    }
 
-	public void removeEventListener(ProcessEventListener listener) {
-		throw new UnsupportedOperationException();
-	}
+    public void addEventListener(WorkingMemoryEventListener listener) {
+        commandService.execute( new AddEventListenerCommand( listener ) );
+    }
 
-	public Object getGlobal(String identifier) {
-		throw new UnsupportedOperationException();
-	}
-	
-    public void setGlobal(String identifier, Object object) {
-        this.commandService.execute( new SetGlobalCommand(identifier, object) );
+    public void addEventListener(AgendaEventListener listener) {
+        commandService.execute( new AddEventListenerCommand( listener ) );
     }
 
-    public Globals getGlobals() {
+    public Collection<AgendaEventListener> getAgendaEventListeners() {
         throw new UnsupportedOperationException();
-    }	
+    }
 
-	public Object getObject(FactHandle factHandle) {
-		throw new UnsupportedOperationException();
-	}
+    public Collection<WorkingMemoryEventListener> getWorkingMemoryEventListeners() {
+        throw new UnsupportedOperationException();
+    }
 
-	public Environment getEnvironment() {
-		throw new UnsupportedOperationException();
-	}
+    public void removeEventListener(WorkingMemoryEventListener listener) {
+        commandService.execute( new RemoveEventListenerCommand( listener ) );
+    }
 
+    public void removeEventListener(AgendaEventListener listener) {
+        commandService.execute( new RemoveEventListenerCommand( listener ) );
+    }
+
+    public void addEventListener(ProcessEventListener listener) {
+        commandService.execute( new AddEventListenerCommand( listener ) );
+    }
+
+    public Collection<ProcessEventListener> getProcessEventListeners() {
+        throw new UnsupportedOperationException();
+    }
+
+    public void removeEventListener(ProcessEventListener listener) {
+        commandService.execute( new RemoveEventListenerCommand( listener ) );
+    }
+
+    public Object getGlobal(String identifier) {
+        return commandService.execute( new GetGlobalCommand( identifier ) );
+    }
+
+    public void setGlobal(String identifier,
+                          Object object) {
+        this.commandService.execute( new SetGlobalCommand( identifier,
+                                                           object ) );
+    }
+
+    public Globals getGlobals() {
+        return commandService.execute( new GetGlobalsCommand() );
+    }
+
+    public Object getObject(FactHandle factHandle) {
+        return commandService.execute( new GetObjectCommand( factHandle ) );
+    }
+
+    public Environment getEnvironment() {
+        return commandService.execute( new GetEnvironmentCommand() );
+    }
+
 }
\ No newline at end of file




More information about the jboss-svn-commits mailing list