Class DefaultPageService
- java.lang.Object
-
- com.atlassian.confluence.content.service.DefaultPageService
-
- All Implemented Interfaces:
PageService
public class DefaultPageService extends Object implements PageService
-
-
Constructor Summary
Constructors Constructor Description DefaultPageService(PageManager pageManager, PermissionManager permissionManager, ContentPermissionManager contentPermissionManager, DraftService draftService, AttachmentManager attachmentManager, NotificationManager notificationManager, com.atlassian.event.api.EventPublisher eventPublisher, ContentPropertyManager contentPropertyManager, LabelManager labelManager, com.google.common.base.Supplier<DraftsTransitionHelper> draftsTransitionHelperSupplier, LongRunningTaskManagerInternal longRunningTaskManager)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PageLocator
getIdPageLocator(long pageId)
Creates a page locator that can locate a page based on an id.PageLocator
getPageVersionLocator(long pageId, int version)
PageLocator
getTitleAndSpaceKeyPageLocator(String spaceKey, String title)
Creates a page locator that can locate a page based on a space key and title.ServiceCommand
newCreatePageCommand(PageProvider provider, ContentPermissionProvider permissionProvider, CreateContextProvider contextProvider, ContentEntityObject draft, com.atlassian.user.User user, boolean notifySelf)
Retrieve a command for creating a new page for the specified user.ServiceCommand
newCreatePageCommand(PageProvider provider, ContentPermissionProvider permissionProvider, CreateContextProvider contextProvider, Draft draft, com.atlassian.user.User user, boolean notifySelf)
Retrieve a command for creating a new page for the specified user.ServiceCommand
newCreatePageCommand(PageProvider provider, ContentPermissionProvider permissionProvider, CreateContextProvider contextProvider, Page draft, com.atlassian.user.User user, boolean notifySelf)
Retrieve a command for creating a new page for the specified user.ServiceCommand
newCreatePageCommandFromExisting(PageProvider pageProvider, ContentPermissionProvider permissionProvider, CreateContextProvider contextProvider, ContentEntityObject draft, com.atlassian.user.User user, boolean notifySelf, SpaceProvider spaceProvider)
This is not a public API method! Creating a page from an existing page has different authorisation and validation logic from creating a brand new page.ServiceCommand
newCreatePageCommandFromExisting(PageProvider pageProvider, ContentPermissionProvider permissionProvider, CreateContextProvider contextProvider, Page draft, com.atlassian.user.User user, boolean notifySelf, SpaceProvider spaceProvider)
This is not a public API method! Creating a page from an existing page has different authorisation and validation logic from creating a brand new page.ServiceCommand
newCreatePageCommandFromExisting(PageProvider provider, ContentPermissionProvider permissionProvider, ContentEntityObject draft, com.atlassian.user.User user, boolean notifySelf, SpaceProvider spaceProvider)
This is not a public API method! Creating a page from an existing page has different authorisation and validation logic from creating a brand new page.ServiceCommand
newCreatePageCommandFromExisting(PageProvider provider, ContentPermissionProvider permissionProvider, Draft draft, com.atlassian.user.User user, boolean notifySelf, SpaceProvider spaceProvider)
This is not a public API method! Creating a page from an existing page has different authorisation and validation logic from creating a brand new page.ServiceCommand
newDeletePageCommand(PageLocator pageLocator)
Retrieve a command to remove an existing pageMovePageCommand
newMovePageCommand(PageLocator sourcePageLocator, PageLocator targetPageLocator, String position)
Retrieve a command to perform a simple move operation.MovePageCommand
newMovePageCommand(PageLocator sourcePageLocator, SpaceLocator targetSpaceLocator)
Retrieve a command that performs a move operation of a page to a top level of a target space.ServiceCommand
newRemovePageVersionCommand(PageLocator pageLocator)
ServiceCommand
newRevertPageCommand(PageLocator pageToRevert, int version, String revertComment, boolean revertTitle)
Retrieve a command to revert a pageServiceCommand
newRevertPageOrderCommand(PageLocator parentPageLocator)
Retrieve a command to clear any existing positions for children of the located Page.ServiceCommand
newSetPageOrderCommand(PageLocator parentPageLocator, List<Long> childPageIds)
Retrieve a command to set the order of all children for a supplied parent Page locator.void
setPermissionManager(PermissionManager permissionManager)
-
-
-
Constructor Detail
-
DefaultPageService
public DefaultPageService(PageManager pageManager, PermissionManager permissionManager, ContentPermissionManager contentPermissionManager, DraftService draftService, AttachmentManager attachmentManager, NotificationManager notificationManager, com.atlassian.event.api.EventPublisher eventPublisher, ContentPropertyManager contentPropertyManager, LabelManager labelManager, com.google.common.base.Supplier<DraftsTransitionHelper> draftsTransitionHelperSupplier, LongRunningTaskManagerInternal longRunningTaskManager)
- Since:
- 5.10
-
-
Method Detail
-
newMovePageCommand
public MovePageCommand newMovePageCommand(PageLocator sourcePageLocator, PageLocator targetPageLocator, String position)
Description copied from interface:PageService
Retrieve a command to perform a simple move operation.- Specified by:
newMovePageCommand
in interfacePageService
position
- the point describing where the source should be moved to in relation to the target, seeMovePageCommand
- Returns:
- an appropriate command instance
-
newMovePageCommand
public MovePageCommand newMovePageCommand(PageLocator sourcePageLocator, SpaceLocator targetSpaceLocator)
Description copied from interface:PageService
Retrieve a command that performs a move operation of a page to a top level of a target space.- Specified by:
newMovePageCommand
in interfacePageService
-
newSetPageOrderCommand
public ServiceCommand newSetPageOrderCommand(PageLocator parentPageLocator, List<Long> childPageIds)
Description copied from interface:PageService
Retrieve a command to set the order of all children for a supplied parent Page locator.- Specified by:
newSetPageOrderCommand
in interfacePageService
- Parameters:
parentPageLocator
- locator for the parent Page objectchildPageIds
- a list of child page ids
-
newRevertPageOrderCommand
public ServiceCommand newRevertPageOrderCommand(PageLocator parentPageLocator)
Description copied from interface:PageService
Retrieve a command to clear any existing positions for children of the located Page.- Specified by:
newRevertPageOrderCommand
in interfacePageService
-
newDeletePageCommand
public ServiceCommand newDeletePageCommand(PageLocator pageLocator)
Description copied from interface:PageService
Retrieve a command to remove an existing page- Specified by:
newDeletePageCommand
in interfacePageService
-
newRemovePageVersionCommand
public ServiceCommand newRemovePageVersionCommand(PageLocator pageLocator)
- Specified by:
newRemovePageVersionCommand
in interfacePageService
- Parameters:
pageLocator
- a page locator that identifies either the historical version of a page directly (e.g.IdPageLocator
) or the page and a version (e.g.IdAndVersionPageLocator
).- Returns:
- a command to remove a version of a page.
-
getIdPageLocator
public PageLocator getIdPageLocator(long pageId)
Description copied from interface:PageService
Creates a page locator that can locate a page based on an id.- Specified by:
getIdPageLocator
in interfacePageService
-
getTitleAndSpaceKeyPageLocator
public PageLocator getTitleAndSpaceKeyPageLocator(String spaceKey, String title)
Description copied from interface:PageService
Creates a page locator that can locate a page based on a space key and title.- Specified by:
getTitleAndSpaceKeyPageLocator
in interfacePageService
-
getPageVersionLocator
public PageLocator getPageVersionLocator(long pageId, int version)
- Specified by:
getPageVersionLocator
in interfacePageService
- Parameters:
pageId
- the id of the original version of the pageversion
- a historical version, where 1 refers to version 1.- Returns:
- a page locator that will locate a historical version of a page.
-
newRevertPageCommand
public ServiceCommand newRevertPageCommand(PageLocator pageToRevert, int version, String revertComment, boolean revertTitle)
Description copied from interface:PageService
Retrieve a command to revert a page- Specified by:
newRevertPageCommand
in interfacePageService
-
newCreatePageCommand
public ServiceCommand newCreatePageCommand(PageProvider provider, ContentPermissionProvider permissionProvider, CreateContextProvider contextProvider, Page draft, com.atlassian.user.User user, boolean notifySelf)
Description copied from interface:PageService
Retrieve a command for creating a new page for the specified user.- Specified by:
newCreatePageCommand
in interfacePageService
- Parameters:
provider
- an object that will provide the page to be created.permissionProvider
- provide the permissions to be applied to the created page.contextProvider
- an object that can provide a context to be included when publishing the page creation eventuser
- the user creating this pagenotifySelf
- a flag indicating whether the user wants to be notified about this page creation.- Returns:
- a CreatePageCommand for creating the specified page.
-
newCreatePageCommand
public ServiceCommand newCreatePageCommand(PageProvider provider, ContentPermissionProvider permissionProvider, CreateContextProvider contextProvider, ContentEntityObject draft, com.atlassian.user.User user, boolean notifySelf)
Description copied from interface:PageService
Retrieve a command for creating a new page for the specified user.- Specified by:
newCreatePageCommand
in interfacePageService
- Parameters:
provider
- an object that will provide the page to be created.permissionProvider
- provide the permissions to be applied to the created page.contextProvider
- an object that can provide a context to be included when publishing the page creation eventuser
- the user creating this pagenotifySelf
- a flag indicating whether the user wants to be notified about this page creation.- Returns:
- a CreatePageCommand for creating the specified page.
-
newCreatePageCommand
public ServiceCommand newCreatePageCommand(PageProvider provider, ContentPermissionProvider permissionProvider, CreateContextProvider contextProvider, Draft draft, com.atlassian.user.User user, boolean notifySelf)
Description copied from interface:PageService
Retrieve a command for creating a new page for the specified user.- Specified by:
newCreatePageCommand
in interfacePageService
- Parameters:
provider
- an object that will provide the page to be created.permissionProvider
- provide the permissions to be applied to the created page.contextProvider
- an object that can provide a context to be included when publishing the page creation eventuser
- the user creating this pagenotifySelf
- a flag indicating whether the user wants to be notified about this page creation.- Returns:
- a CreatePageCommand for creating the specified page.
-
newCreatePageCommandFromExisting
public ServiceCommand newCreatePageCommandFromExisting(PageProvider provider, ContentPermissionProvider permissionProvider, Draft draft, com.atlassian.user.User user, boolean notifySelf, SpaceProvider spaceProvider)
Description copied from interface:PageService
This is not a public API method! Creating a page from an existing page has different authorisation and validation logic from creating a brand new page. This method allows creation of a command that implements that difference in logic. Apart from that the command created here will have the same logic as that created by
PageService.newCreatePageCommand(PageProvider, ContentPermissionProvider, CreateContextProvider, Draft, User, boolean)
.This logic in this command originates from
CopyPageAction
which differs from that ofCreatePageAction
.I hope that when we get a chance to analyse why
CopyPageAction
has different permission and validation logic we will eventually remove this method.- Specified by:
newCreatePageCommandFromExisting
in interfacePageService
- Parameters:
provider
- an object that will provide the page to be created.permissionProvider
- provide the permissions to be applied to the created page.draft
- the draft associated with the copy, if present.user
- the user creating this pagenotifySelf
- a flag indicating whether the user wants to be notified about this page creation. @return a CreatePageCommand for creating the specified page.spaceProvider
- provide the space where page will be created.
-
newCreatePageCommandFromExisting
public ServiceCommand newCreatePageCommandFromExisting(PageProvider provider, ContentPermissionProvider permissionProvider, ContentEntityObject draft, com.atlassian.user.User user, boolean notifySelf, SpaceProvider spaceProvider)
Description copied from interface:PageService
This is not a public API method! Creating a page from an existing page has different authorisation and validation logic from creating a brand new page. This method allows creation of a command that implements that difference in logic. Apart from that the command created here will have the same logic as that created by
PageService.newCreatePageCommand(PageProvider, ContentPermissionProvider, CreateContextProvider, Draft, User, boolean)
.This logic in this command originates from
CopyPageAction
which differs from that ofCreatePageAction
.I hope that when we get a chance to analyse why
CopyPageAction
has different permission and validation logic we will eventually remove this method.- Specified by:
newCreatePageCommandFromExisting
in interfacePageService
- Parameters:
provider
- an object that will provide the page to be created.permissionProvider
- provide the permissions to be applied to the created page.draft
- the draft associated with the copy, if present.user
- the user creating this pagenotifySelf
- a flag indicating whether the user wants to be notified about this page creation. @return a CreatePageCommand for creating the specified page.spaceProvider
- provide the space where page will be created.
-
newCreatePageCommandFromExisting
public ServiceCommand newCreatePageCommandFromExisting(PageProvider pageProvider, ContentPermissionProvider permissionProvider, CreateContextProvider contextProvider, ContentEntityObject draft, com.atlassian.user.User user, boolean notifySelf, SpaceProvider spaceProvider)
Description copied from interface:PageService
This is not a public API method! Creating a page from an existing page has different authorisation and validation logic from creating a brand new page. This method allows creation of a command that implements that difference in logic. Apart from that the command created here will have the same logic as that created by
PageService.newCreatePageCommand(PageProvider, ContentPermissionProvider, CreateContextProvider, Draft, User, boolean)
.This logic in this command originates from
CopyPageAction
which differs from that ofCreatePageAction
.I hope that when we get a chance to analyse why
CopyPageAction
has different permission and validation logic we will eventually remove this method.- Specified by:
newCreatePageCommandFromExisting
in interfacePageService
- Parameters:
pageProvider
- an object that will provide the page to be created.permissionProvider
- provide the permissions to be applied to the created page.contextProvider
- an object that provides context for the new page creationdraft
- the draft associated with the copy, if present.user
- the user creating this pagenotifySelf
- a flag indicating whether the user wants to be notified about this page creation. @return a CreatePageCommand for creating the specified page.spaceProvider
- provide the space where page will be created.
-
newCreatePageCommandFromExisting
public ServiceCommand newCreatePageCommandFromExisting(PageProvider pageProvider, ContentPermissionProvider permissionProvider, CreateContextProvider contextProvider, Page draft, com.atlassian.user.User user, boolean notifySelf, SpaceProvider spaceProvider)
Description copied from interface:PageService
This is not a public API method! Creating a page from an existing page has different authorisation and validation logic from creating a brand new page. This method allows creation of a command that implements that difference in logic. Apart from that the command created here will have the same logic as that created by
PageService.newCreatePageCommand(PageProvider, ContentPermissionProvider, CreateContextProvider, Draft, User, boolean)
.This logic in this command originates from
CopyPageAction
which differs from that ofCreatePageAction
.I hope that when we get a chance to analyse why
CopyPageAction
has different permission and validation logic we will eventually remove this method.- Specified by:
newCreatePageCommandFromExisting
in interfacePageService
- Parameters:
pageProvider
- an object that will provide the page to be created.permissionProvider
- provide the permissions to be applied to the created page.contextProvider
- an object that provides context for the new page creationdraft
- the draft associated with the copy, if present.user
- the user creating this pagenotifySelf
- a flag indicating whether the user wants to be notified about this page creation. @return a CreatePageCommand for creating the specified page.spaceProvider
- provide the space where page will be created.
-
setPermissionManager
public void setPermissionManager(PermissionManager permissionManager)
-
-