Class Comment
java.lang.Object
org.ametys.cms.repository.comment.Comment
- All Implemented Interfaces:
ReactionableObject
,ReportableObject
A comment on a
CommentableAmetysObject
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.ametys.cms.repository.ReactionableObject
ReactionableObject.ReactionType
-
Field Summary
Modifier and TypeFieldDescriptionprotected ModifiableModelLessComposite
The node of the commentprotected String
The id of the comment (unique in the ametys object)protected ModifiableModelLessDataHolder
The root data holder where to store the first level of commentsstatic final String
Constants for the separatorstatic final String
Constants for author Metadatastatic final String
Constants for author email Metadatastatic final String
Constants for author email hidden Metadatastatic final String
Constants for author name Metadatastatic final String
Constants for author url Metadatastatic final String
Constants for the content Metadatastatic final String
Constants for creation Metadatastatic final String
Constants for the is marked status Metadatastatic final String
Constants for the is deleted status Metadatastatic final String
Constants for the is edited status Metadatastatic final String
Constants for the validated status Metadatastatic final String
Constants for comments Metadata validatedstatic final String
Constants for comments Metadata not validtedstatic final String
Constants for sub comments data name -
Constructor Summary
ConstructorDescriptionCreates a new sub comment of the commentComment
(Comment comment, String commentId, ZonedDateTime creationDate) Creates a new sub comment of the comment, with the given id and creation date This method allow to create a sub comment from existing data (ex: data import from archive) The id is not generated here, the source is trusted.Comment
(ModifiableModelLessDataHolder dataHolder) Creates a new commentComment
(ModifiableModelLessDataHolder rootDataHolder, String commentId) Retrieves a comment by its idComment
(ModifiableModelLessDataHolder dataHolder, String commentId, ZonedDateTime creationDate) Creates a new comment, with the given id and creation date This method allows to create a comment from existing data (ex: data import from archive) The id is not generated here, the source is trusted. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addReaction
(UserIdentity user, ReactionableObject.ReactionType reactionType) Add the user reactionvoid
Add a report to the objectvoid
Remove all reports on the objectCreate sub comment from this commentcreateSubComment
(String commentId, ZonedDateTime creationDate) Creates a sub comment from this comment, with the given id and creation date This method allow to create a sub comment from existing data (ex: data import from archive) The id is not generated here, the source is trusted.Extract users mentioned in the commentGet the comment's authorGet the email of the author.Get the readable name of the author.Get the url given by the author as its personal site url.static Comment
getComment
(ModifiableModelLessDataHolder rootDataHolder, String commentId) Get a commentprotected String
getCommentDataPath
(String commentId) Retrieves the path of the comment with the given identifierGet parent of comment if existsgetComments
(Comment parentComment, boolean includeNotValidatedComments, boolean includeValidatedComments) Get the sub comments of the given commentgetComments
(Comment parentComment, boolean includeNotValidatedComments, boolean includeValidatedComments, boolean withSubComment) Get the sub comments of the given commentgetComments
(ModifiableModelLessDataHolder rootDataHolder, boolean includeNotValidatedComments, boolean includeValidatedComments) Get the comments in the given root data holdergetComments
(ModifiableModelLessDataHolder rootDataHolder, boolean includeNotValidatedComments, boolean includeValidatedComments, boolean isRecursive) Get the comments in the given root data holderGet the content of the comment.Get the date and time the comment was createdgetId()
The comment id (unique to the ametys object)getReactionUsers
(ReactionableObject.ReactionType reactionType) Get the list of users who reactlong
Retrieves the number of reports on the objectRetrieves the repository data of theComment
getSubComment
(boolean includeNotValidatedComments, boolean includeValidatedComments) Get sub comments of the commentboolean
Check if the comment have any sub-commentsboolean
Is the comment the accepted answerboolean
Does the comment is deletedboolean
isEdited()
Does the comment is editedboolean
Does the email of the authors have to be hidden ?boolean
Check if the comment is a sub-comment from an other commentboolean
Is the comment validatedvoid
remove()
Remove the comment.void
removeReaction
(UserIdentity user, ReactionableObject.ReactionType reactionType) Remove the user reactionvoid
setAccepted
(boolean isAccepted) Set the comment as accepted answer.void
setAuthor
(UserIdentity author) Set the comment's author.void
setAuthorEmail
(String email) Set the email of the author.void
setAuthorName
(String name) Set the readable name of the author.void
setAuthorURL
(String url) Set the personal site url of the authorvoid
setContent
(String content) Set the content of the comment.void
setDeleted
(boolean isEdited) Set the comment to deleted.void
setEdited
(boolean isEdited) Set the comment to edited.void
setEmailHiddenStatus
(boolean hideEmail) Set the email hidden status.void
setReportsCount
(long reportsCount) Sets the number of reports on the objectvoid
setValidated
(boolean validated) Set the validation status of the commentprotected void
update()
Update the comment tag statistics
-
Field Details
-
METADATA_COMMENTS_VALIDATED
Constants for comments Metadata not validted- See Also:
-
METADATA_COMMENTS_NOTVALIDATED
Constants for comments Metadata validated- See Also:
-
SUB_COMMENTS_DATA_NAME
Constants for sub comments data name- See Also:
-
METADATA_COMMENT_CREATIONDATE
Constants for creation Metadata- See Also:
-
METADATA_COMMENT_AUTHOR
Constants for author Metadata- See Also:
-
METADATA_COMMENT_AUTHORNAME
Constants for author name Metadata- See Also:
-
METADATA_COMMENT_AUTHOREMAIL
Constants for author email Metadata- See Also:
-
METADATA_COMMENT_AUTHOREMAIL_HIDDEN
Constants for author email hidden Metadata- See Also:
-
METADATA_COMMENT_AUTHORURL
Constants for author url Metadata- See Also:
-
METADATA_COMMENT_CONTENT
Constants for the content Metadata- See Also:
-
METADATA_COMMENT_VALIDATED
Constants for the validated status Metadata- See Also:
-
METADATA_COMMENT_IS_EDITED
Constants for the is edited status Metadata- See Also:
-
METADATA_COMMENT_IS_DELETED
Constants for the is deleted status Metadata- See Also:
-
METADATA_COMMENT_IS_ACCEPTED
Constants for the is marked status Metadata- See Also:
-
ID_SEPARATOR
Constants for the separator- See Also:
-
_rootDataHolder
The root data holder where to store the first level of comments -
_commentComposite
The node of the comment -
_id
The id of the comment (unique in the ametys object)
-
-
Constructor Details
-
Comment
Retrieves a comment by its id- Parameters:
rootDataHolder
- The root data holder hosting the first level of commentscommentId
- The id of the comment to retrieve- Throws:
AmetysRepositoryException
- if an error occurred
-
Comment
Creates a new comment- Parameters:
dataHolder
- The data holder where to add the new comment
-
Comment
public Comment(ModifiableModelLessDataHolder dataHolder, String commentId, ZonedDateTime creationDate) Creates a new comment, with the given id and creation date This method allows to create a comment from existing data (ex: data import from archive) The id is not generated here, the source is trusted. Be careful using this method- Parameters:
dataHolder
- The data holder where to add the new commentcommentId
- the comment's idcreationDate
- the comment's creation date
-
Comment
Creates a new sub comment of the comment- Parameters:
comment
- The parent comment
-
Comment
Creates a new sub comment of the comment, with the given id and creation date This method allow to create a sub comment from existing data (ex: data import from archive) The id is not generated here, the source is trusted. Be careful using this method- Parameters:
comment
- The parent commentcommentId
- the sub comment's idcreationDate
- the sub comment's creation date
-
-
Method Details
-
getCommentDataPath
Retrieves the path of the comment with the given identifier- Parameters:
commentId
- the comment identifier- Returns:
- the path of the comment
-
getRepositoryData
Retrieves the repository data of theComment
- Returns:
- the repository data of the
Comment
-
getId
The comment id (unique to the ametys object)- Returns:
- The id. Cannot be null.
-
getCreationDate
Get the date and time the comment was created- Returns:
- The non null date of creation of the comment.
-
getAuthor
Get the comment's author- Returns:
- the comment's author
-
setAuthor
Set the comment's author.- Parameters:
author
- the author. Can be null to remove the name.
-
getAuthorName
Get the readable name of the author.- Returns:
- The full name. Can be null.
-
setAuthorName
Set the readable name of the author.- Parameters:
name
- The full name. Can be null to remove the name.
-
getAuthorEmail
Get the email of the author.- Returns:
- The ameil. Can be null.
-
setAuthorEmail
Set the email of the author.- Parameters:
email
- The email. Can be null to remove the email.
-
getAuthorURL
Get the url given by the author as its personal site url.- Returns:
- The url. Can be null.
-
setAuthorURL
Set the personal site url of the author- Parameters:
url
- The url. Can be null to remove url.
-
isEmailHidden
Does the email of the authors have to be hidden ?- Returns:
- true (default value) if the email does not have to appears to others users. Can still be used for administration.
-
setEmailHiddenStatus
Set the email hidden status.- Parameters:
hideEmail
- true to set the email as hidden.
-
isEdited
Does the comment is edited- Returns:
- true the email is edited
-
setEdited
Set the comment to edited.- Parameters:
isEdited
- true to set the comment to edited.
-
isDeleted
Does the comment is deleted- Returns:
- true the comment is deleted
-
setDeleted
Set the comment to deleted.- Parameters:
isEdited
- true to set the comment to deleted.
-
getContent
Get the content of the comment. A simple String (with \n or \t).- Returns:
- The content. Can be null.
-
setContent
Set the content of the comment.- Parameters:
content
- The content to set. Can be null to remove the content. Have to be a simple String (with \n or \t).
-
extractMentions
Extract users mentioned in the comment- Returns:
- the mentioned users
-
isValidated
Is the comment validated- Returns:
- the status of validation of the comment
-
setValidated
Set the validation status of the comment- Parameters:
validated
- true the comment is validated
-
addReport
Description copied from interface:ReportableObject
Add a report to the object- Specified by:
addReport
in interfaceReportableObject
-
setReportsCount
Description copied from interface:ReportableObject
Sets the number of reports on the object- Specified by:
setReportsCount
in interfaceReportableObject
- Parameters:
reportsCount
- the number of reports to set
-
clearReports
Description copied from interface:ReportableObject
Remove all reports on the object- Specified by:
clearReports
in interfaceReportableObject
-
getReportsCount
Description copied from interface:ReportableObject
Retrieves the number of reports on the object- Specified by:
getReportsCount
in interfaceReportableObject
- Returns:
- the number of reports
-
remove
Remove the comment. -
getSubComment
public List<Comment> getSubComment(boolean includeNotValidatedComments, boolean includeValidatedComments) Get sub comments of the comment- Parameters:
includeNotValidatedComments
- True to include the comments that are not validatedincludeValidatedComments
- True to include the comments that are validated- Returns:
- the list of comments
-
createSubComment
Create sub comment from this comment- Returns:
- the sub comment
-
createSubComment
Creates a sub comment from this comment, with the given id and creation date This method allow to create a sub comment from existing data (ex: data import from archive) The id is not generated here, the source is trusted. Be careful using this method- Parameters:
commentId
- the comment's idcreationDate
- the comment's creation date- Returns:
- the new comment
-
update
Update the comment tag statistics -
getComment
public static Comment getComment(ModifiableModelLessDataHolder rootDataHolder, String commentId) throws AmetysRepositoryException Get a comment- Parameters:
rootDataHolder
- The root data holder of the first level of commentscommentId
- The comment identifier- Returns:
- The comment
- Throws:
AmetysRepositoryException
- if the comment does not exist
-
getComments
public static List<Comment> getComments(Comment parentComment, boolean includeNotValidatedComments, boolean includeValidatedComments) throws AmetysRepositoryException Get the sub comments of the given comment- Parameters:
parentComment
- The parent commentincludeNotValidatedComments
- True to include the comments that are not validatedincludeValidatedComments
- True to include the comments that are validated- Returns:
- the list of sub comments
- Throws:
AmetysRepositoryException
- If an error occurred
-
getComments
public static List<Comment> getComments(Comment parentComment, boolean includeNotValidatedComments, boolean includeValidatedComments, boolean withSubComment) throws AmetysRepositoryException Get the sub comments of the given comment- Parameters:
parentComment
- The parent commentincludeNotValidatedComments
- True to include the comments that are not validatedincludeValidatedComments
- True to include the comments that are validatedwithSubComment
- true if we want to get all child comments- Returns:
- the list of comments
- Throws:
AmetysRepositoryException
- If an error occurred
-
getComments
public static List<Comment> getComments(ModifiableModelLessDataHolder rootDataHolder, boolean includeNotValidatedComments, boolean includeValidatedComments) throws AmetysRepositoryException Get the comments in the given root data holder- Parameters:
rootDataHolder
- The root data holderincludeNotValidatedComments
- True to include the comments that are not validatedincludeValidatedComments
- True to include the comments that are validated- Returns:
- the list of comments
- Throws:
AmetysRepositoryException
- If an error occurred
-
getComments
public static List<Comment> getComments(ModifiableModelLessDataHolder rootDataHolder, boolean includeNotValidatedComments, boolean includeValidatedComments, boolean isRecursive) throws AmetysRepositoryException Get the comments in the given root data holder- Parameters:
rootDataHolder
- The root data holderincludeNotValidatedComments
- True to include the comments that are not validatedincludeValidatedComments
- True to include the comments that are validatedisRecursive
- true if we want to have sub comments- Returns:
- the list of comments
- Throws:
AmetysRepositoryException
- If an error occurred
-
addReaction
Description copied from interface:ReactionableObject
Add the user reaction- Specified by:
addReaction
in interfaceReactionableObject
- Parameters:
user
- the userreactionType
- the reaction type
-
removeReaction
Description copied from interface:ReactionableObject
Remove the user reaction- Specified by:
removeReaction
in interfaceReactionableObject
- Parameters:
user
- the userreactionType
- the reaction type
-
getReactionUsers
Description copied from interface:ReactionableObject
Get the list of users who react- Specified by:
getReactionUsers
in interfaceReactionableObject
- Parameters:
reactionType
- the reaction type- Returns:
- the list of users
-
getCommentParent
Get parent of comment if exists- Returns:
- the comment parent. null if the comment is not a sub comment
-
isSubComment
Check if the comment is a sub-comment from an other comment- Returns:
- true if the comment is a sub-comment
-
hasSubComments
Check if the comment have any sub-comments- Returns:
- true if the comment have any sub-comments
-
isAccepted
Is the comment the accepted answer- Returns:
- true if the comment is the accepted answer
-
setAccepted
Set the comment as accepted answer.- Parameters:
isAccepted
- true to set the comment as accepted answer.
-