org.imixs.workflow.jee.ejb
Class ModelService

java.lang.Object
  extended by org.imixs.workflow.jee.ejb.ModelService
All Implemented Interfaces:
org.imixs.workflow.ExtendedModel, ModelServiceRemote, org.imixs.workflow.Model

@DeclareRoles(value={"org.imixs.ACCESSLEVEL.NOACCESS","org.imixs.ACCESSLEVEL.READERACCESS","org.imixs.ACCESSLEVEL.AUTHORACCESS","org.imixs.ACCESSLEVEL.EDITORACCESS","org.imixs.ACCESSLEVEL.MANAGERACCESS"})
@RolesAllowed(value={"org.imixs.ACCESSLEVEL.NOACCESS","org.imixs.ACCESSLEVEL.READERACCESS","org.imixs.ACCESSLEVEL.AUTHORACCESS","org.imixs.ACCESSLEVEL.EDITORACCESS","org.imixs.ACCESSLEVEL.MANAGERACCESS"})
public class ModelService
extends java.lang.Object
implements org.imixs.workflow.ExtendedModel, ModelServiceRemote

The ModelManager is independend form the IX JEE Entity EJBs and uses the standard IntemCollection Object as a data transfer object to comunitcate with clients. Since Version 1.7.0 The Implementation handles multiple model versions. Different Versions of an Model Entity can be saved and updated. The Getter methods can be furthermore Controlled by providing a valid Model Version. If no model version is set this Implementation automatically defaults to the highest available ModelVersion

Author:
rsoika
See Also:
org.imixs.workflow.ModelManager, org.imixs.workflow.jee.ejb.ModelManager

Constructor Summary
ModelService()
           
 
Method Summary
 org.imixs.workflow.ItemCollection getActivityEntity(int processid, int activityid)
          This method returns the ActivityEntity with the highest Version number ($modelversion)
 org.imixs.workflow.ItemCollection getActivityEntityByVersion(int processid, int activityid, java.lang.String modelVersion)
           
 java.util.Collection<org.imixs.workflow.ItemCollection> getActivityEntityList(int processid)
          returns a collection of ItemCollections representing the model activity Entities for the coresponding processid
 java.util.Collection<org.imixs.workflow.ItemCollection> getActivityEntityListByVersion(int processid, java.lang.String aModelVersion)
           
 java.util.List<java.lang.String> getAllModelVersions()
          returns a String list of all accessible Modelversions
 java.util.List<org.imixs.workflow.ItemCollection> getAllProcessEntitiesByGroup(java.lang.String aGroup)
          returns a list of all ProcessEntities for a specific ProcessGroup independent from the modelversion.
 java.util.List<org.imixs.workflow.ItemCollection> getAllProcessEntitiesByGroupByVersion(java.lang.String aGroup, java.lang.String aversion)
          returns a list of all ProcessEntities for a specific ProcessGroup and modelversion.
 java.util.List<org.imixs.workflow.ItemCollection> getAllStartProcessEntities()
          returns a list of all ProcessEntities which are the first one in each ProcessGroup.
 java.util.List<org.imixs.workflow.ItemCollection> getAllStartProcessEntitiesByVersion(java.lang.String version)
          returns a list of all ProcessEntities which are the first one in each ProcessGroup.
 java.util.List<java.lang.String> getAllWorkflowGroups()
          returns a String list of all existing ProcessGroup Names
 java.util.List<java.lang.String> getAllWorkflowGroupsByVersion(java.lang.String version)
           
 java.util.Collection<org.imixs.workflow.ItemCollection> getEnvironmentEntityList()
           
 java.util.Collection<org.imixs.workflow.ItemCollection> getEnvironmentEntityListByVersion(java.lang.String modelversion)
           
 java.lang.String getLatestVersion()
          This helper method finds the highest Model Version available in the system.
 org.imixs.workflow.ItemCollection getProcessEntity(int processid)
           
 org.imixs.workflow.ItemCollection getProcessEntityByVersion(int processid, java.lang.String modelversion)
          returns a process entity by version
 java.util.Collection<org.imixs.workflow.ItemCollection> getProcessEntityList()
          returns a collection of ItemCollections representing the model process Entities
 java.util.Collection<org.imixs.workflow.ItemCollection> getProcessEntityListByVersion(java.lang.String aModelVersion)
          returns a collection of ItemCollections representing the model process Entities
 java.util.List<org.imixs.workflow.ItemCollection> getPublicActivities(int aprocessid)
          returns all the activities in a list for a corresponding process entity The method returns only Activities where keypublicresult !
 java.util.List<org.imixs.workflow.ItemCollection> getPublicActivitiesByVersion(int aprocessid, java.lang.String version)
          returns all the activities in a list for a corresponding process entity The method returns only Activities where keypublicresult !
 void importModel(java.io.InputStream input)
          This method imports a workflow model file from an imputStream object.
 void removeModelVersion(java.lang.String modelversion)
          This method removes a spcific ModelVersion defined by param 'modelversion'.
 void saveActivityEntity(org.imixs.workflow.ItemCollection ic)
          Saves or updates an ActivityEntity represented by an ItemCollection.
 void saveEnvironmentEntity(org.imixs.workflow.ItemCollection ic)
          Saves or updates an EnvironmentEntity represented by an ItemCollection.
 void saveProcessEntity(org.imixs.workflow.ItemCollection ic)
          Saves or updates a ProcessEntitiy represented by an ItemCollection.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ModelService

public ModelService()
Method Detail

getActivityEntity

public org.imixs.workflow.ItemCollection getActivityEntity(int processid,
                                                           int activityid)
                                                    throws org.imixs.workflow.exceptions.ModelException
This method returns the ActivityEntity with the highest Version number ($modelversion)

Specified by:
getActivityEntity in interface ModelServiceRemote
Specified by:
getActivityEntity in interface org.imixs.workflow.Model
Throws:
org.imixs.workflow.exceptions.ModelException

getActivityEntityByVersion

public org.imixs.workflow.ItemCollection getActivityEntityByVersion(int processid,
                                                                    int activityid,
                                                                    java.lang.String modelVersion)
                                                             throws org.imixs.workflow.exceptions.ModelException
Specified by:
getActivityEntityByVersion in interface org.imixs.workflow.ExtendedModel
Specified by:
getActivityEntityByVersion in interface ModelServiceRemote
Throws:
org.imixs.workflow.exceptions.ModelException

getProcessEntity

public org.imixs.workflow.ItemCollection getProcessEntity(int processid)
                                                   throws org.imixs.workflow.exceptions.ModelException
Specified by:
getProcessEntity in interface ModelServiceRemote
Specified by:
getProcessEntity in interface org.imixs.workflow.Model
Throws:
org.imixs.workflow.exceptions.ModelException

getProcessEntityByVersion

public org.imixs.workflow.ItemCollection getProcessEntityByVersion(int processid,
                                                                   java.lang.String modelversion)
                                                            throws org.imixs.workflow.exceptions.ModelException
returns a process entity by version

Specified by:
getProcessEntityByVersion in interface org.imixs.workflow.ExtendedModel
Specified by:
getProcessEntityByVersion in interface ModelServiceRemote
Throws:
org.imixs.workflow.exceptions.ModelException

getActivityEntityList

public java.util.Collection<org.imixs.workflow.ItemCollection> getActivityEntityList(int processid)
                                                                              throws org.imixs.workflow.exceptions.ModelException
returns a collection of ItemCollections representing the model activity Entities for the coresponding processid

Specified by:
getActivityEntityList in interface ModelServiceRemote
Specified by:
getActivityEntityList in interface org.imixs.workflow.Model
Throws:
org.imixs.workflow.exceptions.ModelException

getActivityEntityListByVersion

public java.util.Collection<org.imixs.workflow.ItemCollection> getActivityEntityListByVersion(int processid,
                                                                                              java.lang.String aModelVersion)
                                                                                       throws org.imixs.workflow.exceptions.ModelException
Specified by:
getActivityEntityListByVersion in interface org.imixs.workflow.ExtendedModel
Specified by:
getActivityEntityListByVersion in interface ModelServiceRemote
Throws:
org.imixs.workflow.exceptions.ModelException

getProcessEntityList

public java.util.Collection<org.imixs.workflow.ItemCollection> getProcessEntityList()
                                                                             throws org.imixs.workflow.exceptions.ModelException
returns a collection of ItemCollections representing the model process Entities

Specified by:
getProcessEntityList in interface ModelServiceRemote
Specified by:
getProcessEntityList in interface org.imixs.workflow.Model
Throws:
org.imixs.workflow.exceptions.ModelException

getProcessEntityListByVersion

public java.util.Collection<org.imixs.workflow.ItemCollection> getProcessEntityListByVersion(java.lang.String aModelVersion)
                                                                                      throws org.imixs.workflow.exceptions.ModelException
returns a collection of ItemCollections representing the model process Entities

Specified by:
getProcessEntityListByVersion in interface org.imixs.workflow.ExtendedModel
Specified by:
getProcessEntityListByVersion in interface ModelServiceRemote
Throws:
org.imixs.workflow.exceptions.ModelException

getEnvironmentEntityList

public java.util.Collection<org.imixs.workflow.ItemCollection> getEnvironmentEntityList()
                                                                                 throws org.imixs.workflow.exceptions.ModelException
Specified by:
getEnvironmentEntityList in interface ModelServiceRemote
Throws:
org.imixs.workflow.exceptions.ModelException

getEnvironmentEntityListByVersion

public java.util.Collection<org.imixs.workflow.ItemCollection> getEnvironmentEntityListByVersion(java.lang.String modelversion)
                                                                                          throws org.imixs.workflow.exceptions.ModelException
Specified by:
getEnvironmentEntityListByVersion in interface ModelServiceRemote
Throws:
org.imixs.workflow.exceptions.ModelException

saveActivityEntity

public void saveActivityEntity(org.imixs.workflow.ItemCollection ic)
                        throws org.imixs.workflow.exceptions.ModelException,
                               org.imixs.workflow.exceptions.AccessDeniedException
Saves or updates an ActivityEntity represented by an ItemCollection. The Entity is unique identified of its Attributes 'numProcessID', 'numActivityID' and '$modelversion' The Method verifies that an existing instance will be updated.

Specified by:
saveActivityEntity in interface ModelServiceRemote
Parameters:
ic -
Throws:
org.imixs.workflow.exceptions.AccessDeniedException
java.lang.Exception
org.imixs.workflow.exceptions.ModelException

saveProcessEntity

public void saveProcessEntity(org.imixs.workflow.ItemCollection ic)
                       throws org.imixs.workflow.exceptions.ModelException,
                              org.imixs.workflow.exceptions.AccessDeniedException
Saves or updates a ProcessEntitiy represented by an ItemCollection. The Entity is unique identified of its Attributes 'numProcessID' and '$modelversion' The Method verifies that an existing instance will be updated.

Specified by:
saveProcessEntity in interface ModelServiceRemote
Parameters:
ic -
Throws:
org.imixs.workflow.exceptions.AccessDeniedException
org.imixs.workflow.exceptions.ModelException

saveEnvironmentEntity

public void saveEnvironmentEntity(org.imixs.workflow.ItemCollection ic)
                           throws org.imixs.workflow.exceptions.ModelException,
                                  org.imixs.workflow.exceptions.AccessDeniedException
Saves or updates an EnvironmentEntity represented by an ItemCollection. The Entity is unique identified of its Attributes 'txtName' and '$modelversion' The Method verifies that an existing instance will be updated.

Specified by:
saveEnvironmentEntity in interface ModelServiceRemote
Parameters:
ic -
Throws:
org.imixs.workflow.exceptions.AccessDeniedException
java.lang.Exception
org.imixs.workflow.exceptions.ModelException

removeModelVersion

public void removeModelVersion(java.lang.String modelversion)
                        throws org.imixs.workflow.exceptions.ModelException,
                               org.imixs.workflow.exceptions.AccessDeniedException
This method removes a spcific ModelVersion defined by param 'modelversion'. If modelVersion is null the method will remove all models

Specified by:
removeModelVersion in interface ModelServiceRemote
Throws:
org.imixs.workflow.exceptions.AccessDeniedException
org.imixs.workflow.exceptions.ModelException

getLatestVersion

public java.lang.String getLatestVersion()
                                  throws org.imixs.workflow.exceptions.ModelException
This helper method finds the highest Model Version available in the system. Returns an empty String if no version was found!

Specified by:
getLatestVersion in interface ModelServiceRemote
Returns:
String with the latest model version
Throws:
org.imixs.workflow.exceptions.ModelException

getAllModelVersions

public java.util.List<java.lang.String> getAllModelVersions()
returns a String list of all accessible Modelversions

Specified by:
getAllModelVersions in interface ModelServiceRemote
Returns:

getPublicActivities

public java.util.List<org.imixs.workflow.ItemCollection> getPublicActivities(int aprocessid)
returns all the activities in a list for a corresponding process entity The method returns only Activities where keypublicresult != "0"

Specified by:
getPublicActivities in interface ModelServiceRemote
Returns:
List of activity Entities

getPublicActivitiesByVersion

public java.util.List<org.imixs.workflow.ItemCollection> getPublicActivitiesByVersion(int aprocessid,
                                                                                      java.lang.String version)
returns all the activities in a list for a corresponding process entity The method returns only Activities where keypublicresult != "0"

Specified by:
getPublicActivitiesByVersion in interface ModelServiceRemote
Returns:
List of activity Entities

getAllWorkflowGroups

public java.util.List<java.lang.String> getAllWorkflowGroups()
returns a String list of all existing ProcessGroup Names

Specified by:
getAllWorkflowGroups in interface ModelServiceRemote
Returns:

getAllWorkflowGroupsByVersion

public java.util.List<java.lang.String> getAllWorkflowGroupsByVersion(java.lang.String version)
Specified by:
getAllWorkflowGroupsByVersion in interface ModelServiceRemote

getAllStartProcessEntities

public java.util.List<org.imixs.workflow.ItemCollection> getAllStartProcessEntities()
returns a list of all ProcessEntities which are the first one in each ProcessGroup. So for each ProcessGroup the ProcessEntity with the lowest processID will be returned. The method builds a cash with the best (lowest) ProcessID for each process group.

Specified by:
getAllStartProcessEntities in interface ModelServiceRemote
Returns:

getAllStartProcessEntitiesByVersion

public java.util.List<org.imixs.workflow.ItemCollection> getAllStartProcessEntitiesByVersion(java.lang.String version)
returns a list of all ProcessEntities which are the first one in each ProcessGroup. The ModelVersion specifies the Model to be analiezed. So for each ProcessGroup the ProcessEntity with the lowest processID will be returned. The method builds a cash with the best (lowest) ProcessID for each process group. The collection returned will be sorted by the numProcessID

Specified by:
getAllStartProcessEntitiesByVersion in interface ModelServiceRemote
Returns:

getAllProcessEntitiesByGroup

public java.util.List<org.imixs.workflow.ItemCollection> getAllProcessEntitiesByGroup(java.lang.String aGroup)
returns a list of all ProcessEntities for a specific ProcessGroup independent from the modelversion. The same workflowGroup contained in to different model versions will be returned twice.

Specified by:
getAllProcessEntitiesByGroup in interface ModelServiceRemote
Returns:

getAllProcessEntitiesByGroupByVersion

public java.util.List<org.imixs.workflow.ItemCollection> getAllProcessEntitiesByGroupByVersion(java.lang.String aGroup,
                                                                                               java.lang.String aversion)
returns a list of all ProcessEntities for a specific ProcessGroup and modelversion.

Specified by:
getAllProcessEntitiesByGroupByVersion in interface ModelServiceRemote
Parameters:
aGroup -
aversion -
Returns:

importModel

public void importModel(java.io.InputStream input)
                 throws org.imixs.workflow.exceptions.ModelException,
                        org.imixs.workflow.exceptions.AccessDeniedException
This method imports a workflow model file from an imputStream object. The method can be used to initialize a workflow system with a workflow model or provide an update service to import new model files without the need to use the Imixs RESTservice api. The expected file format of the model file is based on the Imixs JAX-B XMLItemCollection. The file may only contain one modelVersion! The ModelVersion is Identified by the entity type 'WorkflowEnvironmentEntity'. If more than one WorkflowEnvironmentEntity is found the method throws an ModelException. The method automatically removes an old existing model version.

Specified by:
importModel in interface ModelServiceRemote
Throws:
org.imixs.workflow.exceptions.AccessDeniedException - - if user is not allowed to remove old model
org.imixs.workflow.exceptions.ModelException - - if fileformat is invalid


Copyright © 2006-2012 Imixs Software Solutions GmbH. All Rights Reserved.