Package org.ametys.cms.workflow
Class ContentWorkflowHelper
- java.lang.Object
-
- org.ametys.runtime.plugin.component.AbstractLogEnabled
-
- org.ametys.cms.workflow.ContentWorkflowHelper
-
- All Implemented Interfaces:
LogEnabled
,Component
,Contextualizable
,Serviceable
public class ContentWorkflowHelper extends AbstractLogEnabled implements Serviceable, Contextualizable, Component
A component to do workflow actions on Content
-
-
Field Summary
Fields Modifier and Type Field Description protected ObservationManager
_observationManager
The observation managerprotected CurrentUserProvider
_userProvider
Component to get the current userprotected WorkflowProvider
_workflowProvider
Workflow instance.static String
ROLE
The component role
-
Constructor Summary
Constructors Constructor Description ContentWorkflowHelper()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
contextualize(Context context)
Map<String,Object>
createContent(String workflowName, int initialActionId, String contentName, String contentTitle, String[] contentTypes, String[] mixins, String languageCode)
Creates a content using the workflow (with the CreateContentFunction).Map<String,Object>
createContent(String workflowName, int initialActionId, String contentName, String contentTitle, String[] contentTypes, String[] mixins, String languageCode, String parentContentId, String parentContentMetadatapath)
Creates a content using the workflow (with the CreateContentFunction).Map<String,Object>
createContent(String workflowName, int initialActionId, String contentName, String contentTitle, String[] contentTypes, String[] mixins, String languageCode, String parentContentId, String parentContentMetadatapath, Map<String,Object> inputs)
Creates a content using the workflow (with the CreateContentFunction).Map<String,Object>
createContent(String workflowName, int initialActionId, String contentName, Map<String,String> titleVariants, String[] contentTypes, String[] mixins)
Creates a multilingual content with a multilingual title using the workflow (with the CreateContentFunction).Map<String,Object>
createContent(String workflowName, int initialActionId, String contentName, Map<String,String> titleVariants, String[] contentTypes, String[] mixins, String parentContentId, String parentContentMetadatapath)
Creates a multilingual content with a multilingual title using the workflow (with the CreateContentFunction).Map<String,Object>
createContent(String workflowName, int initialActionId, String contentName, Map<String,String> titleVariants, String[] contentTypes, String[] mixins, String parentContentId, String parentContentMetadatapath, Map<String,Object> inputs)
Creates a multilingual content with a multilingual title using the workflow (with the CreateContentFunction).Map<String,Object>
doAction(WorkflowAwareContent content, int actionId)
Do a workflow action on a content.Map<String,Object>
doAction(WorkflowAwareContent content, int actionId, Map<String,Object> inputs)
Do a workflow action on a content.Map<String,Object>
editContent(WorkflowAwareContent content, Map<String,Object> values, int workflowActionId)
Edit aContent
programmatically.Map<String,Object>
editContent(WorkflowAwareContent content, Map<String,Object> values, int workflowActionId, View view)
Edit aContent
programmatically.int[]
getAvailableActions(WorkflowAwareContent content)
Get the available workflow actions for the contentint[]
getAvailableActions(WorkflowAwareContent content, Map<String,Object> inputs)
Get the available workflow actions for the contentboolean
isAvailableAction(WorkflowAwareContent content, int actionId)
Determines if the workflow action is availablevoid
service(ServiceManager manager)
-
Methods inherited from class org.ametys.runtime.plugin.component.AbstractLogEnabled
getLogger, setLogger
-
-
-
-
Field Detail
-
_userProvider
protected CurrentUserProvider _userProvider
Component to get the current user
-
_workflowProvider
protected WorkflowProvider _workflowProvider
Workflow instance.
-
_observationManager
protected ObservationManager _observationManager
The observation manager
-
-
Constructor Detail
-
ContentWorkflowHelper
public ContentWorkflowHelper()
-
-
Method Detail
-
contextualize
public void contextualize(Context context) throws ContextException
- Specified by:
contextualize
in interfaceContextualizable
- Throws:
ContextException
-
service
public void service(ServiceManager manager) throws ServiceException
- Specified by:
service
in interfaceServiceable
- Throws:
ServiceException
-
createContent
public Map<String,Object> createContent(String workflowName, int initialActionId, String contentName, String contentTitle, String[] contentTypes, String[] mixins, String languageCode) throws AmetysRepositoryException, com.opensymphony.workflow.WorkflowException
Creates a content using the workflow (with the CreateContentFunction).- Parameters:
workflowName
- The name of the workflow to createinitialActionId
- The workflow action id that creates contentcontentName
- The new namecontentTitle
- The new titlecontentTypes
- The new content types. Cannot be null. Cannot be empty.mixins
- The new mixins. Can be null. Can be empty.languageCode
- The language code of the new content (such as 'fr', 'en'...)- Returns:
- The workflow result map. See the create content function used to get the new content. Can be under the key CreateContentFunction.CONTENT_KEY, and the id under the key "contentId"
- Throws:
com.opensymphony.workflow.WorkflowException
- If an error occurred while doing the action on the workflowAmetysRepositoryException
- If cannot get the workflow identifier of the content
-
createContent
public Map<String,Object> createContent(String workflowName, int initialActionId, String contentName, Map<String,String> titleVariants, String[] contentTypes, String[] mixins) throws AmetysRepositoryException, com.opensymphony.workflow.WorkflowException
Creates a multilingual content with a multilingual title using the workflow (with the CreateContentFunction).- Parameters:
workflowName
- The name of the workflow to createinitialActionId
- The workflow action id that creates contentcontentName
- The new nametitleVariants
- The title's variantscontentTypes
- The new content types. Cannot be null. Cannot be empty.mixins
- The new mixins. Can be null. Can be empty.- Returns:
- The workflow result map. See the create content function used to get the new content. Can be under the key CreateContentFunction.CONTENT_KEY, and the id under the key "contentId"
- Throws:
com.opensymphony.workflow.WorkflowException
- If an error occurred while doing the action on the workflowAmetysRepositoryException
- If cannot get the workflow identifier of the content
-
createContent
public Map<String,Object> createContent(String workflowName, int initialActionId, String contentName, String contentTitle, String[] contentTypes, String[] mixins, String languageCode, String parentContentId, String parentContentMetadatapath) throws AmetysRepositoryException, com.opensymphony.workflow.WorkflowException
Creates a content using the workflow (with the CreateContentFunction).- Parameters:
workflowName
- The name of the workflow to createinitialActionId
- The workflow action id that creates contentcontentName
- The new namecontentTitle
- The new titlecontentTypes
- The new content types. Cannot be null. Cannot be empty.mixins
- The new mixins. Can be null. Can be empty.languageCode
- The language code of the new content (such as 'fr', 'en'...)parentContentId
- If the new content is a subcontent, the parent content identifier.parentContentMetadatapath
- If the new content is a subcontent, the path of the metadata where the new content will take place in its parent- Returns:
- The workflow result map. See the create content function used to get the new content. Can be under the key CreateContentFunction.CONTENT_KEY, and the id under the key "contentId"
- Throws:
com.opensymphony.workflow.WorkflowException
- If an error occurred while doing the action on the workflowAmetysRepositoryException
- If cannot get the workflow identifier of the content
-
createContent
public Map<String,Object> createContent(String workflowName, int initialActionId, String contentName, Map<String,String> titleVariants, String[] contentTypes, String[] mixins, String parentContentId, String parentContentMetadatapath) throws AmetysRepositoryException, com.opensymphony.workflow.WorkflowException
Creates a multilingual content with a multilingual title using the workflow (with the CreateContentFunction).- Parameters:
workflowName
- The name of the workflow to createinitialActionId
- The workflow action id that creates contentcontentName
- The new nametitleVariants
- The title's variantscontentTypes
- The new content types. Cannot be null. Cannot be empty.mixins
- The new mixins. Can be null. Can be empty.parentContentId
- If the new content is a subcontent, the parent content identifier.parentContentMetadatapath
- If the new content is a subcontent, the path of the metadata where the new content will take place in its parent- Returns:
- The workflow result map. See the create content function used to get the new content. Can be under the key CreateContentFunction.CONTENT_KEY, and the id under the key "contentId"
- Throws:
com.opensymphony.workflow.WorkflowException
- If an error occurred while doing the action on the workflowAmetysRepositoryException
- If cannot get the workflow identifier of the content
-
createContent
public Map<String,Object> createContent(String workflowName, int initialActionId, String contentName, String contentTitle, String[] contentTypes, String[] mixins, String languageCode, String parentContentId, String parentContentMetadatapath, Map<String,Object> inputs) throws AmetysRepositoryException, com.opensymphony.workflow.WorkflowException
Creates a content using the workflow (with the CreateContentFunction).- Parameters:
workflowName
- The name of the workflow to createinitialActionId
- The workflow action id that creates contentcontentName
- The new namecontentTitle
- The new titlecontentTypes
- The new content types. Cannot be null. Cannot be empty.mixins
- The new mixins. Can be null. Can be empty.languageCode
- The language code of the new content (such as 'fr', 'en'...)parentContentId
- If the new content is a subcontent, the parent content identifier.parentContentMetadatapath
- If the new content is a subcontent, the path of the metadata where the new content will take place in its parentinputs
- The parameters to transmit to the workflow functions. Cannot be null.- Returns:
- The workflow result map. See the create content function used to get the new content. Can be under the key CreateContentFunction.CONTENT_KEY, and the id under the key "contentId"
- Throws:
com.opensymphony.workflow.WorkflowException
- If an error occurred while doing the action on the workflowAmetysRepositoryException
- If cannot get the workflow identifier of the content
-
createContent
public Map<String,Object> createContent(String workflowName, int initialActionId, String contentName, Map<String,String> titleVariants, String[] contentTypes, String[] mixins, String parentContentId, String parentContentMetadatapath, Map<String,Object> inputs) throws AmetysRepositoryException, com.opensymphony.workflow.WorkflowException
Creates a multilingual content with a multilingual title using the workflow (with the CreateContentFunction).- Parameters:
workflowName
- The name of the workflow to createinitialActionId
- The workflow action id that creates contentcontentName
- The new nametitleVariants
- The title's variantscontentTypes
- The new content types. Cannot be null. Cannot be empty.mixins
- The new mixins. Can be null. Can be empty.parentContentId
- If the new content is a subcontent, the parent content identifier.parentContentMetadatapath
- If the new content is a subcontent, the path of the metadata where the new content will take place in its parentinputs
- The parameters to transmit to the workflow functions. Cannot be null.- Returns:
- The workflow result map. See the create content function used to get the new content. Can be under the key CreateContentFunction.CONTENT_KEY, and the id under the key "contentId"
- Throws:
com.opensymphony.workflow.WorkflowException
- If an error occurred while doing the action on the workflowAmetysRepositoryException
- If cannot get the workflow identifier of the content
-
isAvailableAction
public boolean isAvailableAction(WorkflowAwareContent content, int actionId)
Determines if the workflow action is available- Parameters:
content
- the content to consider.actionId
- the workflow action id to check- Returns:
true
if the wortkflow action is available
-
getAvailableActions
public int[] getAvailableActions(WorkflowAwareContent content)
Get the available workflow actions for the content- Parameters:
content
- The content to consider. Cannot be null.- Returns:
- The array of actions ids that are available now
-
getAvailableActions
public int[] getAvailableActions(WorkflowAwareContent content, Map<String,Object> inputs)
Get the available workflow actions for the content- Parameters:
content
- The content to consider. Cannot be null.inputs
- The parameters to transmit to the workflow functions. Cannot be null.- Returns:
- The array of actions ids that are available now
-
doAction
public Map<String,Object> doAction(WorkflowAwareContent content, int actionId) throws AmetysRepositoryException, com.opensymphony.workflow.WorkflowException
Do a workflow action on a content.- Parameters:
content
- The content to act on. Cannot be null.actionId
- The id of the workflow action to do- Returns:
- The results of the functions
- Throws:
com.opensymphony.workflow.WorkflowException
- If an error occurred while doing the action on the workflowAmetysRepositoryException
- If cannot get the workflow identifier of the content
-
doAction
public Map<String,Object> doAction(WorkflowAwareContent content, int actionId, Map<String,Object> inputs) throws AmetysRepositoryException, com.opensymphony.workflow.WorkflowException
Do a workflow action on a content.- Parameters:
content
- The content to act on. Cannot be null.actionId
- The id of the workflow action to doinputs
- The parameters to transmit to the workflow functions. Cannot be null. The special key AbstractWorkflowComponent.CONTEXT_PARAMETERS_KEY will be filled with the parent context if null (this means that if your are in a request dispatched, you will automatically get the js parameters).- Returns:
- The results of the functions
- Throws:
com.opensymphony.workflow.WorkflowException
- If an error occurred while doing the action on the workflowAmetysRepositoryException
- If cannot get the workflow identifier of the content
-
editContent
public Map<String,Object> editContent(WorkflowAwareContent content, Map<String,Object> values, int workflowActionId) throws com.opensymphony.workflow.WorkflowException
Edit aContent
programmatically.- Parameters:
content
- theModifiableContent
.values
- the typed values to set.workflowActionId
- the id of the workflow action- Returns:
- the workflow results.
- Throws:
com.opensymphony.workflow.WorkflowException
- if an error occurs while processing the workflow action
-
editContent
public Map<String,Object> editContent(WorkflowAwareContent content, Map<String,Object> values, int workflowActionId, View view) throws com.opensymphony.workflow.WorkflowException
Edit aContent
programmatically.- Parameters:
content
- theModifiableContent
.values
- the typed values to set.workflowActionId
- the id of the workflow actionview
- the view to edit- Returns:
- the workflow results.
- Throws:
com.opensymphony.workflow.WorkflowException
- if an error occurs while processing the workflow action
-
-