Class DefaultCMSItemDeepCloningService
java.lang.Object
de.hybris.platform.cms2.cloning.service.impl.DefaultCMSItemDeepCloningService
- All Implemented Interfaces:
CMSItemDeepCloningService
Default implementation of
CMSItemDeepCloningService to deep copy item models.-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final intprotected static final Stringprotected static final Stringprotected static final intprotected static final Stringprotected static final String -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondeepCloneComponent(ItemModel srcComponent, ModelCloningContext cloningContext) Creates a clone of the given component and deep copies all the component's attributes.protected StringformatCloneAttributeValue(String originalValue, String generatedId, String prefix, String separator) Formats the value using the following pattern:clone_<originalUid>_<generatedId>.generateCloneComponentName(String originalComponentName) Creates a new name to be used on a cloned component to avoid clashing with the original one.protected StringgenerateClonedAttributeValue(String originalValue, String prefix, String separator, int maxLength) Generates a clone representation of original string value.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.protected PersistentKeyGeneratorprotected CMSItemModelCloneCreatorgetPropertySupplier(String propertyKey, Integer defaultValue) Returns the value from the properties file.getPropertySupplier(String propertyKey, String defaultValue) Returns the value from the properties file.voidsetCloneUidGenerator(PersistentKeyGenerator cloneUidGenerator) voidsetCmsItemModelCloneCreator(CMSItemModelCloneCreator cmsItemModelCloneCreator) voidsetConfigurationService(ConfigurationService configurationService)
-
Field Details
-
ATTRIBUTE_UID_PREFIX_KEY
- See Also:
-
DEFAULT_ATTRIBUTE_UID_PREFIX
- See Also:
-
ATTRIBUTE_UID_SEPARATOR_KEY
- See Also:
-
DEFAULT_ATTRIBUTE_UID_SEPARATOR
- See Also:
-
ATTRIBUTE_UID_MAX_LENGTH
- See Also:
-
DEFAULT_ATTRIBUTE_UID_MAX_LENGTH
protected static final int DEFAULT_ATTRIBUTE_UID_MAX_LENGTH- See Also:
-
ATTRIBUTE_NAME_PREFIX_KEY
- See Also:
-
DEFAULT_ATTRIBUTE_NAME_PREFIX
- See Also:
-
ATTRIBUTE_NAME_SEPARATOR_KEY
- See Also:
-
DEFAULT_ATTRIBUTE_NAME_SEPARATOR
- See Also:
-
ATTRIBUTE_NAME_MAX_LENGTH
- See Also:
-
DEFAULT_ATTRIBUTE_NAME_MAX_LENGTH
protected static final int DEFAULT_ATTRIBUTE_NAME_MAX_LENGTH- See Also:
-
-
Constructor Details
-
DefaultCMSItemDeepCloningService
public DefaultCMSItemDeepCloningService()
-
-
Method Details
-
deepCloneComponent
Description copied from interface:CMSItemDeepCloningServiceCreates a clone of the given component and deep copies all the component's attributes.- Specified by:
deepCloneComponentin interfaceCMSItemDeepCloningService- Parameters:
srcComponent- - the cms component to be clonedcloningContext- - the cloning context- Returns:
- a newly cloned component
-
generateCloneItemUid
Description copied from interface:CMSItemDeepCloningServiceCreates a uid consisting of the prefixclone_and a generated number.- Specified by:
generateCloneItemUidin interfaceCMSItemDeepCloningService- Returns:
- a new uid to be assigned to a cloned item; never null
-
generateCloneItemUid
Description copied from interface:CMSItemDeepCloningServiceCreates 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
- Specified by:
generateCloneItemUidin interfaceCMSItemDeepCloningService- 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
Description copied from interface:CMSItemDeepCloningServiceCreates 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
- Specified by:
generateCloneComponentNamein interfaceCMSItemDeepCloningService- Parameters:
originalComponentName- - the original name to use as a base for the clone name.- Returns:
- the name to use for the cloned component
-
generateClonedAttributeValue
protected String generateClonedAttributeValue(String originalValue, String prefix, String separator, int maxLength) Generates a clone representation of original string value. It takes the original value and adds a prefix to it as well as the generated unique id.- Parameters:
originalValue- the original value used to generate a new value.- Returns:
- the new value.
-
formatCloneAttributeValue
protected String formatCloneAttributeValue(String originalValue, String generatedId, String prefix, String separator) Formats the value using the following pattern:clone_<originalUid>_<generatedId>. It does not adds prefix if it already exists.- Parameters:
originalValue- the original valuegeneratedId- the generated id- Returns:
- the formatted value
-
getPropertySupplier
Returns the value from the properties file.- Parameters:
propertyKey- the property namedefaultValue- the default value- Returns:
- the
Supplierthat retrieves the property
-
getPropertySupplier
Returns the value from the properties file.- Parameters:
propertyKey- the property namedefaultValue- the default value- Returns:
- the
Supplierthat retrieves the property
-
getCmsItemModelCloneCreator
-
setCmsItemModelCloneCreator
-
getCloneUidGenerator
-
setCloneUidGenerator
-
getConfigurationService
-
setConfigurationService
-