@ParametersAreNonnullByDefault public class DefaultContentEntityManager extends Object implements ContentEntityManagerInternal
Modifier and Type | Field and Description |
---|---|
protected RelationManager |
relationManager |
ITERATE_ALL
Constructor and Description |
---|
DefaultContentEntityManager(ContentEntityObjectDao contentEntityObjectDao,
LinkManager linkManager,
ConfluenceIndexer indexer,
LabelManager labelManager,
AttachmentManager attachmentManager,
com.google.common.base.Supplier<XhtmlContent> xhtmlContent,
com.atlassian.event.api.EventPublisher eventPublisher,
NotificationManager notificationManager,
RelationManager relationManager) |
Modifier and Type | Method and Description |
---|---|
<T extends ContentEntityObject> |
createDraft(T draft,
SaveContext saveContext)
This method sets the common properties of the
ContentEntityObject to be saved as a draft |
<T extends ContentEntityObject> |
findAllDraftsFor(long contentId)
Retrieves a list of drafts for the given content ID if any exist.
|
<T extends ContentEntityObject> |
findDraftFor(long contentId)
Retrieves the draft for the given content ID if it exists
|
<T extends ContentEntityObject> |
findDraftFor(T ceo)
Retrieves the draft for the given content if exists.
|
List<ContentEntityObject> |
findUnpublishedContentWithUserContributions(String username)
Retrieves the drafts for the given
User |
protected AttachmentManager |
getAttachmentManager() |
protected BodyContent |
getBodyContentForRevert(ContentEntityObject historicalVersion) |
ContentEntityObject |
getById(ContentId id) |
ContentEntityObject |
getById(ContentId id,
int version) |
ContentEntityObject |
getById(long id) |
PageResponse<ContentEntityObject> |
getByIds(List<ContentId> contentIds,
LimitedRequest limitedRequest,
com.google.common.base.Predicate<? super ContentEntityObject>... filters) |
protected ContentEntityObjectDao |
getContentEntityObjectDao() |
Map<Long,ContributionStatus> |
getContributionStatusByUser(Collection<ContentId> contentIds,
com.atlassian.sal.api.user.UserKey userKey)
Identifies the most recent contributions made to a set of content by the given user.
|
protected com.atlassian.event.api.EventPublisher |
getEventPublisher() |
protected ConfluenceIndexer |
getIndexer() |
protected LabelManager |
getLabelManager() |
protected LinkManager |
getLinkManager() |
ContentEntityObject |
getNextVersion(ContentEntityObject ceo)
Get the next version of the entity in the sequence of
Versioned . |
protected NotificationManager |
getNotificationManager() |
ContentEntityObject |
getOtherVersion(ContentEntityObject ceo,
int version) |
PageResponse<AbstractPage> |
getPageAndBlogPostsVersionsLastEditedByUser(com.atlassian.sal.api.user.UserKey userKey,
LimitedRequest request)
Retrieve a page of entities that have been modified by the user, in order of the user's most recent modification.
|
PageResponse<AbstractPage> |
getPageAndBlogPostsVersionsLastEditedByUserIncludingDrafts(com.atlassian.sal.api.user.UserKey userKey,
LimitedRequest request)
Retrieve a page of entities that have been modified by the user, in order of the user's most recent modification.
|
protected PageDao |
getPageDao() |
ContentEntityObject |
getPreviousVersion(ContentEntityObject ceo)
Get the previous version of the entity in the sequence of
Versioned . |
Iterator |
getRecentlyModifiedEntities(String spaceKey,
int maxResults)
Retrieve an iterator of recently modified entities, in order of most recent to last.
|
Iterator |
getRecentlyModifiedEntitiesForUser(String username)
Retrieve an iterator of recently modified entities, in order of most recent to last.
|
List |
getRecentlyModifiedForChangeDigest(Date fromDate)
Retrieves a list of
ContentEntityObject s that have been newly added or modified
since the date specified. |
List<VersionHistorySummary> |
getVersionHistorySummaries(ContentEntityObject ceo)
Get a VersionHistorySummary for all previous versions of a ContentEntityObject, starting with the current
content.
|
PageResponse<VersionHistorySummary> |
getVersionHistorySummaries(ContentId contentId,
LimitedRequest limitedRequest)
Get a VersionHistorySummary for all previous versions of a ContentEntityObject, list is ordered by Version number descending.
|
Map<Long,ContentEntityObject> |
getVersionsLastEditedByUser(Collection<ContentId> contentIds,
com.atlassian.sal.api.user.UserKey userKey)
Gets the
ContentEntityObject objects relating to the version of the given contentIds that were last
edited by the given user. |
protected void |
publishCreateEvent(ContentEntityObject obj)
This method publishes
*CreateEvents s. |
protected void |
publishCreateEvent(ContentEntityObject obj,
SaveContext saveContext)
This method publishes
Created events. |
protected void |
publishRemoveEvent(ContentEntityObject obj)
This method publishes
Removed events. |
protected void |
publishUpdateEvent(ContentEntityObject obj,
ContentEntityObject origObj,
SaveContext saveContext)
This method publishes
Updated events. |
void |
removeContentEntity(ContentEntityObject obj)
Removes given content entity object and all associated domain objects i.e.
|
void |
removeHistoricalVersion(ContentEntityObject historicalVersion)
Removes a historical ContentEntityObject.
|
void |
revertContentEntityBackToVersion(ContentEntityObject entity,
int version,
String revertComment,
boolean revertTitle)
Reverts a
ContentEntityObject back to its state at the version specified by version . |
void |
saveContentEntity(ContentEntityObject obj,
ContentEntityObject origObj,
SaveContext saveContext)
In order to create a history for this object, we need to pass in the modified as well as the original version of the object.
|
void |
saveContentEntity(ContentEntityObject obj,
SaveContext saveContext) |
<T extends ContentEntityObject> |
saveNewVersion(T current,
Modification<T> modification)
Applies the state changes supplied by modification and persists those changes to a new version.
|
<T extends ContentEntityObject> |
saveNewVersion(T current,
Modification<T> modification,
SaveContext saveContext)
Applies the state changes supplied by modification and persists those changes to a new version.
|
protected void |
suppressNotificationsOnEventIfRequired(ContentEvent event,
SaveContext saveContext)
Sets suppressNotifications on the event if required by the SaveContext
|
protected final RelationManager relationManager
public DefaultContentEntityManager(ContentEntityObjectDao contentEntityObjectDao, LinkManager linkManager, ConfluenceIndexer indexer, LabelManager labelManager, AttachmentManager attachmentManager, com.google.common.base.Supplier<XhtmlContent> xhtmlContent, com.atlassian.event.api.EventPublisher eventPublisher, NotificationManager notificationManager, RelationManager relationManager)
public <T extends ContentEntityObject> T createDraft(T draft, SaveContext saveContext)
ContentDraftManagerInternal
ContentEntityObject
to be saved as a draftcreateDraft
in interface ContentDraftManagerInternal
draft
- - the ContentEntityObject
to save as draftsaveContext
- - a SaveContext
holding additional parameters for the manager to use when saving.ContentEntityObject.DRAFT
public <T extends ContentEntityObject> T findDraftFor(@Nonnull T ceo)
ContentDraftManagerInternal
findDraftFor
in interface ContentDraftManagerInternal
ceo
- the entity object to retrieve the draft forContentEntityObject.DRAFT
public <T extends ContentEntityObject> T findDraftFor(long contentId)
ContentDraftManagerInternal
findDraftFor
in interface ContentDraftManagerInternal
contentId
- The content ID used to identify the draftContentEntityObject.DRAFT
public <T extends ContentEntityObject> List<T> findAllDraftsFor(long contentId)
ContentDraftManagerInternal
findAllDraftsFor
in interface ContentDraftManagerInternal
contentId
- The content ID used to identify the draftsContentEntityObject.DRAFT
public List<ContentEntityObject> findUnpublishedContentWithUserContributions(String username)
ContentDraftManagerInternal
User
findUnpublishedContentWithUserContributions
in interface ContentDraftManagerInternal
username
- the owner of the draftsContentEntityObject
with the
ContentEntityObject.DRAFT
statuspublic void saveContentEntity(ContentEntityObject obj, @Nullable SaveContext saveContext)
saveContentEntity
in interface ContentEntityManager
obj
- - the ContentEntityObject
to savesaveContext
- - a SaveContext
holding additional parameters for the manager to use when saving.public void saveContentEntity(ContentEntityObject obj, @Nullable ContentEntityObject origObj, @Nullable SaveContext saveContext)
ContentEntityManager
saveContentEntity
in interface ContentEntityManager
saveContext
- - a SaveContext
holding additional parameters for the manager to use when saving.public <T extends ContentEntityObject> void saveNewVersion(T current, Modification<T> modification)
ContentEntityManager
manager.<Page>saveNewVersion(page, new Modification<Page>() { public void modify(Page page) { page.setTitle("foobar"); } });
saveNewVersion
in interface ContentEntityManager
T
- the type content. This ensures that the type of current is the same as the type passed to the modificationcurrent
- the current / latest versionmodification
- an implementation of Modification
which describes the state changes you requirepublic <T extends ContentEntityObject> void saveNewVersion(T current, Modification<T> modification, @Nullable SaveContext saveContext)
ContentEntityManager
manager.<Page>saveNewVersion(page, new Modification<Page>() { public void modify(Page page) { page.setTitle("foobar"); } }, new DefaultSaveContext());
saveNewVersion
in interface ContentEntityManager
T
- the type content. This ensures that the type of current is the same as the type passed to the modificationcurrent
- the current / latest versionmodification
- an implementation of Modification
which describes the state changes you requiresaveContext
- the save context (null if you have no specific requirements - or just use ContentEntityManager.saveNewVersion(ContentEntityObject, Modification)
).public void removeContentEntity(ContentEntityObject obj)
ContentEntityManager
removeContentEntity
in interface ContentEntityManager
@Nullable public ContentEntityObject getById(long id)
getById
in interface ContentEntityManager
@Nullable public ContentEntityObject getById(ContentId id)
getById
in interface ContentEntityManagerInternal
@Nullable public ContentEntityObject getById(ContentId id, int version)
getById
in interface ContentEntityManagerInternal
id
- the id of the last version CEO. Previous version ids will make this method return nullpublic PageResponse<ContentEntityObject> getByIds(List<ContentId> contentIds, LimitedRequest limitedRequest, com.google.common.base.Predicate<? super ContentEntityObject>... filters)
getByIds
in interface ContentEntityManagerInternal
contentIds
- the contentIds of the candidate ContentEntityObjectslimitedRequest
- the page request to applyfilters
- an optional predicate@Nonnull public PageResponse<VersionHistorySummary> getVersionHistorySummaries(ContentId contentId, LimitedRequest limitedRequest)
ContentEntityManagerInternal
getVersionHistorySummaries
in interface ContentEntityManagerInternal
contentId
- the entity Id of the object to return the version history ofpublic void revertContentEntityBackToVersion(ContentEntityObject entity, int version, @Nullable String revertComment, boolean revertTitle)
ContentEntityManager
Reverts a ContentEntityObject
back to its state at the version specified by version
.
Creates a new latest version that resembles the previous state.
Since Confluence 4.0 most ContentEntityObjects are assumed to be XHTML formatted. So in reverting a ContentEntityObject which
actually has a WIKI BodyType
this will be migrated on the fly to XHTML.
revertContentEntityBackToVersion
in interface ContentEntityManager
entity
- The ContentEntityObject to revertversion
- The version to revert torevertComment
- A comment to be associated with the revertrevertTitle
- If true, the ContentEntityObject title will be reverted to the old state@Nonnull protected BodyContent getBodyContentForRevert(ContentEntityObject historicalVersion)
@Nonnull public Iterator getRecentlyModifiedEntities(String spaceKey, int maxResults)
ContentEntityManager
For performance reasons, it's a VERY bad idea to supply both a space key, and infinite results.
getRecentlyModifiedEntities
in interface ContentEntityManager
spaceKey
- the space key to look up the entities for.maxResults
- the maximum number of entities to return in the iterator. Any number
zero or less (Use the ITERATE_ALL constant) will cause the iterator to go over
every entity.@Nonnull public PageResponse<AbstractPage> getPageAndBlogPostsVersionsLastEditedByUser(com.atlassian.sal.api.user.UserKey userKey, LimitedRequest request)
ContentEntityManager
getPageAndBlogPostsVersionsLastEditedByUser
in interface ContentEntityManager
userKey
- the key for the user for whom to retrieve the modified contentrequest
- the request@Nonnull public PageResponse<AbstractPage> getPageAndBlogPostsVersionsLastEditedByUserIncludingDrafts(@Nullable com.atlassian.sal.api.user.UserKey userKey, LimitedRequest request)
ContentEntityManager
getPageAndBlogPostsVersionsLastEditedByUserIncludingDrafts
in interface ContentEntityManager
userKey
- the key for the user for whom to retrieve the modified contentrequest
- the request@Nonnull public Iterator getRecentlyModifiedEntitiesForUser(String username)
ContentEntityManager
getRecentlyModifiedEntitiesForUser
in interface ContentEntityManager
username
- the user for which to retrieve the modified content@Nonnull public List getRecentlyModifiedForChangeDigest(Date fromDate)
ContentEntityManager
ContentEntityObject
s that have been newly added or modified
since the date specified. This list excludes drafts, space descriptions and mail.getRecentlyModifiedForChangeDigest
in interface ContentEntityManager
fromDate
- content modified after this date will be returnedContentEntityObject
s that have been newly added or modified
since the date specified@Nullable public ContentEntityObject getPreviousVersion(ContentEntityObject ceo)
ContentEntityManager
Versioned
.
Returns null for ContentEntityObject.DRAFT
s.
getPreviousVersion
in interface ContentEntityManager
@Nullable public ContentEntityObject getNextVersion(ContentEntityObject ceo)
ContentEntityManager
Versioned
.
Returns null for ContentEntityObject.DRAFT
s.
getNextVersion
in interface ContentEntityManager
@Nullable public ContentEntityObject getOtherVersion(ContentEntityObject ceo, int version)
getOtherVersion
in interface ContentEntityManager
@Nonnull public Map<Long,ContentEntityObject> getVersionsLastEditedByUser(Collection<ContentId> contentIds, com.atlassian.sal.api.user.UserKey userKey)
ContentEntityManager
ContentEntityObject
objects relating to the version of the given contentIds that were last
edited by the given user. Only content with a "current" status are returned.getVersionsLastEditedByUser
in interface ContentEntityManager
contentIds
- the ids of the content we're interested in. These *must* be ids of the latest version.userKey
- the userKey of the user that we're interested inContentEntityObject
objects relating to the version of the given contentIds that were last
edited by the given user.public Map<Long,ContributionStatus> getContributionStatusByUser(Collection<ContentId> contentIds, com.atlassian.sal.api.user.UserKey userKey)
ContentEntityManager
ContributionStatus
for a content ID if the user has never contributed to the content.getContributionStatusByUser
in interface ContentEntityManager
contentIds
- the IDs of the content we want to query. These *must* be IDs of the latest versionuserKey
- the userKey of the user who's changes we are interested inContributionStatus
of each content@Nonnull public List<VersionHistorySummary> getVersionHistorySummaries(ContentEntityObject ceo)
ContentEntityManager
getVersionHistorySummaries
in interface ContentEntityManager
ceo
- the entity object to return the version history ofpublic void removeHistoricalVersion(ContentEntityObject historicalVersion)
ContentEntityManager
removeHistoricalVersion
in interface ContentEntityManager
historicalVersion
- a historical entity object to removeprotected PageDao getPageDao()
protected void publishCreateEvent(ContentEntityObject obj)
*CreateEvents
s.
Specific content entity object manager that need to publish those events should override this method.obj
- the created content entity objectprotected void publishCreateEvent(ContentEntityObject obj, @Nullable SaveContext saveContext)
Created
events.
Specific content entity object manager that need to publish those events should override this method.obj
- the updated content entity objectsaveContext
- the associated SaveContext
protected void publishUpdateEvent(ContentEntityObject obj, @Nullable ContentEntityObject origObj, @Nullable SaveContext saveContext)
Updated
events.
Specific content entity object manager that need to publish those events should override this method.obj
- the updated content entity objectorigObj
- the old version of the content entity object, for history purposesaveContext
- the associated SaveContext
protected void publishRemoveEvent(ContentEntityObject obj)
Removed
events.
Specific content entity object manager that need to publish those events should override this method.obj
- the removed content entity objectprotected void suppressNotificationsOnEventIfRequired(ContentEvent event, @Nullable SaveContext saveContext)
event
- saveContext
- protected ContentEntityObjectDao getContentEntityObjectDao()
protected LinkManager getLinkManager()
protected ConfluenceIndexer getIndexer()
protected LabelManager getLabelManager()
protected AttachmentManager getAttachmentManager()
protected com.atlassian.event.api.EventPublisher getEventPublisher()
protected NotificationManager getNotificationManager()
Copyright © 2003–2017 Atlassian. All rights reserved.