[jbpm-commits] JBoss JBPM SVN: r2686 - in projects/spec/trunk/modules: api/src/main/java/org/jbpm/api/model/builder and 5 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Oct 30 13:07:47 EDT 2008


Author: thomas.diesler at jboss.com
Date: 2008-10-30 13:07:47 -0400 (Thu, 30 Oct 2008)
New Revision: 2686

Added:
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/transaction/TxRequiredMarshallerTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/transaction/TxRequiredTest.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GroupImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/GroupBuilderImpl.java
Removed:
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/transaction/RequiresTxMarshallerTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/transaction/RequiresTxTest.java
Modified:
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Group.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Node.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/GroupBuilder.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/internal/ProcessStructure.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AssignmentImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ComplexGatewayImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EndEventImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExclusiveGatewayImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExpressionImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GateImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InclusiveGatewayImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InputSetImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/MessageImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/OutputSetImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ParallelGatewayImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ParticipantImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/PropertyImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/PropertySupportImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ReceiveTaskImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SendTaskImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SequenceFlowImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SignalImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/TaskImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/ProcessBuilderImpl.java
   projects/spec/trunk/modules/ri/src/main/resources/jbpm-cfg-beans.xml
Log:
Add group support in model

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Group.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Group.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Group.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -41,7 +41,7 @@
   /**
    * The supported group types 
    */
-  enum GroupType { Transaction };
+  enum GroupType { None, Transaction };
   
   /**
    * Name is an attribute that is text description of the Group.

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Node.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Node.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Node.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -60,6 +60,9 @@
    */
   List<Assignment> getAssignments();
   
+  /** Get the associated Group */
+  Group getGroupRef();
+  
   /** 
    * Get the associated ExecutionHandler 
    */
@@ -74,5 +77,4 @@
    * Get the associated FlowHandler 
    */
   FlowHandler getFlowHandler();
-
 }
\ No newline at end of file

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/GroupBuilder.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/GroupBuilder.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/GroupBuilder.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -24,6 +24,7 @@
 //$Id$
 
 import org.jbpm.api.model.Group;
+import org.jbpm.api.model.Group.GroupType;
 
 
 /**
@@ -34,6 +35,9 @@
  */
 public interface GroupBuilder
 {
+  /** Add a new Group*/
+  GroupBuilder newGroup(GroupType type, String name);
+  
   /**
    * Add a message property
    */

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/internal/ProcessStructure.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/internal/ProcessStructure.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/internal/ProcessStructure.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -26,6 +26,7 @@
 import java.util.List;
 
 import org.jbpm.api.model.Assignment;
+import org.jbpm.api.model.Group;
 import org.jbpm.api.model.Message;
 import org.jbpm.api.model.Node;
 
@@ -59,7 +60,6 @@
 
   /**
    * Get a node by name.
-   * 
    * @return null if not found
    */
   Node getNode(String name);
@@ -72,15 +72,25 @@
 
   /**
    * Get the list of associated {@link Message} objects.
-   * 
    * @return An empty list if there are none
    */
   List<Message> getMessages();
 
   /**
    * Get an associated {@link Message} by name.
-   * 
    * @return null if not found
    */
   Message getMessage(String msgName);
+  
+  /**
+   * Get the list of associated {@link Group} objects.
+   * @return An empty list if there are none
+   */
+  List<Group> getGroups();
+
+  /**
+   * Get an associated {@link Group} by name.
+   * @return null if not found
+   */
+  Group getGroup(String grpName);
 }
\ No newline at end of file

Deleted: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/transaction/RequiresTxMarshallerTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/transaction/RequiresTxMarshallerTest.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/transaction/RequiresTxMarshallerTest.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -1,51 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.test.cts.transaction;
-
-// $Id$
-
-import java.io.IOException;
-
-import org.jbpm.api.model.ProcessDefinition;
-import org.jbpm.api.service.ProcessDefinitionService;
-
-/**
- * Test two tasks with Tx attribute REQUIRES
- * 
- * @author thomas.diesler at jboss.com
- * @since 30-Oct-2008
- */
-public class RequiresTxMarshallerTest extends RequiresTxTest
-{
-  protected ProcessDefinition getProcessDefinition() throws IOException
-  {
-    // Marshall the process to a string
-    ProcessDefinition procDef = super.getProcessDefinition();
-    String procXML = marshallProcess(procDef);
-
-    // System.out.println(procXML);
-
-    // Recreate the ProcessDefinition from the marshalled ProcessDefinition
-    ProcessDefinitionService pdService = getProcessEngine().getService(ProcessDefinitionService.class);
-    return pdService.createProcessDefinition(procXML);
-  }
-}

Deleted: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/transaction/RequiresTxTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/transaction/RequiresTxTest.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/transaction/RequiresTxTest.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -1,64 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.test.cts.transaction;
-
-// $Id$
-
-import java.io.IOException;
-
-import org.jbpm.api.Constants;
-import org.jbpm.api.Constants.TxType;
-import org.jbpm.api.model.Process;
-import org.jbpm.api.model.ProcessDefinition;
-import org.jbpm.api.model.Group.GroupType;
-import org.jbpm.api.model.builder.ProcessBuilder;
-import org.jbpm.api.service.ProcessBuilderService;
-import org.jbpm.api.test.CTSTestCase;
-
-/**
- * Test two tasks with Tx attribute REQUIRES
- * 
- * @author thomas.diesler at jboss.com
- * @since 30-Oct-2008
- */
-public class RequiresTxTest extends CTSTestCase
-{
-  public void testUserTask() throws Exception
-  {
-    ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    Process proc = procDef.newInstance();
-
-    proc.startProcess();
-    proc.waitForEnd(1000);
-  }
-
-  protected ProcessDefinition getProcessDefinition() throws IOException
-  {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
-    procBuilder.addProcess("RequiresTxTest");
-    procBuilder.addStartEvent("Start").addSequenceFlow("TaskA");
-    procBuilder.addTask("TaskA").addSequenceFlow("TaskB");
-    procBuilder.addTask("TaskB").addSequenceFlow("End").addEndEvent("End");
-    procBuilder.addGroup(GroupType.Transaction, "TxRequired").addProperty(Constants.TX_ATTRIBUTE, TxType.REQUIRED);
-    return procBuilder.getProcessDefinition();
-  }
-}

Copied: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/transaction/TxRequiredMarshallerTest.java (from rev 2685, projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/transaction/RequiresTxMarshallerTest.java)
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/transaction/TxRequiredMarshallerTest.java	                        (rev 0)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/transaction/TxRequiredMarshallerTest.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -0,0 +1,51 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.test.cts.transaction;
+
+// $Id$
+
+import java.io.IOException;
+
+import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.service.ProcessDefinitionService;
+
+/**
+ * Test two tasks with Tx attribute REQUIRED
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 30-Oct-2008
+ */
+public class TxRequiredMarshallerTest extends TxRequiredTest
+{
+  protected ProcessDefinition getProcessDefinition() throws IOException
+  {
+    // Marshall the process to a string
+    ProcessDefinition procDef = super.getProcessDefinition();
+    String procXML = marshallProcess(procDef);
+
+    System.out.println(procXML);
+
+    // Recreate the ProcessDefinition from the marshalled ProcessDefinition
+    ProcessDefinitionService pdService = getProcessEngine().getService(ProcessDefinitionService.class);
+    return pdService.createProcessDefinition(procXML);
+  }
+}

Copied: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/transaction/TxRequiredTest.java (from rev 2685, projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/transaction/RequiresTxTest.java)
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/transaction/TxRequiredTest.java	                        (rev 0)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/transaction/TxRequiredTest.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -0,0 +1,77 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.test.cts.transaction;
+
+// $Id$
+
+import java.io.IOException;
+
+import org.jbpm.api.Constants;
+import org.jbpm.api.Constants.TxType;
+import org.jbpm.api.model.Group;
+import org.jbpm.api.model.Node;
+import org.jbpm.api.model.Process;
+import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.model.Group.GroupType;
+import org.jbpm.api.model.builder.ProcessBuilder;
+import org.jbpm.api.service.ProcessBuilderService;
+import org.jbpm.api.test.CTSTestCase;
+
+/**
+ * Test two tasks with Tx attribute REQUIRED
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 30-Oct-2008
+ */
+public class TxRequiredTest extends CTSTestCase
+{
+  public void testUserTask() throws Exception
+  {
+    ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
+    
+    Node taskA = procDef.getNode("TaskA");
+    Node taskB = procDef.getNode("TaskB");
+    Group group = procDef.getGroup("TxRequired");
+    Group groupA = taskA.getGroupRef();
+    Group groupB = taskB.getGroupRef();
+    
+    assertNotNull("Group not null", group);
+    assertSame("Group same", group, groupA);
+    assertSame("Group same", group, groupB);
+    
+    Process proc = procDef.newInstance();
+
+    proc.startProcess();
+    proc.waitForEnd(1000);
+  }
+
+  protected ProcessDefinition getProcessDefinition() throws IOException
+  {
+    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    procBuilder.addProcess("RequiresTxTest");
+    procBuilder.addStartEvent("Start").addSequenceFlow("TaskA");
+    procBuilder.addTask("TaskA").addGroupRef("TxRequired").addSequenceFlow("TaskB");
+    procBuilder.addTask("TaskB").addGroupRef("TxRequired").addSequenceFlow("End").addEndEvent("End");
+    procBuilder.addGroup(GroupType.Transaction, "TxRequired").addProperty(Constants.TX_ATTRIBUTE, TxType.REQUIRED);
+    return procBuilder.getProcessDefinition();
+  }
+}

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AssignmentImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AssignmentImpl.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AssignmentImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -41,7 +41,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
- at Entity(name = "Assignment")
+ at Entity(name = "BPMAssignment")
 public class AssignmentImpl implements Assignment
 {
   private static final long serialVersionUID = 1L;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ComplexGatewayImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ComplexGatewayImpl.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ComplexGatewayImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -38,7 +38,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
- at Entity(name = "ComplexGateway")
+ at Entity(name = "BPMComplexGateway")
 public class ComplexGatewayImpl extends GatewayImpl implements ComplexGateway
 {
   private static final long serialVersionUID = 1L;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EndEventImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EndEventImpl.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EndEventImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -55,7 +55,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
- at Entity(name = "EndEvent")
+ at Entity(name = "BPMEndEvent")
 public class EndEventImpl extends EventImpl implements EndEvent, SingleInFlowSupport
 {
   private static final long serialVersionUID = 1L;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExclusiveGatewayImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExclusiveGatewayImpl.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExclusiveGatewayImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -51,7 +51,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
- at Entity(name = "ExclusiveGateway")
+ at Entity(name = "BPMExclusiveGateway")
 public class ExclusiveGatewayImpl extends GatewayImpl implements ExclusiveGateway
 {
   private static final long serialVersionUID = 1L;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExpressionImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExpressionImpl.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExpressionImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -38,7 +38,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
- at Entity(name = "Expression")
+ at Entity(name = "BPMExpression")
 public class ExpressionImpl implements Expression
 {
   // provide serial version UID

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GateImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GateImpl.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GateImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -55,7 +55,7 @@
  * @author thomas.diesler at jboss.com
  * @since 10-Oct-2008
  */
- at Entity(name = "Gate")
+ at Entity(name = "BPMGate")
 public class GateImpl implements Gate
 {
   // provide serial version UID

Added: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GroupImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GroupImpl.java	                        (rev 0)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GroupImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -0,0 +1,142 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.ri.model;
+
+//$Id$
+
+import java.util.Set;
+
+import javax.persistence.Basic;
+import javax.persistence.CascadeType;
+import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.OneToOne;
+
+import org.jbpm.api.model.Group;
+import org.jbpm.api.model.Property;
+import org.jbpm.api.model.internal.PropertySupport;
+
+/**
+ * A Flow Object is one of the set of following graphical objects: Event, Activity, and
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at Entity(name = "BPMGroup")
+public class GroupImpl implements Group
+{
+  private static final long serialVersionUID = 1L;
+
+  @Id @GeneratedValue
+  protected int id;
+
+  @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = PropertySupportImpl.class)
+  private PropertySupport propSupport = new PropertySupportImpl();
+
+  @Enumerated(EnumType.STRING)
+  private GroupType groupType;
+  
+  @Basic
+  private String name;
+
+  @Basic
+  private int groupIndex;
+
+  public GroupImpl(GroupType groupType, String name)
+  {
+    this.groupType = groupType;
+    this.name = name;
+  }
+
+  // Persistence ctor
+  protected GroupImpl()
+  {
+  }
+
+  @Override
+  public GroupType getGroupType()
+  {
+    return groupType;
+  }
+
+  @Override
+  public String getName()
+  {
+    return name;
+  }
+
+  public int getGroupIndex()
+  {
+    return groupIndex;
+  }
+
+  public void setGroupIndex(int groupIndex)
+  {
+    this.groupIndex = groupIndex;
+  }
+  
+  @Override
+  public Property getProperty(String name)
+  {
+    return propSupport.getProperty(name);
+  }
+
+  @Override
+  public Set<Property> getProperties()
+  {
+    return propSupport.getProperties();
+  }
+
+  @Override
+  public Set<String> getPropertyNames()
+  {
+    return propSupport.getPropertyNames();
+  }
+
+  @Override
+  public void addProperty(Property prop)
+  {
+    propSupport.addProperty(prop);
+  }
+
+  @Override
+  public void addProperty(String name, Object value)
+  {
+    propSupport.addProperty(name, value);
+  }
+
+  @Override
+  public Property removeProperty(String name)
+  {
+    return propSupport.removeProperty(name);
+  }
+
+  @Override
+  public String toString()
+  {
+    return "Group[" + name + "," + groupType + "]";
+  }
+}
\ No newline at end of file


Property changes on: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GroupImpl.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InclusiveGatewayImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InclusiveGatewayImpl.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InclusiveGatewayImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -54,7 +54,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
- at Entity(name = "InclusiveGateway")
+ at Entity(name = "BPMInclusiveGateway")
 public class InclusiveGatewayImpl extends GatewayImpl implements InclusiveGateway
 {
   private static final long serialVersionUID = 1L;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InputSetImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InputSetImpl.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InputSetImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -37,24 +37,23 @@
 import org.jbpm.api.model.Property;
 import org.jbpm.api.model.internal.PropertySupport;
 
-
 /**
  * An InputSet, which is used in the definition of common attributes for Activities and for attributes of a Process
  * 
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
- at Entity (name = "InputSet")
+ at Entity(name = "BPMInputSet")
 public class InputSetImpl implements InputSet
 {
   private static final long serialVersionUID = 1L;
-  
+
   @Id @GeneratedValue
   protected Integer id;
 
   @Basic
   private int setIndex;
-  
+
   @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = PropertySupportImpl.class)
   protected PropertySupport propSupport = new PropertySupportImpl();
 
@@ -103,7 +102,7 @@
   {
     return propSupport.removeProperty(name);
   }
-  
+
   @Override
   public String toString()
   {

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/MessageImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/MessageImpl.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/MessageImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -46,7 +46,7 @@
  * @author thomas.diesler at jboss.com
  * @since 21-Jul-2008
  */
- at Entity(name = "Message")
+ at Entity(name = "BPMMessage")
 public class MessageImpl implements Message
 {
   private static final long serialVersionUID = 1L;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -43,6 +43,7 @@
 import org.jbpm.api.NameNotUniqueException;
 import org.jbpm.api.model.Assignment;
 import org.jbpm.api.model.EndEvent;
+import org.jbpm.api.model.Group;
 import org.jbpm.api.model.Node;
 import org.jbpm.api.model.Process;
 import org.jbpm.api.model.ProcessDefinition;
@@ -72,7 +73,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
- at Entity(name = "Node")
+ at Entity(name = "BPMNode")
 @Inheritance(strategy = InheritanceType.JOINED)
 public abstract class NodeImpl extends AbstractElementImpl implements Node
 {
@@ -125,6 +126,9 @@
   @ManyToOne(targetEntity = ProcessImpl.class)
   private Process proc;
 
+  @ManyToOne(targetEntity = GroupImpl.class)
+  private Group groupRef;
+
   public NodeImpl(ProcessStructure procStruct, String name)
   {
     this.procStruct = procStruct;
@@ -169,6 +173,17 @@
   }
 
   @Override
+  public Group getGroupRef()
+  {
+    return groupRef;
+  }
+
+  public void setGroupRef(Group groupRef)
+  {
+    this.groupRef = groupRef;
+  }
+  
+  @Override
   public Property getProperty(String name)
   {
     return propSupport.getProperty(name);
@@ -397,6 +412,17 @@
         throw new NameNotUniqueException(toString());
     }
 
+    // Initialize the groupRef
+    if (groupRef != null)
+    {
+      String grpName = groupRef.getName();
+      Group procGroup = procStruct.getGroup(grpName);
+      if (procGroup == null)
+        throw new InvalidProcessException("Cannot obtain group for name: " + grpName);
+      
+      this.groupRef = procGroup;
+    }
+
     // Initialize in/out flows
     SequenceFlow outFlow = null;
     if (this instanceof SingleOutFlowSupport)

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/OutputSetImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/OutputSetImpl.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/OutputSetImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -37,24 +37,23 @@
 import org.jbpm.api.model.Property;
 import org.jbpm.api.model.internal.PropertySupport;
 
-
 /**
  * An OutputSet, which is used in the definition of common attributes for Activities and for attributes of a Process
  * 
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
- at Entity (name = "OutputSet")
+ at Entity(name = "BPMOutputSet")
 public class OutputSetImpl implements OutputSet
 {
   private static final long serialVersionUID = 1L;
-  
+
   @Id @GeneratedValue
   protected Integer id;
 
   @Basic
   private int setIndex;
-  
+
   @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = PropertySupportImpl.class)
   protected PropertySupport propSupport = new PropertySupportImpl();
 
@@ -103,7 +102,7 @@
   {
     return propSupport.removeProperty(name);
   }
-  
+
   @Override
   public String toString()
   {

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ParallelGatewayImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ParallelGatewayImpl.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ParallelGatewayImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -50,7 +50,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
- at Entity(name = "ParallelGateway")
+ at Entity(name = "BPMParallelGateway")
 public class ParallelGatewayImpl extends GatewayImpl implements ParallelGateway
 {
   private static final long serialVersionUID = 1L;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ParticipantImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ParticipantImpl.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ParticipantImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -39,7 +39,7 @@
  * @author thomas.diesler at jboss.com
  * @since 21-Jul-2008
  */
- at Entity(name = "Participant")
+ at Entity(name = "BPMParticipant")
 public class ParticipantImpl implements Participant
 {
   private static final long serialVersionUID = 1L;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -42,6 +42,7 @@
 import org.jbpm.api.Constants;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.Assignment;
+import org.jbpm.api.model.Group;
 import org.jbpm.api.model.Message;
 import org.jbpm.api.model.Node;
 import org.jbpm.api.model.Process;
@@ -58,7 +59,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
- at Entity(name = "ProcessDefinition")
+ at Entity(name = "BPMProcessDefinition")
 public class ProcessDefinitionImpl extends AbstractElementImpl implements ProcessDefinition
 {
   private static final long serialVersionUID = 1L;
@@ -163,6 +164,18 @@
   }
 
   @Override
+  public Group getGroup(String grpName)
+  {
+    return procStruct.getGroup(grpName);
+  }
+
+  @Override
+  public List<Group> getGroups()
+  {
+    return procStruct.getGroups();
+  }
+
+  @Override
   public Property getProperty(String name)
   {
     return procStruct.getProperty(name);

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -39,6 +39,7 @@
 import org.jbpm.api.Constants;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.Assignment;
+import org.jbpm.api.model.Group;
 import org.jbpm.api.model.Message;
 import org.jbpm.api.model.Node;
 import org.jbpm.api.model.Process;
@@ -58,7 +59,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
- at Entity(name = "Process")
+ at Entity(name = "BPMProcess")
 public class ProcessImpl extends AbstractElementImpl implements Process
 {
   private static final long serialVersionUID = 1L;
@@ -166,6 +167,18 @@
   }
 
   @Override
+  public Group getGroup(String grpName)
+  {
+    return procStruct.getGroup(grpName);
+  }
+
+  @Override
+  public List<Group> getGroups()
+  {
+    return procStruct.getGroups();
+  }
+
+  @Override
   public Property getProperty(String name)
   {
     return procStruct.getProperty(name);

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -43,6 +43,7 @@
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.Assignment;
 import org.jbpm.api.model.EndEvent;
+import org.jbpm.api.model.Group;
 import org.jbpm.api.model.Message;
 import org.jbpm.api.model.Node;
 import org.jbpm.api.model.Process;
@@ -61,7 +62,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
- at Entity(name = "ProcessStructure")
+ at Entity(name = "BPMProcessStructure")
 public class ProcessStructureImpl extends AbstractElementImpl implements ProcessStructure
 {
   private static final long serialVersionUID = 1L;
@@ -87,6 +88,10 @@
   @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = AssignmentImpl.class)
   private List<Assignment> assignments = new ArrayList<Assignment>();
 
+  @IndexColumn(name = "groupIndex")
+  @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = GroupImpl.class)
+  private List<Group> groups = new ArrayList<Group>();
+  
   public ProcessStructureImpl(ProcessEngine engine, String name)
   {
     super(engine);
@@ -253,7 +258,34 @@
     return propSupport.removeProperty(name);
   }
   
+  public void addGroup(GroupImpl groupImpl)
+  {
+    groupImpl.setGroupIndex(groups.size());
+    groups.add(groupImpl);
+  }
+  
   @Override
+  public Group getGroup(String grpName)
+  {
+    Group retGroup = null;
+    for (Group auxGroup : groups)
+    {
+      if (auxGroup.getName().equals(grpName))
+      {
+        retGroup = auxGroup;
+        break;
+      }
+    }
+    return retGroup;
+  }
+
+  @Override
+  public List<Group> getGroups()
+  {
+    return Collections.unmodifiableList(groups);
+  }
+
+  @Override
   public void create(ProcessDefinition procDef)
   {
     super.create(procDef);
@@ -268,6 +300,7 @@
     if (getNodes(EndEvent.class).size() == 0)
       throw new InvalidProcessException("Process does not have end events");
 
+    // Initialize the nodes
     for (Node node : getNodes())
     {
       NodeImpl nodeImpl = (NodeImpl)node;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/PropertyImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/PropertyImpl.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/PropertyImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -36,7 +36,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
- at Entity (name = "Property")
+ at Entity(name = "BPMProperty")
 public class PropertyImpl implements Property
 {
   private static final long serialVersionUID = 1L;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/PropertySupportImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/PropertySupportImpl.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/PropertySupportImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -46,7 +46,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
- at Entity(name = "PropertySupport")
+ at Entity(name = "BPMPropertySupport")
 public class PropertySupportImpl implements PropertySupport
 {
   private static final long serialVersionUID = 1L;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ReceiveTaskImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ReceiveTaskImpl.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ReceiveTaskImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -50,7 +50,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
- at Entity(name = "ReceiveTask")
+ at Entity(name = "BPMReceiveTask")
 public class ReceiveTaskImpl extends TaskImpl implements ReceiveTask, MessageListener
 {
   private static final long serialVersionUID = 1L;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SendTaskImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SendTaskImpl.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SendTaskImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -45,7 +45,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
- at Entity(name = "SendTask")
+ at Entity(name = "BPMSendTask")
 public class SendTaskImpl extends TaskImpl implements SendTask
 {
   private static final long serialVersionUID = 1L;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SequenceFlowImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SequenceFlowImpl.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SequenceFlowImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -45,7 +45,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
- at Entity(name = "SequenceFlow")
+ at Entity(name = "BPMSequenceFlow")
 public class SequenceFlowImpl implements SequenceFlow
 {
   // provide serial version UID

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SignalImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SignalImpl.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SignalImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -40,7 +40,7 @@
  * @author Thomas.Diesler at jboss.com
  * @since 08-Jul-2008
  */
- at Entity(name = "Signal")
+ at Entity(name = "BPMSignal")
 public final class SignalImpl implements Signal
 {
   private static final long serialVersionUID = 1L;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -56,7 +56,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
- at Entity(name = "StartEvent")
+ at Entity(name = "BPMStartEvent")
 public class StartEventImpl extends EventImpl implements StartEvent, SingleOutFlowSupport
 {
   private static final long serialVersionUID = 1L;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/TaskImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/TaskImpl.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/TaskImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -69,7 +69,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
- at Entity(name = "Task")
+ at Entity(name = "BPMTask")
 public class TaskImpl extends NodeImpl implements Task, SingleOutFlowSupport, SingleInFlowSupport
 {
   // provide serial version UID

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -55,7 +55,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
- at Entity(name = "UserTask")
+ at Entity(name = "BPMUserTask")
 public class UserTaskImpl extends TaskImpl implements UserTask, MessageListener
 {
   private static final long serialVersionUID = 1L;

Added: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/GroupBuilderImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/GroupBuilderImpl.java	                        (rev 0)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/GroupBuilderImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -0,0 +1,61 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.ri.model.builder;
+
+//$Id$
+
+import org.jbpm.api.model.Group;
+import org.jbpm.api.model.Group.GroupType;
+import org.jbpm.api.model.builder.GroupBuilder;
+import org.jbpm.ri.model.GroupImpl;
+
+
+/**
+ * A GroupBuilder can be used to build a {@link Group} dynamically.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 30-Oct-2008
+ */
+public class GroupBuilderImpl implements GroupBuilder
+{
+  private Group group;
+  
+  @Override
+  public GroupBuilder newGroup(GroupType type, String name)
+  {
+    group = new GroupImpl(type, name);
+    return this;
+  }
+  
+  @Override
+  public GroupBuilder addProperty(String name, Object value)
+  {
+    group.addProperty(name, value);
+    return this;
+  }
+
+  @Override
+  public Group getGroup()
+  {
+    return group;
+  }
+}
\ No newline at end of file


Property changes on: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/GroupBuilderImpl.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/ProcessBuilderImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/ProcessBuilderImpl.java	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/ProcessBuilderImpl.java	2008-10-30 17:07:47 UTC (rev 2686)
@@ -31,9 +31,11 @@
 import org.jbpm.api.model.Event.EventDetailType;
 import org.jbpm.api.model.Expression.ExpressionLanguage;
 import org.jbpm.api.model.Gateway.GatewayType;
+import org.jbpm.api.model.Group.GroupType;
 import org.jbpm.api.model.Task.TaskType;
 import org.jbpm.api.model.builder.EventBuilder;
 import org.jbpm.api.model.builder.GatewayBuilder;
+import org.jbpm.api.model.builder.GroupBuilder;
 import org.jbpm.api.model.builder.MessageBuilder;
 import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.model.builder.TaskBuilder;
@@ -46,6 +48,7 @@
 import org.jbpm.ri.model.EventImpl;
 import org.jbpm.ri.model.ExclusiveGatewayImpl;
 import org.jbpm.ri.model.ExpressionImpl;
+import org.jbpm.ri.model.GroupImpl;
 import org.jbpm.ri.model.InclusiveGatewayImpl;
 import org.jbpm.ri.model.NodeImpl;
 import org.jbpm.ri.model.ParallelGatewayImpl;
@@ -127,7 +130,7 @@
     addNode(node = startImpl);
     return new EventBuilderImpl(this);
   }
-  
+
   public EventBuilder addEvent(String name)
   {
     addNode(node = new EventImpl(procStruct, name));
@@ -224,7 +227,7 @@
     getProcessStructure().addAssignment(assignment);
     return this;
   }
-  
+
   public ProcessBuilder addNodeAssignment(AssignTime time, ExpressionLanguage lang, String fromExpr, String toProp)
   {
     AssignmentImpl assignment = getAssignment(time, lang, fromExpr, toProp);
@@ -239,7 +242,7 @@
     AssignmentImpl assignment = new AssignmentImpl(time, from, to);
     return assignment;
   }
-  
+
   public <T extends ExecutionHandler> ProcessBuilder addExecutionHandler(Class<T> clazz)
   {
     getNodeInternal().setExecutionHandler(clazz);
@@ -279,6 +282,21 @@
     return this;
   }
 
+  @Override
+  public GroupBuilder addGroup(GroupType type, String name)
+  {
+    GroupBuilder groupBuilder = new GroupBuilderImpl().newGroup(type, name);
+    getProcessStructure().addGroup((GroupImpl)groupBuilder.getGroup());
+    return groupBuilder;
+  }
+
+  @Override
+  public ProcessBuilder addGroupRef(String grpName)
+  {
+    getNodeInternal().setGroupRef(new GroupImpl(GroupType.None, grpName));
+    return this;
+  }
+
   private ProcessBuilder addNode(NodeImpl nodeImpl)
   {
     getProcessStructure().addNode(nodeImpl);

Modified: projects/spec/trunk/modules/ri/src/main/resources/jbpm-cfg-beans.xml
===================================================================
--- projects/spec/trunk/modules/ri/src/main/resources/jbpm-cfg-beans.xml	2008-10-30 15:15:36 UTC (rev 2685)
+++ projects/spec/trunk/modules/ri/src/main/resources/jbpm-cfg-beans.xml	2008-10-30 17:07:47 UTC (rev 2686)
@@ -33,6 +33,7 @@
           <value>org.jbpm.ri.model.ExclusiveGatewayImpl</value>
           <value>org.jbpm.ri.model.ExpressionImpl</value>
           <value>org.jbpm.ri.model.GatewayImpl</value>
+          <value>org.jbpm.ri.model.GroupImpl</value>
           <value>org.jbpm.ri.model.InclusiveGatewayImpl</value>
           <value>org.jbpm.ri.model.InputSetImpl</value>
           <value>org.jbpm.ri.model.MessageImpl</value>




More information about the jbpm-commits mailing list