Interface DraftManager

All Known Implementing Classes:
DefaultDraftManager

public interface DraftManager
Saves, retrieves and merges drafts of Confluence content. Currently supports drafts for blog posts and pages.
  • Method Details

    • saveDraft

      @Transactional void saveDraft(Draft draft)
      Saves the provided draft to the data store. Anonymous drafts will be persisted to the web session.

      The draft must have a page ID of "0" for drafts of new content, or the ID of an existing page or blog post.

      Throws:
      IllegalArgumentException - if the provided draft is null, has a null page ID, or no content with the draft's page ID can be found.
    • findDraft

      @Deprecated(since="9.5", forRemoval=true) @Transactional(readOnly=true) Draft findDraft(Long pageId, String owner, String type, String spaceKey)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Finds the draft with the given page ID, owner and type. Returns null if a matching draft cannot be found.
      Parameters:
      pageId - the ID of the content which the draft is for
      owner - the user name of the user who created the draft
      type - the type of draft, which is usually the result of calling ContentEntityObject.getType()
      spaceKey - Space that the draft lives in.
      Returns:
      the matching draft or null if a draft cannot be found
    • findDraft

      @Transactional(readOnly=true) default Draft findDraft(Long pageId, ConfluenceUser owner, String type, String spaceKey)
      Finds the draft with the given page ID, owner and type. Returns null if a matching draft cannot be found.
      Parameters:
      pageId - the ID of the content which the draft is for
      owner - the user name of the user who created the draft
      type - the type of draft, which is usually the result of calling ContentEntityObject.getType()
      spaceKey - Space that the draft lives in.
      Returns:
      the matching draft or null if a draft cannot be found
      Since:
      9.5
    • countDrafts

      @Deprecated(since="9.5", forRemoval=true) int countDrafts(String owner)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Parameters:
      owner -
      Returns:
      A count of drafts with content for the given owner
    • countDrafts

      default int countDrafts(ConfluenceUser owner)
      Parameters:
      owner -
      Returns:
      A count of drafts with content for the given owner
      Since:
      9.5
    • getDraft

      Draft getDraft(long draftId)
      Finds the draft given a specific draft id. Returns null if no draft is found.
      Returns:
      the matching draft or null if a draft cannot be found
    • removeDraft

      @Transactional void removeDraft(Draft draft)
      Removes the draft specified. Does nothing if the draft cannot be found.
    • findDraftsForUser

      @Transactional(readOnly=true) @Deprecated(since="9.5", forRemoval=true) List<Draft> findDraftsForUser(com.atlassian.user.User user)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Returns the drafts for the user provided or an empty list if the user has no drafts.
    • findDraftsForUser

      @Transactional(readOnly=true) default List<Draft> findDraftsForUser(ConfluenceUser user)
      Returns the drafts for the user provided or an empty list if the user has no drafts.
      Since:
      9.5
    • isMergeRequired

      boolean isMergeRequired(Draft draft)
      Returns true if the draft version of a page is different to the current version of a page, otherwise false.

      Always returns false for new content.

    • mergeContent

      MergeResult mergeContent(Draft draft)
      Attempts the merge the changes done by this draft with the latest version of the content. Returns the result of the merge.
      Parameters:
      draft - the draft whose changes to merge with the latest version of the content
      Returns:
      the result of the merge.
    • getOrCreate

      @Deprecated Draft getOrCreate(String username, String draftType, String spaceKey)
      Deprecated.
      since 5.7. No replacement.
      Gets a new draft object. If such a draft does not exist one is created.
      Parameters:
      username - name of user or null for anonymous users
      draftType - the content type of the draft, e.g. Page.CONTENT_TYPE
      spaceKey - the space key of the content
      Returns:
      the existing draft for the given content and user, or a new draft object if that does not exist.
    • removeAllDrafts

      @Transactional void removeAllDrafts()
      Removes all drafts stored in the database
      Since:
      5.8
    • removeDraftsForUser

      @Transactional @Deprecated(since="9.5", forRemoval=true) void removeDraftsForUser(String username)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Removes all drafts in the data store associated with the specified user.
    • removeDraftsForUser

      @Transactional default void removeDraftsForUser(ConfluenceUser user)
      Removes all drafts in the data store associated with the specified user.
      Since:
      9.5
    • create

      @Transactional @Deprecated(since="9.5", forRemoval=true) Draft create(String username, DraftService.DraftType draftType, String spaceKey)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Creates a new persistent draft of the specified draft type in the space for the user.
      Parameters:
      username - - the owner of the draft, may be null for anonymous
      draftType - - the type of draft, (either blogpost or page)
      spaceKey - - the space in which to create the draft
      Returns:
      a newly created persistent draft
    • create

      @Transactional default Draft create(ConfluenceUser user, DraftService.DraftType draftType, String spaceKey)
      Creates a new persistent draft of the specified draft type in the space for the user.
      Parameters:
      user - - the owner of the draft, may be null for anonymous
      draftType - - the type of draft, (either blogpost or page)
      spaceKey - - the space in which to create the draft
      Returns:
      a newly created persistent draft
      Since:
      9.5
    • create

      @Transactional @Deprecated(since="9.5", forRemoval=true) default Draft create(String username, DraftService.DraftType draftType, String spaceKey, long parentPageId)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Creates a new persistent draft of the specified draft type in the space for the user.
      Parameters:
      username - - the owner of the draft, may be null for anonymous
      draftType - - the type of draft, (either blogpost or page)
      spaceKey - - the space in which to create the draft
      parentPageId - - the parentPageId of a page
      Returns:
      a newly created persistent draft
      Since:
      6.11.0
    • create

      @Transactional default Draft create(ConfluenceUser user, DraftService.DraftType draftType, String spaceKey, long parentPageId)
      Creates a new persistent draft of the specified draft type in the space for the user.
      Parameters:
      user - - the owner of the draft, may be null for anonymous
      draftType - - the type of draft, (either blogpost or page)
      spaceKey - - the space in which to create the draft
      parentPageId - - the parentPageId of a page
      Returns:
      a newly created persistent draft
      Since:
      9.5