com.atlassian.confluence.core
Class ContentEntityObject

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.ContentEntityObject
All Implemented Interfaces:
com.atlassian.bonnie.Searchable, Addressable, ContentTypeAware, Versioned, Labelable, java.io.Serializable, java.lang.Cloneable, java.lang.Comparable
Direct Known Subclasses:
Comment, Draft, GlobalDescription, PageContentEntityObject, PersonalInformation, SpaceContentEntityObject

public abstract class ContentEntityObject
extends AbstractVersionedEntityObject
implements com.atlassian.bonnie.Searchable, java.lang.Comparable, Addressable, Labelable

See Also:
Serialized Form

Field Summary
static java.lang.String CREATED
           
static java.lang.String CURRENT
           
static java.lang.String DELETED
           
static java.lang.String MODIFIED
           
 
Fields inherited from class com.atlassian.confluence.core.AbstractVersionedEntityObject
INITIAL_VERSION
 
Constructor Summary
protected ContentEntityObject()
           
 
Method Summary
 void addAttachment(Attachment attachment)
           
 void addComment(Comment comment)
           
 void addLabelling(Labelling content)
           
 void addOutgoingLink(OutgoingLink link)
           
 void addPermission(ContentPermission permission)
          Adds a ContentPermission.
 void addReferralLink(ReferralLink link)
           
 void addTrackbackLink(TrackbackLink link)
           
 java.lang.Object clone()
           
 int compareTo(java.lang.Object o)
          Content entities are naturally ordered alphabetically by "comparison name", which depends on the entity (it's the title for pages, the parent page title for comments, etc.).
 void convertToHistoricalVersion()
          Remove all data from the object that does not need to be saved by historical versions.
 boolean equals(java.lang.Object o)
           
 Attachment getAttachmentNamed(java.lang.String fileName)
           
 java.util.List<Attachment> getAttachments()
          Don't use it directly, use AttachmentManager.getAttachments(page) instead
 java.lang.String getAttachmentsUrlPath()
           
 java.util.List getBodyContents()
           
 java.util.List<Comment> getComments()
           
 java.lang.String getContent()
           
 ContentPermission getContentPermission(java.lang.String permissionType)
          Deprecated. use getContentPermissionSet
 ContentPermissionSet getContentPermissionSet(java.lang.String type)
          Note, this method does not return ContentPermissions inherited from the Content's ancestry.
 java.lang.String getContentStatus()
           
 java.lang.String getDisplayTitle()
          Returns the display title.
 java.lang.String getExcerpt()
           
 java.util.List getGlobalLabels(com.atlassian.user.User user)
          List the labels on this content that are global labels
 java.lang.String getIdAsString()
           
 int getLabelCount()
          Get the number of labels that are associated with this object.
 java.util.List getLabellings()
           
 java.util.List<Label> getLabels()
          Retrieve the labels that are associated with this object.
 java.util.List getLabelsForDisplay(com.atlassian.user.User user)
          List the labels on this content that are visible to a particular user, and should be shown in a list of labels.
 LabelUtil getLabelUtil()
           
 java.util.List<Attachment> getLatestVersionsOfAttachments()
          Don't use it directly, use AttachmentManager.getLatestVersionsOfAttachments(page) instead
abstract  java.lang.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.
 java.util.List getOutgoingLinks()
          An outgoing link is a link on this page to another confluence page.
It could also link to a website URL
These links are contained in the page content
They are refreshed each time the page is updated (LinkManager.updateOutgoingLinks())
 java.util.List getPermissions()
          Deprecated. use getContentPermissionSet(String)
 java.util.List getPersonalLabels(com.atlassian.user.User user)
          List the labels on this content that are personal labels for a particular user
 java.util.List getReferralLinks()
           
 java.lang.String getRenderedVersionComment()
           
 java.util.Collection getSearchableDependants()
           
 java.lang.String getTitle()
           
 java.util.List getTrackbackLinks()
           
abstract  java.lang.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.
abstract  java.lang.String getUrlPath()
           
 UserAccessor getUserAccessor()
           
 java.lang.String getVersionComment()
           
 java.util.List getVisibleLabels(com.atlassian.user.User user)
          List the labels on this content that are visible to a particular user
 boolean hasContentPermissions()
           
 int hashCode()
           
 boolean hasPermissions(java.lang.String type)
           
 boolean isCurrent()
           
 boolean isDeleted()
           
 boolean isFavourite(com.atlassian.user.User user)
          Is this object marked as somebody's favourite?
 boolean isIndexable()
          Content entity objects that are historical versions should not be indexed.
 boolean isRecentlyUpdatedFor(com.atlassian.user.User user)
          Returns true if the page has been created or modified since the user last logged in.
 boolean isVersionCommentAvailable()
           
 void removeAttachment(Attachment attachment)
           
 void removeComment(Comment comment)
           
 void removeContentPermissionSet(ContentPermissionSet set)
          This method removes the given ContentPermissionSet from this CEO and disconnects the set from its owner.
 void removeLabelling(Labelling labelling)
           
 void removeOutgoingLink(OutgoingLink link)
           
 void removeReferralLink(ReferralLink link)
           
 void removeTrackbackLink(TrackbackLink link)
           
 void setAttachments(java.util.List attachments)
           
 void setBodyContents(java.util.List bodyContents)
           
 void setComments(java.util.List comments)
           
 void setContent(java.lang.String content)
           
 void setContentStatus(java.lang.String contentStatus)
           
 void setOutgoingLinks(java.util.List outgoingLinks)
           
 void setReferralLinks(java.util.List referralLinks)
           
 void setTitle(java.lang.String title)
           
 void setTrackbackLinks(java.util.List trackbackLinks)
           
 void setUserAccessor(UserAccessor userAccessor)
           
 void setVersionComment(java.lang.String versionComment)
           
 PageContext toPageContext()
          When the content is rendered, what context is it being rendered in?
 java.lang.String toString()
           
 void trash()
          places content in trash can
 
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
getCreatorName, getLastModifierName, getRealClass, isPersistent, setCreatorName, 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
 

Field Detail

CURRENT

public static final java.lang.String CURRENT
See Also:
Constant Field Values

DELETED

public static final java.lang.String DELETED
See Also:
Constant Field Values

CREATED

public static final java.lang.String CREATED
See Also:
Constant Field Values

MODIFIED

public static final java.lang.String MODIFIED
See Also:
Constant Field Values
Constructor Detail

ContentEntityObject

protected ContentEntityObject()
Method Detail

getType

public abstract java.lang.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.

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
Returns:
the content type

getIdAsString

public java.lang.String getIdAsString()

getDisplayTitle

public java.lang.String getDisplayTitle()
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
Returns:
the display title

getUrlPath

public abstract java.lang.String getUrlPath()
Specified by:
getUrlPath in interface Addressable

getTitle

public java.lang.String getTitle()

setTitle

public void setTitle(java.lang.String title)

getContent

public java.lang.String getContent()

setContent

public void setContent(java.lang.String content)

getBodyContents

public java.util.List getBodyContents()

setBodyContents

public void setBodyContents(java.util.List bodyContents)

getOutgoingLinks

public java.util.List getOutgoingLinks()
An outgoing link is a link on this page to another confluence page.
It could also link to a website URL
These links are contained in the page content
They are refreshed each time the page is updated (LinkManager.updateOutgoingLinks())

Returns:
List

setOutgoingLinks

public void setOutgoingLinks(java.util.List outgoingLinks)

addOutgoingLink

public void addOutgoingLink(OutgoingLink link)

removeOutgoingLink

public void removeOutgoingLink(OutgoingLink link)

getReferralLinks

public java.util.List getReferralLinks()

setReferralLinks

public void setReferralLinks(java.util.List referralLinks)

addReferralLink

public void addReferralLink(ReferralLink link)

removeReferralLink

public void removeReferralLink(ReferralLink link)

getTrackbackLinks

public java.util.List getTrackbackLinks()

setTrackbackLinks

public void setTrackbackLinks(java.util.List trackbackLinks)

addTrackbackLink

public void addTrackbackLink(TrackbackLink link)

removeTrackbackLink

public void removeTrackbackLink(TrackbackLink link)

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 AbstractVersionedEntityObject

equals

public boolean equals(java.lang.Object o)
Overrides:
equals in class com.atlassian.core.bean.EntityObject

hashCode

public int hashCode()
Overrides:
hashCode in class com.atlassian.core.bean.EntityObject

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

getNameForComparison

public abstract java.lang.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.


compareTo

public final int compareTo(java.lang.Object o)
Content entities are naturally ordered alphabetically by "comparison name", which depends on the entity (it's the title for pages, the parent page title for comments, etc.).

If the comparison names are identical, we fall back on creation dates. This ensures, for example, that comments are always listed after the pages they are contained in, and in posting order.

Note also: comparison does NOT agree with equals(). This makes using content entities within sets a little dangerous, but the chances of two things with the exact same name being created on exactly the same millisecond is probably pretty low.

Specified by:
compareTo in interface java.lang.Comparable

getSearchableDependants

public java.util.Collection getSearchableDependants()
Specified by:
getSearchableDependants in interface com.atlassian.bonnie.Searchable

toPageContext

public final PageContext toPageContext()
When the content is rendered, what context is it being rendered in?


isRecentlyUpdatedFor

public boolean isRecentlyUpdatedFor(com.atlassian.user.User user)
Returns true if the page has been created or modified since the user last logged in. If the user has no last login time, returns false. For an anonymous user returns false.

Parameters:
user -
Returns:
true if the page has been created or modified since the user's last login, false otherwise

isIndexable

public boolean isIndexable()
Content entity objects that are historical versions should not be indexed.

Specified by:
isIndexable in interface com.atlassian.bonnie.Searchable

getPermissions

public java.util.List getPermissions()
Deprecated. use getContentPermissionSet(String)

Get all the permissions that apply to this content. Please do not modify the contents of this list!

Returns:
a list of all the permissions that apply to this content.

getContentPermission

public ContentPermission getContentPermission(java.lang.String permissionType)
Deprecated. use getContentPermissionSet

Gives back the first content permission of a specific type. Returns only the permission if it is set on this object and not inherited. Returns null if no permission can't be found.

Synchronized, as otherwise it was creating timing issues during the multi-threaded re-indexing.

Returns:
ContentPermission

getContentStatus

public java.lang.String getContentStatus()

setContentStatus

public void setContentStatus(java.lang.String contentStatus)

isCurrent

public boolean isCurrent()

isDeleted

public boolean isDeleted()

trash

public void trash()
places content in trash can


getAttachments

public java.util.List<Attachment> getAttachments()
Don't use it directly, use AttachmentManager.getAttachments(page) instead


getLatestVersionsOfAttachments

public java.util.List<Attachment> getLatestVersionsOfAttachments()
Don't use it directly, use AttachmentManager.getLatestVersionsOfAttachments(page) instead


setAttachments

public void setAttachments(java.util.List attachments)

addAttachment

public void addAttachment(Attachment attachment)

removeAttachment

public void removeAttachment(Attachment attachment)

getExcerpt

public java.lang.String getExcerpt()

getAttachmentsUrlPath

public java.lang.String getAttachmentsUrlPath()

getAttachmentNamed

public Attachment getAttachmentNamed(java.lang.String fileName)

getLabellings

public java.util.List getLabellings()

addLabelling

public void addLabelling(Labelling content)

removeLabelling

public void removeLabelling(Labelling labelling)

getLabels

public java.util.List<Label> getLabels()
Description copied from interface: Labelable
Retrieve the labels that are associated with this object.

Specified by:
getLabels in interface Labelable
Returns:
a list of label instances.

getLabelCount

public int getLabelCount()
Description copied from interface: Labelable
Get the number of labels that are associated with this object.

Specified by:
getLabelCount in interface Labelable
Returns:
the number of labels associated with this object.

isFavourite

public boolean isFavourite(com.atlassian.user.User user)
Description copied from interface: Labelable
Is this object marked as somebody's favourite?

Specified by:
isFavourite in interface Labelable
Parameters:
user - the user who is being checked against. If user is null this method must always return false (anonymous users can not mark anything as a favourite, obviously)
Returns:
true if the labelable object is a 'favourite' of a given user, false otherwise

getVisibleLabels

public java.util.List getVisibleLabels(com.atlassian.user.User user)
List the labels on this content that are visible to a particular user

Parameters:
user - the user
Returns:
the labels on this content visible to that user

getPersonalLabels

public java.util.List getPersonalLabels(com.atlassian.user.User user)
List the labels on this content that are personal labels for a particular user

Parameters:
user - the user
Returns:
the personal labels on this content visible to the user

getGlobalLabels

public java.util.List getGlobalLabels(com.atlassian.user.User user)
List the labels on this content that are global labels

Parameters:
user - the user
Returns:
the personal labels on this content visible to the user

getLabelsForDisplay

public java.util.List getLabelsForDisplay(com.atlassian.user.User user)
List the labels on this content that are visible to a particular user, and should be shown in a list of labels. This is like {code}getVisibleLabels{code} except that it also filters out special labels like favourites

Parameters:
user - the user
Returns:
the labels on this content visible to that user

getLabelUtil

public LabelUtil getLabelUtil()

getVersionComment

public java.lang.String getVersionComment()

setVersionComment

public void setVersionComment(java.lang.String versionComment)

isVersionCommentAvailable

public boolean isVersionCommentAvailable()

getUserAccessor

public UserAccessor getUserAccessor()

setUserAccessor

public void setUserAccessor(UserAccessor userAccessor)

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Overrides:
clone in class com.atlassian.core.bean.EntityObject
Throws:
java.lang.CloneNotSupportedException

getRenderedVersionComment

public java.lang.String getRenderedVersionComment()

getContentPermissionSet

public ContentPermissionSet getContentPermissionSet(java.lang.String type)
Note, this method does not return ContentPermissions inherited from the Content's ancestry.

Returns:
a set containing ContentPermissions of this type, or null if there are no content permissions explicitly set on this ContentEntityObject for the type.

hasPermissions

public boolean hasPermissions(java.lang.String type)
Returns:
true if this content entity object contains any ContentPermissions of the type specified

hasContentPermissions

public boolean hasContentPermissions()

addPermission

public void addPermission(ContentPermission permission)
Adds a ContentPermission. Do not add them manually via ContentPermissionSet.addContentPermission(ContentPermission). If possible use ContentPermissionManager.addContentPermission(com.atlassian.confluence.security.ContentPermission, ContentEntityObject) instead. Also note that as of Confluence 2.4 although methods have been added to facilitate having multiple ContentPermissions per page, Confluence does not yet properly support them (eg users permitted by them will not see the data in their searches)


removeContentPermissionSet

public void removeContentPermissionSet(ContentPermissionSet set)
This method removes the given ContentPermissionSet from this CEO and disconnects the set from its owner. This method should only be called by the DefaultContentPermissionManager. Note that as of Confluence 2.4 although methods have been added to facilitate having multiple ContentPermissions per page, Confluence does not yet properly support them (eg users permitted by them will not see the data in their searches)

See Also:
DefaultContentPermissionManager.removeContentPermission(com.atlassian.confluence.security.ContentPermission)

getComments

public java.util.List<Comment> getComments()

setComments

public void setComments(java.util.List comments)

addComment

public void addComment(Comment comment)

removeComment

public void removeComment(Comment comment)


Copyright © 2003-2010 Atlassian. All Rights Reserved.