com.atlassian.confluence.content.service
Class DefaultDraftService

java.lang.Object
  extended by com.atlassian.confluence.content.service.DefaultDraftService
All Implemented Interfaces:
DraftService

public class DefaultDraftService
extends Object
implements DraftService

Note that this implementation of the DraftService does not perform any permission checking. This has always been the case in Confluence and needs to remain the case at the moment due to the way certain UI operations work such as copying a page. See CONFDEV-227 for more details.


Nested Class Summary
 
Nested classes/interfaces inherited from interface com.atlassian.confluence.content.service.DraftService
DraftService.DraftType
 
Method Summary
 Draft createDraftForEditor(AbstractPage page)
          Create and store a draft for the supplied AbstractPage for the current user.
 Draft findDraftForEditor(long contentId, DraftService.DraftType type, String spaceKey)
          Find and return a draft of the specified content Id and type for the current user.
 Draft findOrCreateDraftForEditor(String spaceKey, DraftService.DraftType type)
          Find the draft within the identified space for the current user.
 void removeDraft(long contentId, DraftService.DraftType type, String spaceKey)
          Removes the draft specified by the given content id and type for the current user.
 Draft saveDraftFromEditor(String title, DraftService.DraftType type, String content, String contentId, String spaceKey, int pageVersion)
          Create and store a draft for the current user with the supplied details.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

saveDraftFromEditor

public Draft saveDraftFromEditor(String title,
                                 DraftService.DraftType type,
                                 String content,
                                 String contentId,
                                 String spaceKey,
                                 int pageVersion)
                          throws NotAuthorizedException,
                                 NotValidException
Description copied from interface: DraftService
Create and store a draft for the current user with the supplied details.

Specified by:
saveDraftFromEditor in interface DraftService
content - the editor formatted content (will be converted into storage format).
contentId - as a String since NEW is taken to represent a new draft
Returns:
The Draft model object that was created and saved. The content of this draft will be in storage format
Throws:
NotAuthorizedException - if the current user is not able to save a draft (doesn't have edit permission)
NotValidException - if the data for the draft is incomplete or the content identified does not exist

findDraftForEditor

public Draft findDraftForEditor(long contentId,
                                DraftService.DraftType type,
                                String spaceKey)
                         throws NotAuthorizedException,
                                NotValidException
Description copied from interface: DraftService
Find and return a draft of the specified content Id and type for the current user. The draft will be returned in a format suitable for the Confluence editor

Specified by:
findDraftForEditor in interface DraftService
Returns:
the draft is found, otherwise null.
Throws:
NotAuthorizedException - if the current user is not permitted to view drafts for the identified content
NotValidException - if the content identified does not exist

createDraftForEditor

public Draft createDraftForEditor(AbstractPage page)
                           throws NotAuthorizedException,
                                  NotValidException
Description copied from interface: DraftService
Create and store a draft for the supplied AbstractPage for the current user. The draft will be created in storage format but the return object will contain editor format content.

Specified by:
createDraftForEditor in interface DraftService
Parameters:
page - the page to create a Draft from
Returns:
the Draft that was created. The content of this Draft will be in a format suitable for the editor.
Throws:
NotAuthorizedException - if the current user is not able to save a draft (doesn't have edit permission)
NotValidException - if the data for the draft is incomplete or the content identified does not exist

findOrCreateDraftForEditor

public Draft findOrCreateDraftForEditor(String spaceKey,
                                        DraftService.DraftType type)
                                 throws NotAuthorizedException,
                                        NotValidException
Description copied from interface: DraftService
Find the draft within the identified space for the current user. If none is found then a new empty Draft is created, saved and returned. Any content within the draft will be suitable for use in the Confluence editor.

Specified by:
findOrCreateDraftForEditor in interface DraftService
Returns:
Throws:
NotAuthorizedException - if the current user is not permitted to view or create drafts in the space
NotValidException - if the space identified does not exist.

removeDraft

public void removeDraft(long contentId,
                        DraftService.DraftType type,
                        String spaceKey)
                 throws NotAuthorizedException,
                        NotValidException
Description copied from interface: DraftService
Removes the draft specified by the given content id and type for the current user. Does nothing if no draft is found.

Specified by:
removeDraft in interface DraftService
spaceKey - since a new page draft is unique per space the spaceKey must be provided if the contentId is 0
Throws:
NotAuthorizedException - if the current user does not have permission.
NotValidException


Copyright © 2003-2011 Atlassian. All Rights Reserved.