[jbpm-commits] JBoss JBPM SVN: r3392 - jbpm3/trunk/modules/core/src/main/java/org/jbpm/command.

do-not-reply at jboss.org do-not-reply at jboss.org
Mon Dec 15 11:00:48 EST 2008


Author: camunda
Date: 2008-12-15 11:00:47 -0500 (Mon, 15 Dec 2008)
New Revision: 3392

Modified:
   jbpm3/trunk/modules/core/src/main/java/org/jbpm/command/AbstractCancelCommand.java
   jbpm3/trunk/modules/core/src/main/java/org/jbpm/command/CancelProcessInstanceCommand.java
   jbpm3/trunk/modules/core/src/main/java/org/jbpm/command/CancelTokenCommand.java
Log:
JBPM-1904/JBPM-1905
- Added cancel indicator variable to CancelTokenCommand as well
- Added correct toString to AbstractCancelCommand

Modified: jbpm3/trunk/modules/core/src/main/java/org/jbpm/command/AbstractCancelCommand.java
===================================================================
--- jbpm3/trunk/modules/core/src/main/java/org/jbpm/command/AbstractCancelCommand.java	2008-12-15 13:45:46 UTC (rev 3391)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/command/AbstractCancelCommand.java	2008-12-15 16:00:47 UTC (rev 3392)
@@ -1,6 +1,5 @@
 package org.jbpm.command;
 
-import java.io.Serializable;
 import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
@@ -12,11 +11,18 @@
 import org.jbpm.graph.exe.Token;
 import org.jbpm.taskmgmt.exe.TaskInstance;
 
-public class AbstractCancelCommand implements Serializable
+public abstract class AbstractCancelCommand extends AbstractBaseCommand
 {
 
   private static final long serialVersionUID = 1L;
 
+  /**
+   * Name of a standardized process variable which is written during cancellation
+   * in order to indicate that this process has been 'canceled' and not just ended.
+   * Value of the variable is the timestamp of cancellation.
+   */
+  public static String CANCELLATION_INDICATOR_VARIABLE_NAME = "canceled";
+
   protected transient JbpmContext jbpmContext = null;
 
   protected static final Log log = LogFactory.getLog(AbstractCancelCommand.class);

Modified: jbpm3/trunk/modules/core/src/main/java/org/jbpm/command/CancelProcessInstanceCommand.java
===================================================================
--- jbpm3/trunk/modules/core/src/main/java/org/jbpm/command/CancelProcessInstanceCommand.java	2008-12-15 13:45:46 UTC (rev 3391)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/command/CancelProcessInstanceCommand.java	2008-12-15 16:00:47 UTC (rev 3392)
@@ -5,19 +5,20 @@
 import org.jbpm.JbpmContext;
 import org.jbpm.graph.exe.ProcessInstance;
 import org.jbpm.graph.exe.Token;
+import org.jbpm.util.Clock;
 
 /**
- * Cancel the given {@link ProcessInstance} with all {@link Token}s.
+ * Cancel the given {@link ProcessInstance} with all {@link Token}s. 
  * 
  * <b>Maybe running sub process instances are currently not canceled.</b>
  * 
  * @author Bernd Ruecker (bernd.ruecker at camunda.com)
  */
-public class CancelProcessInstanceCommand extends AbstractCancelCommand implements Command
+public class CancelProcessInstanceCommand extends AbstractCancelCommand 
 {
 
   private static final long serialVersionUID = 7145293049356621597L;
-
+  
   private long processInstanceId;
 
   public CancelProcessInstanceCommand()
@@ -45,7 +46,7 @@
 
     // Record a standardized variable that we can use to determine that this
     // process has been 'canceled' and not just ended.
-    pi.getContextInstance().createVariable("canceled", new Date());
+    pi.getContextInstance().createVariable(CANCELLATION_INDICATOR_VARIABLE_NAME, Clock.getCurrentTime());
 
     try
     {
@@ -91,6 +92,12 @@
     this.processInstanceId = processId;
   }
 
+  @Override
+  public String getAdditionalToStringInformation()
+  {
+    return "processInstanceId=" + processInstanceId;
+  }
+  
   // methods for fluent programming
 
   public CancelProcessInstanceCommand processInstanceId(long processInstanceId)

Modified: jbpm3/trunk/modules/core/src/main/java/org/jbpm/command/CancelTokenCommand.java
===================================================================
--- jbpm3/trunk/modules/core/src/main/java/org/jbpm/command/CancelTokenCommand.java	2008-12-15 13:45:46 UTC (rev 3391)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/command/CancelTokenCommand.java	2008-12-15 16:00:47 UTC (rev 3392)
@@ -2,13 +2,14 @@
 
 import org.jbpm.JbpmContext;
 import org.jbpm.graph.exe.Token;
+import org.jbpm.util.Clock;
 
 /**
  * Cancel a {@link Token}
  * 
  * @author Bernd Ruecker (bernd.ruecker at camunda.com)
  */
-public class CancelTokenCommand extends AbstractCancelCommand implements Command
+public class CancelTokenCommand extends AbstractCancelCommand
 {
 
   private static final long serialVersionUID = 7145293049356621597L;
@@ -27,7 +28,13 @@
   public Object execute(JbpmContext jbpmContext) throws Exception
   {
     this.jbpmContext = jbpmContext;
-    cancelToken(jbpmContext.getGraphSession().loadToken(tokenId));
+    Token token = jbpmContext.getGraphSession().loadToken(tokenId);
+
+    // create a token local process variable to indicate this token was canceled
+    token.getProcessInstance().getContextInstance().createVariable(
+        CANCELLATION_INDICATOR_VARIABLE_NAME, Clock.getCurrentTime(), token);
+
+    cancelToken(token);    
     this.jbpmContext = null;
     return null;
   }
@@ -41,6 +48,12 @@
   {
     this.tokenId = tokenId;
   }
+  
+  @Override
+  public String getAdditionalToStringInformation()
+  {
+    return "tokenId=" + tokenId;
+  }
 
   // methods for fluent programming
 




More information about the jbpm-commits mailing list