[jbpm-commits] JBoss JBPM SVN: r3128 - in projects/spec/trunk/modules: ri/src/main/java/org/jboss/bpm/ri/model and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Nov 27 09:56:40 EST 2008


Author: thomas.diesler at jboss.com
Date: 2008-11-27 09:56:40 -0500 (Thu, 27 Nov 2008)
New Revision: 3128

Modified:
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/model/Process.java
   projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/model/ProcessImpl.java
Log:
Add suspended to process lifecycle

Modified: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/model/Process.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/model/Process.java	2008-11-27 14:56:11 UTC (rev 3127)
+++ projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/model/Process.java	2008-11-27 14:56:40 UTC (rev 3128)
@@ -43,7 +43,7 @@
    */
   public enum ProcessStatus
   {
-    None, Ready, Active, Cancelled, Aborting, Aborted, Completing, Completed
+    None, Ready, Active, Suspended, Cancelled, Aborted, Completed
   }
 
   /**
@@ -91,4 +91,19 @@
    * @return null if not ended 
    */
   Date getEndDate();
+  
+  /**
+   * Suspend the process
+   */
+  void suspend();
+  
+  /**
+   * Resume the process
+   */
+  void resume();
+  
+  /**
+   * Cancel the process
+   */
+  void cancel();
 }
\ No newline at end of file

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/model/ProcessImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/model/ProcessImpl.java	2008-11-27 14:56:11 UTC (rev 3127)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/model/ProcessImpl.java	2008-11-27 14:56:40 UTC (rev 3128)
@@ -145,6 +145,34 @@
     this.status = status;
   }
 
+  @Override
+  public void suspend()
+  {
+    if (status != ProcessStatus.Active)
+      throw new IllegalStateException("Cannot suspend a process in state: " + status);
+    
+    status = ProcessStatus.Suspended;
+  }
+  
+  @Override
+  public void resume()
+  {
+    if (status != ProcessStatus.Suspended)
+      throw new IllegalStateException("Cannot resume a process in state: " + status);
+    
+    status = ProcessStatus.Active;
+  }
+
+  @Override
+  public void cancel()
+  {
+    if (status != ProcessStatus.Active && status != ProcessStatus.Suspended)
+      throw new IllegalStateException("Cannot cancel a process in state: " + status);
+    
+    status = ProcessStatus.Cancelled;
+    endDate = new Date();
+  }
+  
   public Date getStartDate()
   {
     return startDate;




More information about the jbpm-commits mailing list