com.atlassian.confluence.content
Class CustomContentEntityObject

java.lang.Object
  extended by com.atlassian.core.bean.EntityObject
      extended by com.atlassian.confluence.core.ConfluenceEntityObject
          extended by com.atlassian.confluence.core.AbstractVersionedEntityObject
              extended by com.atlassian.confluence.core.AbstractLabelableEntityObject
                  extended by com.atlassian.confluence.core.ContentEntityObject
                      extended by com.atlassian.confluence.core.SpaceContentEntityObject
                          extended by com.atlassian.confluence.content.CustomContentEntityObject
All Implemented Interfaces:
com.atlassian.bonnie.Searchable, Content, Addressable, ContentTypeAware, Versioned, EditableLabelable, Labelable, Contained<ContentEntityObject>, ContentConvertible, Spaced, Serializable, Cloneable, Comparable

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
static String CONTENT_TYPE
           
 
Fields inherited from class com.atlassian.confluence.core.ContentEntityObject
CREATED, CURRENT, DELETED, MODIFIED
 
Fields inherited from class com.atlassian.confluence.core.AbstractVersionedEntityObject
INITIAL_VERSION
 
Constructor Summary
protected CustomContentEntityObject()
          Protected.
 
Method Summary
 void convertToHistoricalVersion()
          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.
 String getAttachmentsUrlPath()
           
 String getAttachmentUrlPath(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).
 ContentEntityObject getContainer()
           
 ContentId getContentId()
          Returns the ContentId for this entity object, if it implements ContentConvertible.
 ContentType getContentTypeObject()
           
 BodyType getDefaultBodyType()
           
 String getDisplayTitle()
          Returns the display title.
 String getExcerpt()
           
 String getNameForComparison()
          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.
 CustomContentEntityObject getParent()
           
 String getPluginModuleKey()
           
 String getPluginVersion()
           
 String getType()
          An easy name for the type of this content: makes it easy for things like the #contentLink macro to work out what to draw.
 String getUrlPath()
           
 VersionChildOwnerPolicy getVersionChildPolicy(ContentType contentType)
          Returns the right VersionChildOwnerPolicy depending on the passed contentType.
 boolean isIndexable()
          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 useless
 void setAdapter(ContentEntityAdapter adapter)
           
 void setContainer(ContentEntityObject container)
           
 void setParent(CustomContentEntityObject parent)
           
 void setPluginModuleKey(String pluginModuleKey)
           
 void setPluginVersion(String pluginVersion)
           
 boolean shouldConvertToContent()
           
 String toString()
           
 
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, addReferralLink, addTrackbackLink, applyChildVersioningPolicy, clone, compareTo, ensureAttachmentBelongsToContent, equals, getAttachmentNamed, getAttachments, getBodyAsString, getBodyAsStringWithoutMarkup, getBodyContent, getBodyContent, getBodyContents, getComments, getContainerContent, getContentEntityObject, getContentPermission, getContentPermissionSet, getContentStatus, getEntity, getIdAsString, getLatestVersionsOfAttachments, getOutgoingLinks, getPermissions, getProperties, getReferralLinks, getRenderedVersionComment, getSearchableDependants, getTitle, getTrackbackLinks, getTypeEnum, getUserAccessor, getVersionComment, hasContentPermissions, hasPermissions, isCurrent, isDeleted, isRecentlyUpdatedFor, isVersionCommentAvailable, removeAttachment, removeComment, removeContentPermissionSet, removeCustomContent, removeOutgoingLink, removeReferralLink, removeTrackbackLink, replaceContentProperties, restore, restoreDependents, setAttachments, setBodyAsString, setBodyContent, setBodyContents, setComments, setContainerContent, setContentStatus, setOutgoingLinks, setReferralLinks, setTitle, setTrackbackLinks, setUserAccessor, setVersionComment, toPageContext, trash, trashDependents
 
Methods inherited from class com.atlassian.confluence.core.AbstractLabelableEntityObject
addLabelling, getGlobalLabels, getLabelCount, getLabellings, getLabels, getLabelsForDisplay, getLabelUtil, getPersonalLabels, getTeamLabels, getVisibleLabels, isFavourite, isFavourite, removeLabelling, setLabellings
 
Methods inherited from class com.atlassian.confluence.core.AbstractVersionedEntityObject
getLatestVersion, getOriginalVersion, getVersion, isLatestVersion, isNew, setOriginalVersion, 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.bonnie.Searchable
getId
 
Methods inherited from interface com.atlassian.confluence.core.Addressable
getId
 
Methods inherited from interface com.atlassian.confluence.labels.EditableLabelable
getId, isPersistent
 

Field Detail

CONTENT_TYPE

public static final String CONTENT_TYPE
See Also:
Constant Field Values
Constructor Detail

CustomContentEntityObject

protected CustomContentEntityObject()
Protected. If you want a new CustomContentEntityObject, get it from the CustomContentManager

Method Detail

getType

public String getType()
Description copied from class: ContentEntityObject
An 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:
getType in interface ContentTypeAware
Specified by:
getType in class ContentEntityObject
Returns:
the content type

getUrlPath

public String getUrlPath()
Specified by:
getUrlPath in interface Addressable
Specified by:
getUrlPath in class ContentEntityObject

getDisplayTitle

public String getDisplayTitle()
Description copied from class: ContentEntityObject
Returns 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:
getDisplayTitle in interface Addressable
Overrides:
getDisplayTitle in class ContentEntityObject
Returns:
the display title

getNameForComparison

public String getNameForComparison()
Description copied from class: ContentEntityObject
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.

Overrides:
getNameForComparison in class SpaceContentEntityObject

getAttachmentUrlPath

public String getAttachmentUrlPath(Attachment attachment)
Description copied from class: ContentEntityObject
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). Generally you will want to call Attachment.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:
getAttachmentUrlPath in class ContentEntityObject
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:
getAttachmentsUrlPath in class ContentEntityObject

getExcerpt

public String getExcerpt()
Overrides:
getExcerpt in class ContentEntityObject

getDefaultBodyType

public BodyType getDefaultBodyType()
Overrides:
getDefaultBodyType in class ContentEntityObject

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

@Nullable
public ContentEntityObject getContainer()
Specified by:
getContainer in interface Contained<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: Versioned
Remove 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:
convertToHistoricalVersion in interface Versioned
Overrides:
convertToHistoricalVersion in class SpaceContentEntityObject

isIndexable

public boolean isIndexable()
Description copied from class: SpaceContentEntityObject
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 useless

Specified by:
isIndexable in interface com.atlassian.bonnie.Searchable
Overrides:
isIndexable in class SpaceContentEntityObject

toString

public String toString()
Overrides:
toString in class ContentEntityObject

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 with Page.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:
getContentTypeObject in interface ContentConvertible
Returns:
the api ContentType that this ContentConvertible converts to

getContentId

public ContentId getContentId()
Description copied from class: ContentEntityObject
Returns the ContentId for this entity object, if it implements ContentConvertible.

Subclasses implementing ContentConvertible must override this method.

Specified by:
getContentId in interface ContentConvertible
Overrides:
getContentId in class ContentEntityObject
Returns:
the ContentId representation of this object's id

shouldConvertToContent

public boolean shouldConvertToContent()
Specified by:
shouldConvertToContent in interface ContentConvertible
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: Versioned
Returns the right VersionChildOwnerPolicy depending on the passed contentType. By default, VersionChildOwnerPolicy.currentVersion is returned Right now, this is only enforced for children with content type Attachment or Comment

Specified by:
getVersionChildPolicy in interface Versioned
Overrides:
getVersionChildPolicy in class AbstractVersionedEntityObject


Copyright © 2003–2015 Atlassian. All rights reserved.