Class CustomContentEntityObject
- java.lang.Object
-
- com.atlassian.core.bean.EntityObject
-
- com.atlassian.confluence.core.ConfluenceEntityObject
-
- com.atlassian.confluence.core.AbstractVersionedEntityObject
-
- com.atlassian.confluence.core.AbstractLabelableEntityObject
-
- com.atlassian.confluence.core.ContentEntityObject
-
- com.atlassian.confluence.core.SpaceContentEntityObject
-
- com.atlassian.confluence.content.CustomContentEntityObject
-
- All Implemented Interfaces:
Searchable,Content,Addressable,ContentTypeAware,Versioned,RelatableEntity,EditableLabelable,Labelable,Contained<ContentEntityObject>,ContentConvertible,Spaced,Serializable,Cloneable,Comparable<ContentEntityObject>
@NotThreadSafe public class CustomContentEntityObject extends SpaceContentEntityObject implements Contained<ContentEntityObject>, ContentConvertible
Generic ContentEntityObject that plugins can use to extend Confluence's content system.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static StringCONTENT_TYPE-
Fields inherited from class com.atlassian.confluence.core.ContentEntityObject
COLLABORATIVE_EDITING_UUID, CONFLUENCE_RECOVERY, CONFLUENCE_RECOVERY_WITH_EXTERNAL_CHANGE, CONTENT_RESTORED_SYNC_REV_SOURCE, CREATED, CURRENT, DELETED, DRAFT, DUMMY_SYNC_REV, LIMITED_MODE_SYNC_REV_SOURCE, MODIFIED, SHARE_ID, SYNC_REV, SYNC_REV_SOURCE, SYNCHRONY_ACK_SYNC_REV_SOURCE, SYNCHRONY_RECOVERY, SYNCHRONY_RECOVERY_WITH_EXTERNAL_CHANGE, SYNCHRONY_SYNC_REV_SOURCE
-
Fields inherited from class com.atlassian.confluence.core.AbstractVersionedEntityObject
INITIAL_VERSION
-
-
Constructor Summary
Constructors Constructor Description CustomContentEntityObject()Protected.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidconvertToHistoricalVersion()Remove all data from the object that does not need to be saved by historical versions.List<CustomContentEntityObject>getAncestors()Return all of the ancestors of this content, with this content's parent as the last element of the list.StringgetAttachmentsUrlPath()StringgetAttachmentUrlPath(Attachment attachment)Gets the path relative to Confluence's base URL to view the given attachment in the context of this content (for example, highlighted in the content's list of attachments).StringgetBodyAsString()Convenience method that returns the String representation of the content.@Nullable ContentEntityObjectgetContainer()ContentIdgetContentId()Returns theContentIdfor this entity object, if it implementsContentConvertible.ContentTypegetContentTypeObject()BodyTypegetDefaultBodyType()StringgetDisplayTitle()Returns the display title.StringgetExcerpt()StringgetNameForComparison()Subclasses should implement this method, giving a String back so that the content can be alphabetically sorted in a mixed-type list of content-entities.CustomContentEntityObjectgetParent()StringgetPluginModuleKey()StringgetPluginVersion()StringgetType()An easy name for the type of this content: makes it easy for things like the #contentLink macro to work out what to draw.StringgetUrlPath()VersionChildOwnerPolicygetVersionChildPolicy(ContentType contentType)Returns the rightVersionChildOwnerPolicydepending on the passed contentType.booleanisIndexable()pages, blogs etc that aren't not associated with a space (either because they are historical or corrupt) should not be indexed if they are indexed, and returned in search results, they are broken and are therefore uselessvoidsetAdapter(ContentEntityAdapter adapter)voidsetContainer(@Nullable ContentEntityObject container)voidsetParent(CustomContentEntityObject parent)voidsetPluginModuleKey(String pluginModuleKey)voidsetPluginVersion(String pluginVersion)booleanshouldConvertToContent()StringtoString()-
Methods inherited from class com.atlassian.confluence.core.SpaceContentEntityObject
getSpace, getSpaceKey, hashCode, isInSpace, setSpace
-
Methods inherited from class com.atlassian.confluence.core.ContentEntityObject
addAttachment, addComment, addCustomContent, addOutgoingLink, addPermission, applyChildVersioningPolicy, applyChildVersioningPolicy, clone, compareTo, ensureAttachmentBelongsToContent, equals, getAttachmentManager, getAttachmentNamed, getAttachments, getBodyAsStringWithoutMarkup, getBodyContent, getBodyContent, getBodyContents, getCollaborativeEditingUuid, getComments, getContainerContent, getContentPermission, getContentPermissionSet, getContentStatus, getContentStatusObject, getCustomContent, getEntity, getIdAsString, getLatestVersionId, getLatestVersionsOfAttachments, getLowerTitle, getOriginalVersionId, getOutgoingLinks, getPermissions, getProperties, getRenderedVersionComment, getSearchableDependants, getSelector, getShareId, getSynchronyRevision, getSynchronyRevisionSource, getTitle, getTrashDate, getTypeEnum, getVersionComment, hasContentPermissions, hasPermissions, isCurrent, isDeleted, isDraft, isUnpublished, isVersionCommentAvailable, removeAttachment, removeComment, removeContentPermissionSet, removeCustomContent, removeOutgoingLink, replaceContentProperties, restore, restoreDependents, setAttachments, setBodyAsString, setBodyContent, setBodyContents, setCollaborativeEditingUuid, setComments, setContainerContent, setContentPropertiesFrom, setContentStatus, setOriginalVersion, setOriginalVersionId, setOutgoingLinks, setShareId, setSynchronyRevision, setSynchronyRevisionSource, setTitle, setVersionComment, sharedAccessAllowed, sharedAccessAllowed, toPageContext, trash, trash, trashDependents, wasCreatedBy
-
Methods inherited from class com.atlassian.confluence.core.AbstractLabelableEntityObject
addLabelling, getGlobalLabels, getLabelCount, getLabellings, getLabels, getLabelsForDisplay, getPersonalLabels, getTeamLabels, getVisibleLabels, isFavourite, removeLabelling, setLabellings
-
Methods inherited from class com.atlassian.confluence.core.AbstractVersionedEntityObject
getConfluenceRevision, getLatestVersion, getVersion, isLatestVersion, isNew, setVersion
-
Methods inherited from class com.atlassian.confluence.core.ConfluenceEntityObject
getCreator, getCreatorName, getLastModifier, getLastModifierName, getRealClass, isPersistent, setCreator, setCreatorName, setLastModifier, setLastModifierName
-
Methods inherited from class com.atlassian.core.bean.EntityObject
getCreationDate, getCurrentDate, getId, getLastModificationDate, setClock, setCreationDate, setId, setLastModificationDate
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.atlassian.confluence.core.Addressable
getId
-
Methods inherited from interface com.atlassian.confluence.pages.ContentConvertible
getSelector
-
Methods inherited from interface com.atlassian.confluence.labels.EditableLabelable
getId, isPersistent
-
Methods inherited from interface com.atlassian.bonnie.Searchable
getId
-
-
-
-
Field Detail
-
CONTENT_TYPE
public static final String CONTENT_TYPE
- See Also:
- Constant Field Values
-
-
Method Detail
-
getType
public String getType()
Description copied from class:ContentEntityObjectAn easy name for the type of this content: makes it easy for things like the #contentLink macro to work out what to draw.This is a bit of a hack, but it saves heaps of code elsewhere, especially since we tend to get back these objects wrapped in all sorts of Hibernate CGLIB stuff.
- Specified by:
getTypein interfaceContentTypeAware- Specified by:
getTypein classContentEntityObject- Returns:
- the content type
-
getUrlPath
public String getUrlPath()
- Specified by:
getUrlPathin interfaceAddressable- Specified by:
getUrlPathin classContentEntityObject
-
getDisplayTitle
public String getDisplayTitle()
Description copied from class:ContentEntityObjectReturns the display title. Some entities don't have titles for identification. For example, personal information objects use the user's fullname. Override this method to provide a custom title.- Specified by:
getDisplayTitlein interfaceAddressable- Overrides:
getDisplayTitlein classContentEntityObject- Returns:
- the display title
-
getNameForComparison
public String getNameForComparison()
Description copied from class:ContentEntityObjectSubclasses should implement this method, giving a String back so that the content can be alphabetically sorted in a mixed-type list of content-entities.- Overrides:
getNameForComparisonin classSpaceContentEntityObject
-
getAttachmentUrlPath
public String getAttachmentUrlPath(Attachment attachment)
Description copied from class:ContentEntityObjectGets the path relative to Confluence's base URL to view the given attachment in the context of this content (for example, highlighted in the content's list of attachments). Generally you will want to callAttachment.getUrlPath()instead of this method: if we ever implement view pages for individual attachments, that's the method that will be changed to point to them.The default implementation just returns the view page for this content.
- Overrides:
getAttachmentUrlPathin classContentEntityObject- Parameters:
attachment- one of this content's attachments- Returns:
- the path relative to the base url to view the attachment in the context of this content.
-
getAttachmentsUrlPath
public String getAttachmentsUrlPath()
- Overrides:
getAttachmentsUrlPathin classContentEntityObject
-
getExcerpt
public String getExcerpt()
- Overrides:
getExcerptin classContentEntityObject
-
getDefaultBodyType
public BodyType getDefaultBodyType()
- Overrides:
getDefaultBodyTypein classContentEntityObject
-
getPluginModuleKey
public String getPluginModuleKey()
-
setPluginModuleKey
public void setPluginModuleKey(String pluginModuleKey)
-
getPluginVersion
public String getPluginVersion()
-
setPluginVersion
public void setPluginVersion(String pluginVersion)
-
getParent
public CustomContentEntityObject getParent()
-
setParent
public void setParent(CustomContentEntityObject parent)
-
getContainer
public @Nullable ContentEntityObject getContainer()
- Specified by:
getContainerin interfaceContained<ContentEntityObject>- Returns:
- the owner of this content object. Can be null.
-
setContainer
public void setContainer(@Nullable ContentEntityObject container)
-
setAdapter
public void setAdapter(ContentEntityAdapter adapter)
-
convertToHistoricalVersion
public void convertToHistoricalVersion()
Description copied from interface:VersionedRemove all data from the object that does not need to be saved by historical versions. For versioned objects that are persisted, this includes removing associations with other persisted objects that may otherwise cause us to break the expected arity of the database relations.When using Hibernate to persist versioned objects, take special care to null any field that might contain a Hibernate-persisted collection, as Hibernate does not allow two different persistent objects to refer to the same persisted collection at the same time.
- Specified by:
convertToHistoricalVersionin interfaceVersioned- Overrides:
convertToHistoricalVersionin classSpaceContentEntityObject
-
isIndexable
public boolean isIndexable()
Description copied from class:SpaceContentEntityObjectpages, blogs etc that aren't not associated with a space (either because they are historical or corrupt) should not be indexed if they are indexed, and returned in search results, they are broken and are therefore useless- Specified by:
isIndexablein interfaceSearchable- Overrides:
isIndexablein classSpaceContentEntityObject
-
toString
public String toString()
- Overrides:
toStringin classContentEntityObject
-
getAncestors
public List<CustomContentEntityObject> getAncestors()
Return all of the ancestors of this content, with this content's parent as the last element of the list. This ordering is to remain consistent withPage.getAncestors()Implementation is currently less efficient than the equivalent method on Page as there is no equivalent of the Ancestors table for custom content.
- Returns:
- all of the ancestors of this content
-
getContentTypeObject
public ContentType getContentTypeObject()
- Specified by:
getContentTypeObjectin interfaceContentConvertible- Returns:
- the api ContentType that this ContentConvertible converts to
-
getContentId
public ContentId getContentId()
Description copied from class:ContentEntityObjectReturns theContentIdfor this entity object, if it implementsContentConvertible.Subclasses implementing ContentConvertible must override this method.
- Specified by:
getContentIdin interfaceContentConvertible- Overrides:
getContentIdin classContentEntityObject- Returns:
- the ContentId representation of this object's id
-
shouldConvertToContent
public boolean shouldConvertToContent()
- Specified by:
shouldConvertToContentin interfaceContentConvertible- Returns:
- true if the implementer wants to be part of the core API (default value), false otherwise
-
getVersionChildPolicy
public VersionChildOwnerPolicy getVersionChildPolicy(ContentType contentType)
Description copied from interface:VersionedReturns the rightVersionChildOwnerPolicydepending on the passed contentType. By default,VersionChildOwnerPolicy.currentVersionis returnedRight now, this is only enforced for children with content type Attachment or Comment
- Specified by:
getVersionChildPolicyin interfaceVersioned- Overrides:
getVersionChildPolicyin classAbstractVersionedEntityObject
-
getBodyAsString
public String getBodyAsString()
Description copied from class:ContentEntityObjectConvenience method that returns the String representation of the content.- Overrides:
getBodyAsStringin classContentEntityObject- Returns:
- the content.
-
-