Class DefaultCMSVersionService
- java.lang.Object
-
- de.hybris.platform.cms2.version.service.impl.DefaultCMSVersionService
-
- All Implemented Interfaces:
CMSVersionService
public class DefaultCMSVersionService extends java.lang.Object implements CMSVersionService
Default implementation of theCMSVersionService
-
-
Constructor Summary
Constructors Constructor Description DefaultCMSVersionService()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleanbelongsToPage(CMSItemModel itemModel)Determines if the item is a content slot defined for the page (ContentSlotForPage relation) or the page template (ContentSlotForTemplate relation).protected voidcheckChangeTypePermission(java.lang.String typeCode)Checks whether current user has CHANGE type permission for typeCode;protected voidcheckCreateTypePermission(java.lang.String typeCode)Checks whether current user has CREATE type permission for typeCode;protected voidcheckReadTypePermission(java.lang.String typeCode)Checks whether current user has READ type permission for typeCode;protected voidcheckRemoveTypePermission(java.lang.String typeCode)Checks whether current user has REMOVE type permission for typeCode;ItemModelcreateItemFromVersion(CMSVersionModel version)Creates a newItemModeland populates the item model using the data saved in theCMSVersionModel.protected CMSVersionModelcreatePartialVersionForItem(CMSItemModel itemModel)Generates a partial version for ItemModel.CMSVersionModelcreateRevisionForItem(CMSItemModel itemModel)Creates a revision for the given item and updates its payload.CMSVersionModelcreateVersionForItem(CMSItemModel itemModel, java.lang.String label, java.lang.String description)Creates a version for the given item and updates its payload.voiddeleteVersionsForItem(CMSItemModel itemModel)Deletes all tagged versions for aCMSItemModel.java.util.Optional<AbstractPageModel>findPageVersionedByTransactionId(java.lang.String transactionId)Finds the page associated to a transaction ID.protected java.lang.StringgeneratePayloadForVersion(CMSVersionModel version)Generates a payload for a version.protected java.lang.StringgenerateTransactionId()Generates transaction id using transactionIdGenerator.java.lang.StringgenerateVersionUid()Generates version uid using versionUidGenerator.CMSAdminContentSlotServicegetCmsAdminContentSlotService()protected CMSAdminItemServicegetCmsAdminItemService()protected CMSAdminSiteServicegetCmsAdminSiteService()protected CMSItemModelgetCMSItemByVersion(CMSVersionModel version)SessionSearchRestrictionsDisablergetCmsSessionSearchRestrictionsDisabler()protected CMSVersionDaogetCmsVersionDao()protected CMSVersionSessionContextProvidergetCmsVersionSessionContextProvider()protected Converter<ItemModel,java.lang.String>getCmsVersionToDataConverter()protected Converter<CMSVersionModel,ItemModel>getCmsVersionToModelPreviewConverter()Converter<CMSVersionModel,ItemModel>getCmsVersionToModelRollbackConverter()protected java.util.function.Predicate<ItemModel>getContentPageTypePredicate()ItemModelgetItemFromVersion(CMSVersionModel version)Retrieves an existingItemModeland populates the item model using the data saved in theCMSVersionModel.protected ModelServicegetModelService()protected java.util.function.Predicate<ItemModel>getPageTypePredicate()protected PermissionCRUDServicegetPermissionCRUDService()protected SessionServicegetSessionService()java.lang.StringgetTransactionId()Returns the version ID stored in the session attributeSessionServiceCms2Constants.SESSION_VERSION_TRANSACTION_ID.protected PersistentKeyGeneratorgetTransactionIdGenerator()protected TypeServicegetTypeService()java.util.Optional<CMSVersionModel>getVersionByLabel(CMSItemModel itemModel, java.lang.String label)Finds the {code CMSVersionModel} containing the provided label for a given item.java.util.Optional<CMSVersionModel>getVersionByUid(java.lang.String uid)Finds the {code CMSVersionModel} by uid.protected java.util.List<CMSVersionModel>getVersionsForItem(CMSItemModel itemModel)Finds allCMSVersionModelversions for a givenCMSItemModelprotected PersistentKeyGeneratorgetVersionUidGenerator()protected booleanisInActiveSessionCatalog(CMSItemModel itemModel)Determines if the item is defined in the current (active session) catalog version or in a parent catalog (multi-country).protected booleanisPreview()protected booleanisTaggedVersion(CMSVersionModel cmsVersionModel)Determines if the cms version is taggedbooleanisVersionable(CMSItemModel itemModel)Determines if an itemModel is versionableprotected voidrestoreHomepageAttribute(ItemModel itemModel)Restore homepage attribute for Content pages to use the value from the original page.java.util.Optional<ItemModel>rollbackVersionForUid(java.lang.String uid)Rolls back anItemModelto a specific version.voidsetCmsAdminContentSlotService(CMSAdminContentSlotService cmsAdminContentSlotService)voidsetCmsAdminItemService(CMSAdminItemService cmsAdminItemService)voidsetCmsAdminSiteService(CMSAdminSiteService cmsAdminSiteService)voidsetCmsSessionSearchRestrictionsDisabler(SessionSearchRestrictionsDisabler cmsSessionSearchRestrictionsDisabler)voidsetCmsVersionDao(CMSVersionDao cmsVersionDao)voidsetCmsVersionSessionContextProvider(CMSVersionSessionContextProvider cmsVersionSessionContextProvider)voidsetCmsVersionToDataConverter(Converter<ItemModel,java.lang.String> cmsVersionToDataConverter)voidsetCmsVersionToModelPreviewConverter(Converter<CMSVersionModel,ItemModel> cmsVersionToModelPreviewConverter)voidsetCmsVersionToModelRollbackConverter(Converter<CMSVersionModel,ItemModel> cmsVersionToModelRollbackConverter)voidsetContentPageTypePredicate(java.util.function.Predicate<ItemModel> contentPageTypePredicate)voidsetModelService(ModelService modelService)voidsetPageTypePredicate(java.util.function.Predicate<ItemModel> pageTypePredicate)voidsetPermissionCRUDService(PermissionCRUDService permissionCRUDService)voidsetSessionService(SessionService sessionService)voidsetTransactionIdGenerator(PersistentKeyGenerator transactionIdGenerator)voidsetTypeService(TypeService typeService)voidsetVersionUidGenerator(PersistentKeyGenerator versionUidGenerator)protected voidthrowTypePermissionException(java.lang.String permissionName, java.lang.String typeCode)ThrowsTypePermissionExceptionif current user does not have permission for typeCode.protected voidupdatePageApprovalStatus(ItemModel itemModel)Updates the approval status attribute for any pages toCHECK, to indicate that the page was modified.
-
-
-
Method Detail
-
generatePayloadForVersion
protected java.lang.String generatePayloadForVersion(CMSVersionModel version)
Generates a payload for a version.- Parameters:
version- The CMSVersion model.- Returns:
- The payload for a version.
-
createItemFromVersion
public ItemModel createItemFromVersion(CMSVersionModel version)
Creates a newItemModeland populates the item model using the data saved in theCMSVersionModel.
Primary key field values will be created on saving theItemModelto the persistence store, including anyItemModel's that are in relationship with the targetItemModel.- Specified by:
createItemFromVersionin interfaceCMSVersionService- Parameters:
version- The version used to create anItemModel- Returns:
- The new
ItemModelcreated from the version payload
-
getItemFromVersion
public ItemModel getItemFromVersion(CMSVersionModel version)
Retrieves an existingItemModeland populates the item model using the data saved in theCMSVersionModel.
Primary keys will be preserved for the retrievedItemModeland anyItemModel's that are in relationship with the target.- Specified by:
getItemFromVersionin interfaceCMSVersionService- Parameters:
version- The version used to retrieve anItemModel- Returns:
- The existing
ItemModelupdated with the data from the version payload
-
getVersionByUid
public java.util.Optional<CMSVersionModel> getVersionByUid(java.lang.String uid)
Description copied from interface:CMSVersionServiceFinds the {code CMSVersionModel} by uid.- Specified by:
getVersionByUidin interfaceCMSVersionService- Parameters:
uid- The uid of the CMSVersion model- Returns:
- The CMSVersion model; can be
Optional#empty()
-
getVersionByLabel
public java.util.Optional<CMSVersionModel> getVersionByLabel(CMSItemModel itemModel, java.lang.String label)
Description copied from interface:CMSVersionServiceFinds the {code CMSVersionModel} containing the provided label for a given item.- Specified by:
getVersionByLabelin interfaceCMSVersionService- Parameters:
itemModel- the item model containing all the versions to search inlabel- the label on the cms version to search for- Returns:
- The CMSVersion model; can be
Optional#empty()
-
getVersionsForItem
protected java.util.List<CMSVersionModel> getVersionsForItem(CMSItemModel itemModel)
Finds allCMSVersionModelversions for a givenCMSItemModel- Parameters:
itemModel- the item model for which to return all versions- Returns:
- A List of
CMSVersionModel
-
getTransactionId
public java.lang.String getTransactionId()
Description copied from interface:CMSVersionServiceReturns the version ID stored in the session attributeSessionServiceCms2Constants.SESSION_VERSION_TRANSACTION_ID.- Specified by:
getTransactionIdin interfaceCMSVersionService- Returns:
- The Version ID.
-
createRevisionForItem
public CMSVersionModel createRevisionForItem(CMSItemModel itemModel)
Description copied from interface:CMSVersionServiceCreates a revision for the given item and updates its payload.Note that a "revision" is a
CMSVersionModelwithout a label.- Specified by:
createRevisionForItemin interfaceCMSVersionService- Parameters:
itemModel- The item model for versioning.- Returns:
- The CMSVersion model.
-
createVersionForItem
public CMSVersionModel createVersionForItem(CMSItemModel itemModel, java.lang.String label, java.lang.String description)
Description copied from interface:CMSVersionServiceCreates a version for the given item and updates its payload.Note that a "version" is a
CMSVersionModelwith an existing label.- Specified by:
createVersionForItemin interfaceCMSVersionService- Parameters:
itemModel- The item model for versioning.label- The label for the versiondescription- The description for the version- Returns:
- The CMSVersion model.
-
rollbackVersionForUid
public java.util.Optional<ItemModel> rollbackVersionForUid(java.lang.String uid)
Description copied from interface:CMSVersionServiceRolls back anItemModelto a specific version. If no version is found, anOptional#empty()is returned.- Specified by:
rollbackVersionForUidin interfaceCMSVersionService- Parameters:
uid- The uid of theCMSVersionModelwhich theItemModelwill be rolled back to- Returns:
- an
Optionalcontaining the updatedItemModelafter it was rolled back; can beOptional#empty()when no version is found to perform the rollback operation.
-
isPreview
protected boolean isPreview()
-
restoreHomepageAttribute
protected void restoreHomepageAttribute(ItemModel itemModel)
Restore homepage attribute for Content pages to use the value from the original page.- Parameters:
itemModel- the item model.
-
updatePageApprovalStatus
protected void updatePageApprovalStatus(ItemModel itemModel)
Updates the approval status attribute for any pages toCHECK, to indicate that the page was modified.- Parameters:
itemModel- the item model.
-
createPartialVersionForItem
protected CMSVersionModel createPartialVersionForItem(CMSItemModel itemModel)
Generates a partial version for ItemModel. Note: A version entry is considered as partially field when the payload attribute is not populated.- Parameters:
itemModel- The item model for versioning.- Returns:
- The partially filled CMSVersion model.
-
generateVersionUid
public java.lang.String generateVersionUid()
Generates version uid using versionUidGenerator.- Specified by:
generateVersionUidin interfaceCMSVersionService- Returns:
- The uid of the version.
-
isVersionable
public boolean isVersionable(CMSItemModel itemModel)
Determines if an itemModel is versionable An item is versionable when:- ItemModel is a CMSItemModel
- CMSItemModel is in the currently active CatalogVersion
- CMSItemModel is not a shared content slot
- Specified by:
isVersionablein interfaceCMSVersionService- Parameters:
itemModel- The item model.- Returns:
- TRUE if the item is versionable; FALSE otherwise.
-
deleteVersionsForItem
public void deleteVersionsForItem(CMSItemModel itemModel)
Description copied from interface:CMSVersionServiceDeletes all tagged versions for aCMSItemModel. Does not delete orphaned aggregated types linked to the item by relations. They will be deleted by garbage collection if enabled.- Specified by:
deleteVersionsForItemin interfaceCMSVersionService- Parameters:
itemModel- the item model for which all related tagged versions will be deleted
-
findPageVersionedByTransactionId
public java.util.Optional<AbstractPageModel> findPageVersionedByTransactionId(java.lang.String transactionId)
Description copied from interface:CMSVersionServiceFinds the page associated to a transaction ID.When a page is versioned, the page and all its associated items are versioned. Each of them has a different version, but they all share the same transactionId; only one page can be associated to a transaction ID.
- Specified by:
findPageVersionedByTransactionIdin interfaceCMSVersionService- Parameters:
transactionId- The ID of the transaction for which to find its associated page.- Returns:
- an
Optionalcontaining the page associated to the given transactionId; can beOptional#empty()when the transactionId identifies a transaction where a page was not versioned.
-
isTaggedVersion
protected boolean isTaggedVersion(CMSVersionModel cmsVersionModel)
Determines if the cms version is tagged- Parameters:
cmsVersionModel- the cms version- Returns:
- true if the cms version has a valid label
-
isInActiveSessionCatalog
protected boolean isInActiveSessionCatalog(CMSItemModel itemModel)
Determines if the item is defined in the current (active session) catalog version or in a parent catalog (multi-country).- Parameters:
itemModel- the item to be evaluated- Returns:
- TRUE when the item is defined in the active catalog version; FALSE otherwise.
-
belongsToPage
protected boolean belongsToPage(CMSItemModel itemModel)
Determines if the item is a content slot defined for the page (ContentSlotForPage relation) or the page template (ContentSlotForTemplate relation).- Parameters:
itemModel- the item to be evaluated- Returns:
- TRUE when the item is defined for the page; FALSE otherwise.
-
generateTransactionId
protected java.lang.String generateTransactionId()
Generates transaction id using transactionIdGenerator.
-
getCMSItemByVersion
protected CMSItemModel getCMSItemByVersion(CMSVersionModel version)
-
checkReadTypePermission
protected void checkReadTypePermission(java.lang.String typeCode)
Checks whether current user has READ type permission for typeCode;- Parameters:
typeCode- the type code
-
checkCreateTypePermission
protected void checkCreateTypePermission(java.lang.String typeCode)
Checks whether current user has CREATE type permission for typeCode;- Parameters:
typeCode- the type code
-
checkRemoveTypePermission
protected void checkRemoveTypePermission(java.lang.String typeCode)
Checks whether current user has REMOVE type permission for typeCode;- Parameters:
typeCode- the type code
-
checkChangeTypePermission
protected void checkChangeTypePermission(java.lang.String typeCode)
Checks whether current user has CHANGE type permission for typeCode;- Parameters:
typeCode- the type code
-
throwTypePermissionException
protected void throwTypePermissionException(java.lang.String permissionName, java.lang.String typeCode)ThrowsTypePermissionExceptionif current user does not have permission for typeCode.- Parameters:
permissionName-typeCode-
-
getVersionUidGenerator
protected PersistentKeyGenerator getVersionUidGenerator()
-
setVersionUidGenerator
public void setVersionUidGenerator(PersistentKeyGenerator versionUidGenerator)
-
getTransactionIdGenerator
protected PersistentKeyGenerator getTransactionIdGenerator()
-
setTransactionIdGenerator
public void setTransactionIdGenerator(PersistentKeyGenerator transactionIdGenerator)
-
getSessionService
protected SessionService getSessionService()
-
setSessionService
public void setSessionService(SessionService sessionService)
-
getModelService
protected ModelService getModelService()
-
setModelService
public void setModelService(ModelService modelService)
-
getTypeService
protected TypeService getTypeService()
-
setTypeService
public void setTypeService(TypeService typeService)
-
getCmsAdminItemService
protected CMSAdminItemService getCmsAdminItemService()
-
setCmsAdminItemService
public void setCmsAdminItemService(CMSAdminItemService cmsAdminItemService)
-
getCmsVersionDao
protected CMSVersionDao getCmsVersionDao()
-
setCmsVersionDao
public void setCmsVersionDao(CMSVersionDao cmsVersionDao)
-
getCmsAdminContentSlotService
public CMSAdminContentSlotService getCmsAdminContentSlotService()
-
setCmsAdminContentSlotService
public void setCmsAdminContentSlotService(CMSAdminContentSlotService cmsAdminContentSlotService)
-
getCmsAdminSiteService
protected CMSAdminSiteService getCmsAdminSiteService()
-
setCmsAdminSiteService
public void setCmsAdminSiteService(CMSAdminSiteService cmsAdminSiteService)
-
getCmsVersionToDataConverter
protected Converter<ItemModel,java.lang.String> getCmsVersionToDataConverter()
-
setCmsVersionToDataConverter
public void setCmsVersionToDataConverter(Converter<ItemModel,java.lang.String> cmsVersionToDataConverter)
-
getCmsVersionToModelPreviewConverter
protected Converter<CMSVersionModel,ItemModel> getCmsVersionToModelPreviewConverter()
-
setCmsVersionToModelPreviewConverter
public void setCmsVersionToModelPreviewConverter(Converter<CMSVersionModel,ItemModel> cmsVersionToModelPreviewConverter)
-
getCmsVersionSessionContextProvider
protected CMSVersionSessionContextProvider getCmsVersionSessionContextProvider()
-
setCmsVersionSessionContextProvider
public void setCmsVersionSessionContextProvider(CMSVersionSessionContextProvider cmsVersionSessionContextProvider)
-
getCmsSessionSearchRestrictionsDisabler
public SessionSearchRestrictionsDisabler getCmsSessionSearchRestrictionsDisabler()
-
setCmsSessionSearchRestrictionsDisabler
public void setCmsSessionSearchRestrictionsDisabler(SessionSearchRestrictionsDisabler cmsSessionSearchRestrictionsDisabler)
-
getCmsVersionToModelRollbackConverter
public Converter<CMSVersionModel,ItemModel> getCmsVersionToModelRollbackConverter()
-
setCmsVersionToModelRollbackConverter
public void setCmsVersionToModelRollbackConverter(Converter<CMSVersionModel,ItemModel> cmsVersionToModelRollbackConverter)
-
getPermissionCRUDService
protected PermissionCRUDService getPermissionCRUDService()
-
setPermissionCRUDService
public void setPermissionCRUDService(PermissionCRUDService permissionCRUDService)
-
getPageTypePredicate
protected java.util.function.Predicate<ItemModel> getPageTypePredicate()
-
setPageTypePredicate
public void setPageTypePredicate(java.util.function.Predicate<ItemModel> pageTypePredicate)
-
getContentPageTypePredicate
protected java.util.function.Predicate<ItemModel> getContentPageTypePredicate()
-
setContentPageTypePredicate
public void setContentPageTypePredicate(java.util.function.Predicate<ItemModel> contentPageTypePredicate)
-
-