Interface CMSItemDeepCloningService
- All Known Implementing Classes:
DefaultCMSItemDeepCloningService
public interface CMSItemDeepCloningService
Service to deep clone item models by specifying a
CMSModelCloningContext to the
CMSItemModelCloneCreator.
Note: CMSModelCloningContext and CMSItemModelCloneCreator respectively extends the
ModelCloningContext and
ItemModelCloneCreator to override some platform
behaviour.
-
Method Summary
Modifier and TypeMethodDescriptiondeepCloneComponent(ItemModel srcComponent, ModelCloningContext cloningContext) Creates a clone of the given component and deep copies all the component's attributes.generateCloneComponentName(String originalComponentName) Creates a new name to be used on a cloned component to avoid clashing with the original one.Creates a uid consisting of the prefixclone_and a generated number.generateCloneItemUid(String originalUid) Creates a new uid to be used on a cloned item to avoid clashing with the original one.
-
Method Details
-
deepCloneComponent
Creates a clone of the given component and deep copies all the component's attributes.- Parameters:
srcComponent- - the cms component to be clonedcloningContext- - the cloning context- Returns:
- a newly cloned component
-
generateCloneItemUid
String generateCloneItemUid()Creates a uid consisting of the prefixclone_and a generated number.- Returns:
- a new uid to be assigned to a cloned item; never null
-
generateCloneItemUid
Creates a new uid to be used on a cloned item to avoid clashing with the original one. Consisting of the following: - prefix (cms.item.deep.clone.attribute.uid.prefix in properties file) or "clone_" by default, - separator (cms.item.deep.clone.attribute.uid.separator in properties file) or "_" be default - generated number. Never adds the prefix if it already exists. The result length must not exceed the value cms.item.deep.clone.attribute.uid.max.length from properties or 100 by default.- Input: component1 Output: clone_component1_123
- Input: component1_123 Output: clone_component1_123_456
- Input: clone_component1_123 Output: clone_component1_123_789
- Parameters:
originalUid- - the original uid used as base for the clone uid- Returns:
- a new uid to be assigned to a cloned item; never null
-
generateCloneComponentName
Creates a new name to be used on a cloned component to avoid clashing with the original one. Consisting of the following: - prefix (cms.item.deep.clone.attribute.name.prefix in properties file) or "Clone" by default, - separator (cms.item.deep.clone.attribute.name.separator in properties file) or " " be default - generated number. Never adds the prefix if it already exists. The result length must not exceed the value cms.item.deep.clone.attribute.name.max.length from properties or 100 by default. Examples:- Input: component1 Output: Clone component1 123
- Input: component1 123 Output: component1 123 456
- Input: this is a component Output: Clone this is a component 789
- Input: Clone this is a component Output: Clone this is a component 789
- Parameters:
originalComponentName- - the original name to use as a base for the clone name.- Returns:
- the name to use for the cloned component
-