Package org.ametys.cms.workflow.copy
Class CreateContentByCopyFunction
java.lang.Object
org.ametys.plugins.workflow.AbstractWorkflowComponent
org.ametys.cms.workflow.AbstractContentWorkflowComponent
org.ametys.cms.workflow.CreateContentFunction
org.ametys.cms.workflow.copy.CreateContentByCopyFunction
- All Implemented Interfaces:
com.opensymphony.workflow.FunctionProvider
,EnhancedFunction
,LogEnabled
,Serviceable
- Direct Known Subclasses:
AbstractCreateODFContentByCopyFunction
,CreateContentByCopyFunction
OSWorkflow function to create a content by copy of another
The required transient variables:
- CreateContentByCopyFunction.BASE_CONTENT_KEY - Content The content that will be used for duplication.
- or CreateContentByCopyFunction.BASE_CONTENT_ID - String The id of content The content that will be used for duplication.
- CreateContentByCopyFunction.COPY_MAP_KEY - Map<String, Object> The map of properties to copy. Can be null if CreateContentByCopyFunction.COPY_VIEW_NAME is used
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.ametys.plugins.workflow.EnhancedFunction
EnhancedFunction.FunctionArgument
-
Field Summary
Modifier and TypeFieldDescriptionprotected CopyContentComponent
The content copy componentprotected ContentTypesHelper
The content type helperprotected I18nUtils
I18n Utilsstatic final String
Constant for storing the id of base content used for the duplication into the transient variables map.static final String
Constant for storing the base content used for the duplication into the transient variables map.static final String
Constant for storing the name of fallback view to use for copy.static final String
Constant for storing the map containing the duplication info into the transient variables map.static final String
Constant for storing the copy report object into the transient variables map.static final String
Constant for storing the name of view use for copy.Fields inherited from class org.ametys.cms.workflow.CreateContentFunction
_contentTypeEP, _contentTypeHelper, _observationManager, _resolver, CONTENT_LANGUAGE_KEY, CONTENT_MIXINS_KEY, CONTENT_NAME_KEY, CONTENT_TITLE_KEY, CONTENT_TITLE_VARIANTS_KEY, CONTENT_TYPES_KEY, INITIAL_VALUE_SUPPLIER, PARENT_CONTENT_ID_KEY, PARENT_CONTENT_METADATA_PATH_KEY, PARENT_CONTEXT_VALUE
Fields inherited from class org.ametys.cms.workflow.AbstractContentWorkflowComponent
_contentHelper, CONTENT_KEY, HAS_CHANGED_KEY
Fields inherited from class org.ametys.plugins.workflow.AbstractWorkflowComponent
_logger, _manager, CONTEXT_PARAMETERS_KEY, FAIL_CONDITIONS_KEY, RESULT_MAP_KEY, WORKFLOW_ERRORS_KEY, WORKFLOW_WARNS_KEY
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
getAdditionalCopyMap
(Map transientVars, Content content, String viewName, String fallbackViewName) Get an additional copy map, if any.protected Content
getBaseContentForCopy
(Map transientVars) Get the contentprotected void
processValues
(Map transientVars, ModifiableContent targetContent, Map<String, Object> values) Called after creation and before execution of theEditContentFunction
to allow subclasses to add/remove/modify the values.void
service
(ServiceManager manager) Methods inherited from class org.ametys.cms.workflow.CreateContentFunction
_createContent, _eventParamsForContentAdded, _getContentRoot, _getDefaultNameComputationMode, _getNameComputationMode, _getNonNullVar, _getObjectType, _getSubContentRoot, _initWorkflow, _isMultilingual, _notifyContentAdded, _populateAdditionalData, _populateContent, _setTitle, getArguments, getDescription, getSystemUser
Methods inherited from class org.ametys.cms.workflow.AbstractContentWorkflowComponent
getContent
Methods inherited from class org.ametys.plugins.workflow.AbstractWorkflowComponent
addWorkflowError, addWorkflowWarning, enableLogging, getConditionFailures, getContextParameters, getResultsMap, getUser
-
Field Details
-
BASE_CONTENT_KEY
Constant for storing the base content used for the duplication into the transient variables map. -
BASE_CONTENT_ID
Constant for storing the id of base content used for the duplication into the transient variables map. -
COPY_MAP_KEY
Constant for storing the map containing the duplication info into the transient variables map. Can be null. -
COPY_REPORT_KEY
Constant for storing the copy report object into the transient variables map. Can be null. -
COPY_VIEW_NAME
Constant for storing the name of view use for copy. -
COPY_FALLBACK_VIEW_NAME
Constant for storing the name of fallback view to use for copy. -
_copyContentComponent
The content copy component -
_cTypesHelper
The content type helper -
_i18nUtils
I18n Utils
-
-
Constructor Details
-
CreateContentByCopyFunction
public CreateContentByCopyFunction()
-
-
Method Details
-
service
- Specified by:
service
in interfaceServiceable
- Overrides:
service
in classCreateContentFunction
- Throws:
ServiceException
-
execute
public void execute(Map transientVars, Map args, com.opensymphony.module.propertyset.PropertySet ps) throws com.opensymphony.workflow.WorkflowException - Specified by:
execute
in interfacecom.opensymphony.workflow.FunctionProvider
- Overrides:
execute
in classCreateContentFunction
- Throws:
com.opensymphony.workflow.WorkflowException
-
processValues
protected void processValues(Map transientVars, ModifiableContent targetContent, Map<String, Object> values) throws com.opensymphony.workflow.WorkflowExceptionCalled after creation and before execution of theEditContentFunction
to allow subclasses to add/remove/modify the values.- Parameters:
transientVars
- The workflow transient varstargetContent
- The newly created contentvalues
- the values computed from the copyMap and to be given to the EditContentFunction.- Throws:
com.opensymphony.workflow.WorkflowException
- if an error occurs
-
getBaseContentForCopy
Get the content- Parameters:
transientVars
- The workflow transient vars with BASE_CONTENT_KEY (the content itself) or BASE_CONTENT_ID (the id of the content)- Returns:
- the content or null if the object cannot be found
-
getAdditionalCopyMap
protected Map<String,Object> getAdditionalCopyMap(Map transientVars, Content content, String viewName, String fallbackViewName) throws com.opensymphony.workflow.WorkflowException Get an additional copy map, if any. It allows subclasses to provide additional data to copy. This map is concatenated to the initial copy map.- Parameters:
transientVars
- the workflow parameterscontent
- the source content to be copiedviewName
- the view namefallbackViewName
- the fallback view name, if required view does not exist- Returns:
- the additional copy map, or null if none.
- Throws:
com.opensymphony.workflow.WorkflowException
- if an error occurs
-