Class DefaultDraftManager

  • All Implemented Interfaces:
    DraftManager

    public class DefaultDraftManager
    extends Object
    implements DraftManager
    This implementation supports anonymous drafts using session-based storage.
    • Constructor Detail

      • DefaultDraftManager

        public DefaultDraftManager()
    • Method Detail

      • saveDraft

        public void saveDraft​(Draft draft)
        Description copied from interface: DraftManager
        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.

        Specified by:
        saveDraft in interface DraftManager
      • findDraft

        public Draft findDraft​(Long pageId,
                               String owner,
                               String type,
                               String spaceKey)
        Description copied from interface: DraftManager
        Finds the draft with the given page ID, owner and type. Returns null if a matching draft cannot be found.
        Specified by:
        findDraft in interface DraftManager
        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
      • countDrafts

        public int countDrafts​(String owner)
        Specified by:
        countDrafts in interface DraftManager
        Returns:
        A count of drafts with content for the given owner
      • getDraft

        public Draft getDraft​(long draftId)
        Description copied from interface: DraftManager
        Finds the draft given a specific draft id. Returns null if no draft is found.
        Specified by:
        getDraft in interface DraftManager
        Returns:
        the matching draft or null if a draft cannot be found
      • removeDraft

        public void removeDraft​(Draft draft)
        Description copied from interface: DraftManager
        Removes the draft specified. Does nothing if the draft cannot be found.
        Specified by:
        removeDraft in interface DraftManager
      • findDraftsForUser

        public List<Draft> findDraftsForUser​(com.atlassian.user.User user)
        Description copied from interface: DraftManager
        Returns the drafts for the user provided or an empty list if the user has no drafts.
        Specified by:
        findDraftsForUser in interface DraftManager
      • isMergeRequired

        public boolean isMergeRequired​(Draft draft)
        Description copied from interface: DraftManager
        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.

        Specified by:
        isMergeRequired in interface DraftManager
      • mergeContent

        public MergeResult mergeContent​(Draft draft)
        Merges the draft with the original version compared to the latest version of the page.
        Specified by:
        mergeContent in interface DraftManager
        Parameters:
        draft - the draft whose changes to merge with the latest version of the content
        Returns:
        result of the merge which contains additional information about the merge.
      • create

        public Draft create​(String username,
                            DraftService.DraftType draftType,
                            String spaceKey)
        Description copied from interface: DraftManager
        Creates a new persistent draft of the specified draft type in the space for the user.
        Specified by:
        create in interface DraftManager
        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

        public Draft create​(String username,
                            DraftService.DraftType draftType,
                            String spaceKey,
                            long parentPageId)
        Description copied from interface: DraftManager
        Creates a new persistent draft of the specified draft type in the space for the user.
        Specified by:
        create in interface DraftManager
        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
      • getOrCreate

        @Deprecated
        public Draft getOrCreate​(String username,
                                 String draftType,
                                 String spaceKey)
        Deprecated.
        Description copied from interface: DraftManager
        Gets a new draft object. If such a draft does not exist one is created.
        Specified by:
        getOrCreate in interface DraftManager
        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

        public void removeAllDrafts()
        Description copied from interface: DraftManager
        Removes all drafts stored in the database
        Specified by:
        removeAllDrafts in interface DraftManager
      • removeDraftsForUser

        public void removeDraftsForUser​(String username)
        Description copied from interface: DraftManager
        Removes all drafts in the data store associated with the specified user.
        Specified by:
        removeDraftsForUser in interface DraftManager
      • setDraftDao

        public void setDraftDao​(DraftDao draftDao)
      • setPageManager

        public void setPageManager​(PageManager pageManager)
      • setAttachmentManager

        public void setAttachmentManager​(AttachmentManager attachmentManager)
      • setLabelManager

        public void setLabelManager​(LabelManager labelManager)
      • setHttpContext

        public void setHttpContext​(HttpContext httpContext)
      • setMergerManager

        public void setMergerManager​(MergerManager mergerManager)
      • setConfluenceUserDao

        public void setConfluenceUserDao​(ConfluenceUserDao confluenceUserDao)