From 38de573761f222824ca1d5dc7827a2e7f521b783 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Thu, 30 Jan 2014 09:04:35 +0100 Subject: Move workflow methods to ManageableEntity --- src/main/idl/Entity.idl | 127 +++++++++++++++++++++++++----------------------- 1 file changed, 65 insertions(+), 62 deletions(-) diff --git a/src/main/idl/Entity.idl b/src/main/idl/Entity.idl index f94bdf4..d854362 100644 --- a/src/main/idl/Entity.idl +++ b/src/main/idl/Entity.idl @@ -54,6 +54,66 @@ module entity raises( common::AccessRightsException, common::ObjectNotFoundException, common::PersistencyException ); + + /** + * Requests a transition of an Activity in this Item's workflow. If possible and permitted, an Event is + * generated and stored, the Activity's state is updated, which may cause the Workflow to proceed. If + * this transition requires Outcome data, this is supplied and stored, and a Viewpoint will be created + * or updated to point to this latest version. In the case of PredefinedSteps, additional data changes + * may be performed in the server data. + * + * This method should not be called directly, as there is a large client side to activity execution + * implemented in the Proxy objects, such as script execution and schema validation. + * + * @param agentID The ID of the Agent. Some activities may be restricted in which roles may execute them. + * Some transitions cause the activity to be assigned to the executing Agent. + * + * @param stepPath The path in the Workflow to the desired Activity + * + * @param transitionID The transition to be performed + * + * @param requestData The XML Outcome of the work defined by the Activity. Must be valid to the XML Schema, + * though this is not verified on the server, rather in the AgentProxy in the Client API. + * + * @throws AccessRightsException The Agent is not permitted to perform the operation. Either it does not + * have the correct role, or the Activity is reserved by another Agent. Also thrown when the given Agent ID doesn't exist. + * @throws InvalidTransitionException The Activity is not in the correct state to make the requested transition. + * @throws ObjectNotFoundException The Activity or a container of it does not exist. + * @throws InvalidDataException An activity property for the requested Activity was invalid e.g. SchemaVersion was not a number. + Also thrown when an uncaught Java exception or error occurred. + * @throws PersistencyException There was a problem committing the changes to storage. + * @throws ObjectAlreadyExistsException Not normally thrown, but reserved for PredefinedSteps to throw if they need to. + **/ + void requestAction( in unsigned long agentID, + in string stepPath, + in unsigned long transitionID, + in string requestData + ) + raises( common::AccessRightsException, + common::InvalidTransitionException, + common::ObjectNotFoundException, + common::InvalidDataException, + common::PersistencyException, + common::ObjectAlreadyExistsException ); + + + /** + * Returns a set of Jobs for this Agent on this Item. Each Job represents a possible transition + * of a particular Activity in the Item's lifecycle. The list may be filtered to only refer to + * currently active activities. + * + * @param agentId The system key of the Agent requesting Jobs. + * @param filter If true, then only Activities which are currently active will be included. + * @return An XML marshalled {@link com.c2kernel.entity.agent.JobArrayList JobArrayList} + * @throws AccessRightsException - when the Agent doesn't exist + * @throws ObjectNotFoundException - when the Item doesn't have a lifecycle + * @throws PersistencyException - when there was a storage or other unknown error + **/ + string queryLifeCycle( in unsigned long agentId, + in boolean filter ) + raises( common::AccessRightsException, + common::ObjectNotFoundException, + common::PersistencyException ); }; @@ -72,7 +132,9 @@ module entity * @throws InvalidDataException when the data supplied couldn't be unmarshalled * @throws PersistencyException when there was a problem communicating with storage **/ - void initialise( in string agentProps ) + void initialise( in unsigned long agentId, + in string itemProps, + in string workflow ) raises( common::AccessRightsException, common::InvalidDataException, common::PersistencyException ); @@ -121,71 +183,12 @@ module entity **/ void initialise( in unsigned long agentId, in string itemProps, - in string workflow ) + in string workflow, + in string collections ) raises( common::AccessRightsException, common::InvalidDataException, common::PersistencyException ); - /** - * Requests a transition of an Activity in this Item's workflow. If possible and permitted, an Event is - * generated and stored, the Activity's state is updated, which may cause the Workflow to proceed. If - * this transition requires Outcome data, this is supplied and stored, and a Viewpoint will be created - * or updated to point to this latest version. In the case of PredefinedSteps, additional data changes - * may be performed in the server data. - * - * This method should not be called directly, as there is a large client side to activity execution - * implemented in the Proxy objects, such as script execution and schema validation. - * - * @param agentID The ID of the Agent. Some activities may be restricted in which roles may execute them. - * Some transitions cause the activity to be assigned to the executing Agent. - * - * @param stepPath The path in the Workflow to the desired Activity - * - * @param transitionID The transition to be performed - * - * @param requestData The XML Outcome of the work defined by the Activity. Must be valid to the XML Schema, - * though this is not verified on the server, rather in the AgentProxy in the Client API. - * - * @throws AccessRightsException The Agent is not permitted to perform the operation. Either it does not - * have the correct role, or the Activity is reserved by another Agent. Also thrown when the given Agent ID doesn't exist. - * @throws InvalidTransitionException The Activity is not in the correct state to make the requested transition. - * @throws ObjectNotFoundException The Activity or a container of it does not exist. - * @throws InvalidDataException An activity property for the requested Activity was invalid e.g. SchemaVersion was not a number. - Also thrown when an uncaught Java exception or error occurred. - * @throws PersistencyException There was a problem committing the changes to storage. - * @throws ObjectAlreadyExistsException Not normally thrown, but reserved for PredefinedSteps to throw if they need to. - **/ - void requestAction( in unsigned long agentID, - in string stepPath, - in unsigned long transitionID, - in string requestData - ) - raises( common::AccessRightsException, - common::InvalidTransitionException, - common::ObjectNotFoundException, - common::InvalidDataException, - common::PersistencyException, - common::ObjectAlreadyExistsException ); - - - /** - * Returns a set of Jobs for this Agent on this Item. Each Job represents a possible transition - * of a particular Activity in the Item's lifecycle. The list may be filtered to only refer to - * currently active activities. - * - * @param agentId The system key of the Agent requesting Jobs. - * @param filter If true, then only Activities which are currently active will be included. - * @return An XML marshalled {@link com.c2kernel.entity.agent.JobArrayList JobArrayList} - * @throws AccessRightsException - when the Agent doesn't exist - * @throws ObjectNotFoundException - when the Item doesn't have a lifecycle - * @throws PersistencyException - when there was a storage or other unknown error - **/ - string queryLifeCycle( in unsigned long agentId, - in boolean filter ) - raises( common::AccessRightsException, - common::ObjectNotFoundException, - common::PersistencyException ); - }; //end of Item -- cgit v1.2.3