Interface CommentManager
- All Known Implementing Classes:
DefaultCommentManager
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
Retrieves allComment
s on the given Issue that the givenApplicationUser
has permission to see. -
Method Summary
Modifier and TypeMethodDescriptionconvertToComment
(org.ofbiz.core.entity.GenericValue commentGV) This is a convenience method that can be used to convert a GenericValue representation of a comment to a comment object.create
(Issue issue, ApplicationUser author, ApplicationUser updateAuthor, String body, String groupLevel, Long roleLevelId, Date created, Date updated, boolean dispatchEvent) Creates a comment and associates it with the given issue.create
(Issue issue, ApplicationUser author, ApplicationUser updateAuthor, String body, String groupLevel, Long roleLevelId, Date created, Date updated, boolean dispatchEvent, boolean modifyIssueUpdateDate) Creates a comment and associates it with the given issue.create
(Issue issue, ApplicationUser author, ApplicationUser updateAuthor, String body, String groupLevel, Long roleLevelId, Date created, Date updated, Map<String, JSONObject> commentProperties, boolean dispatchEvent, boolean modifyIssueUpdateDate) Creates a comment and associates it with the given issue.create
(Issue issue, ApplicationUser author, String body, boolean dispatchEvent) Creates a comment and associates it with the given issue.create
(Issue issue, ApplicationUser author, String body, String groupLevel, Long roleLevelId, boolean dispatchEvent) Creates a comment and associates it with the given issue.create
(Issue issue, ApplicationUser author, String body, String groupLevel, Long roleLevelId, Date created, boolean dispatchEvent) Creates a comment and associates it with the given issue.create
(Issue issue, ApplicationUser author, String body, String groupLevel, Long roleLevelId, Date created, Map<String, JSONObject> commentProperties, boolean dispatchEvent) Creates a comment and associates it with the given issue.Deprecated.create
(Issue issue, String author, String body, String groupLevel, Long roleLevelId, boolean dispatchEvent) create
(Issue issue, String author, String body, String groupLevel, Long roleLevelId, Date created, boolean dispatchEvent) create
(Issue issue, String author, String updateAuthor, String body, String groupLevel, Long roleLevelId, Date created, Date updated, boolean dispatchEvent) create
(Issue issue, String author, String updateAuthor, String body, String groupLevel, Long roleLevelId, Date created, Date updated, boolean dispatchEvent, boolean modifyIssueUpdateDate) Deletes the specified comment.void
delete
(Comment comment, boolean dispatchEvent, ApplicationUser user) Deletes the specified comment.void
deleteCommentsForIssue
(Issue issue) RemovesComment
s belonging to the passed issue.getCommentById
(Long commentId) Will return a comment for the passed in commentId.getComments
(Issue issue) This will return all comments for a given issue.getCommentsForUser
(Issue issue, ApplicationUser user) Retrieves allComment
s on the given Issue that the givenApplicationUser
has permission to see.getCommentsForUserSince
(Issue issue, ApplicationUser user, Date since) RetrievesComment
s that were created or updated after the provided date, on the given Issue that the givenApplicationUser
has permission to see.getCommentSummary
(ApplicationUser user, Issue issue, Optional<Long> focusedCommentId) Method that will return a summary of comments required to render the initial view issue page.long
getCountForCommentsRestrictedByGroup
(String groupName) Returns the count of allComment
's that have their visibility restricted by the named group.long
Returns the count of allComment
's that have their visibility restricted by the role with the given id.getLastComment
(Issue issue) getMutableComment
(Long commentId) Retrieves comment by given id and returns it as mutable object.getPinnedComments
(Issue issue, ApplicationUser user) Returns list of pinned comments for given issue which are visible for userboolean
isUserCommentAuthor
(ApplicationUser user, Comment comment) Returns true if the given user is the author of the given comment.searchCommentsVisibleForUser
(CommentSearchParameters parameters) Returns list of comments filtered and sorted by given parametersCommentSearchParameters
.void
setPin
(Comment comment, ApplicationUser user, boolean pinned) Pins the specified comment.streamComments
(ApplicationUser user, Issue issue) Streams every comment of the given issue that is visible to the user.int
swapCommentGroupRestriction
(String groupName, String swapGroup) UpdatesComment
's such that comments that have a visibility restriction of the provided groupName will be changed to have a visibility restriction of the provided swapGroup.int
swapCommentRoleRestriction
(Long roleId, Long swapRoleId) UpdatesComment
's such that comments that have a visibility restriction of the provided role will be changed to have a visibility restriction of the role with the provided swapRoleId.void
Persists the updated comment.void
update
(Comment comment, Map<String, JSONObject> commentProperties, boolean dispatchEvent) Persists the updated comment.
-
Field Details
-
EVENT_ORIGINAL_COMMENT_PARAMETER
Retrieves allComment
s on the given Issue that the givenApplicationUser
has permission to see. If the passed in user is null, only comments with no permission level set will be returned.
NOTE: keep in mind null user represents an anonymous i.e. non-logged in user.- See Also:
-
-
Method Details
-
getCommentsForUser
Retrieves allComment
s on the given Issue that the givenApplicationUser
has permission to see. If the passed in user is null, only comments with no permission level set will be returned.
NOTE: keep in mind null user represents an anonymous i.e. non-logged in user.- Parameters:
issue
- the comments are associated with.user
- the user whose permission level will be used to limit the comments returned.- Returns:
- Possibly empty List of
Comment
s
-
searchCommentsVisibleForUser
Returns list of comments filtered and sorted by given parametersCommentSearchParameters
.- Parameters:
parameters
- search parameters- Returns:
Window
of comments- Since:
- 9.0
-
streamComments
Streams every comment of the given issue that is visible to the user. Comments are returned in the order that they were created in.- Parameters:
user
- the user to check permissions against, or null if anonymousissue
- issue for which to get comments- Returns:
- a stream of comments
- Since:
- 7.2
-
getCommentSummary
CommentSummary getCommentSummary(@Nullable ApplicationUser user, @Nonnull Issue issue, @Nonnull Optional<Long> focusedCommentId) Method that will return a summary of comments required to render the initial view issue page. That is if comment limiting is enabled this method will return a comment summary containing the total count of comments available to the provided user based on permissions as well as a subset of comments to be shown. If limiting is disabled, or if less than a minimum number of comments would be hidden (configured byAPKeys.COMMENT_COLLAPSING_MINIMUM_HIDDEN
) then all comments will be returned (similar to the results of callinggetCommentsForUser(Issue, ApplicationUser)
.- Parameters:
user
- the user whose permission level will be used to limit the comments returned.issue
- the comments are associated with.focusedCommentId
- optional id of a comment to focus. If the summary doesn't contain the focusedComment, then all comments are retrieved- Returns:
- CommentSummary with total comment count and subset of comments to be shown.
- Since:
- 7.1
-
getLastComment
Returns the the lastComment
on the givenIssue
. For performance reasons this method does not take into account access level of the user logged in. As a result, output of this method might not be the same as what is presented in the application UI to users.- Parameters:
issue
- the comments are associated with.- Returns:
- The author of the last comment, or null if there is no comment.
-
getCommentsForUserSince
@Nonnull List<Comment> getCommentsForUserSince(@Nonnull Issue issue, @Nullable ApplicationUser user, @Nonnull Date since) RetrievesComment
s that were created or updated after the provided date, on the given Issue that the givenApplicationUser
has permission to see. If the passed in user is null, only comments with no permission level set will be returned.
NOTE: keep in mind null user represents an anonymous i.e. non-logged in user.- Parameters:
issue
- the comments are associated with. Must not be nulluser
- the user whose permission level will be used to limit the comments returned.since
- only comments created or updated after this date will be returned. Must not be null.- Returns:
- Possibly empty List of
Comment
s - Since:
- v6.3
-
getComments
This will return all comments for a given issue. Please note that this method does not perform any permission checks on the returned comments. If you are returning comments to the UI or service for a givenUser
please usegetCommentsForUser(com.atlassian.jira.issue.Issue, com.atlassian.jira.user.ApplicationUser)
)}- Parameters:
issue
- the comments are associated with.- Returns:
- a List of comments, will return an empty list if none found.
-
create
Creates a comment and associates it with the given issue. Using this method the comment will be created with a createdDate of the current date/time and with no visibility restrictions.- Parameters:
issue
- the issue to associate the comment with.author
- the key of the user who has created this comment.body
- the text of the comment.dispatchEvent
- if true then an event of typeEventType.ISSUE_COMMENTED_ID
will be dispatched and any notifications listening for that event will be triggered. If false no event will be dispatched.- Returns:
- the object representation of the newly created comment.
- Throws:
CommentBodyCharacterLimitExceededException
- when comment body exceeds the jira character limitCommentsPerIssueLimitExceededException
- when number of comments per issue validation fails
-
create
Deprecated.Usecreate(Issue issue, ApplicationUser author, String body, boolean dispatchEvent)
instead. Since 6.0.Creates a comment and associates it with the given issue. Using this method the comment will be created with a createdDate of the current date/time and with no visibility restrictions.- Parameters:
issue
- the issue to associate the comment with.author
- the key of the user who has created this comment.body
- the text of the comment.dispatchEvent
- if true then an event of typeEventType.ISSUE_COMMENTED_ID
will be dispatched and any notifications listening for that event will be triggered. If false no event will be dispatched.- Returns:
- the object representation of the newly created comment.
-
create
Comment create(Issue issue, ApplicationUser author, String body, String groupLevel, Long roleLevelId, boolean dispatchEvent) Creates a comment and associates it with the given issue. Using this method the comment will be created with a createdDate of the current time. If you have provided a groupLevel then the comment visibility will be restricted to the provided group, it is assumed that validation to ensure that the group actually exists has been performed outside of this method. If you have provided a roleLevelId then the comment visibility will be restricted to the provided role, it is assumed that validation to ensure that the role actually exists has been performed outside of this method.
NOTE: A comment should not have both a group level and role level visibility restriction. This method will not stop this, but it does not semantically make sense.- Parameters:
issue
- the issue to associate the comment with.author
- the key of the user who has created this comment.body
- the text of the comment.groupLevel
- is the group name to limit comment visibility to, this must be a valid group name.roleLevelId
- is the id of the theProjectRole
to limit comment visibility to, this must reference a valid project role.dispatchEvent
- if true then an event of typeEventType.ISSUE_COMMENTED_ID
will be dispatched and any notifications listening for that event will be triggered. If false no event will be dispatched.- Returns:
- the object representation of the newly created comment.
- Throws:
CommentBodyCharacterLimitExceededException
- when comment body exceeds the jira character limitCommentsPerIssueLimitExceededException
- when number of comments per issue validation fails
-
create
@Deprecated Comment create(Issue issue, String author, String body, String groupLevel, Long roleLevelId, boolean dispatchEvent) Deprecated.Creates a comment and associates it with the given issue. Using this method the comment will be created with a createdDate of the current time. If you have provided a groupLevel then the comment visibility will be restricted to the provided group, it is assumed that validation to ensure that the group actually exists has been performed outside of this method. If you have provided a roleLevelId then the comment visibility will be restricted to the provided role, it is assumed that validation to ensure that the role actually exists has been performed outside of this method.NOTE: A comment should not have both a group level and role level visibility restriction. This method will not stop this, but it does not semantically make sense.
- Parameters:
issue
- the issue to associate the comment with.author
- the key of the user who has created this comment.body
- the text of the comment.groupLevel
- is the group name to limit comment visibility to, this must be a valid group name.roleLevelId
- is the id of the theProjectRole
to limit comment visibility to, this must reference a valid project role.dispatchEvent
- if true then an event of typeEventType.ISSUE_COMMENTED_ID
will be dispatched and any notifications listening for that event will be triggered. If false no event will be dispatched.- Returns:
- the object representation of the newly created comment.
-
create
Comment create(Issue issue, ApplicationUser author, String body, String groupLevel, Long roleLevelId, Date created, boolean dispatchEvent) Creates a comment and associates it with the given issue. Using this method the comment will be created with a createdDate of the specified date. This method should be used if you are trying to preserve existing information and it is important to retain the original created date. If you have provided a groupLevel then the comment visibility will be restricted to the provided group, it is assumed that validation to ensure that the group actually exists has been performed outside of this method. If you have provided a roleLevelId then the comment visibility will be restricted to the provided role, it is assumed that validation to ensure that the role actually exists has been performed outside of this method.
NOTE: A comment should not have both a group level and role level visibility restriction. This method will not stop this, but it does not semantically make sense.- Parameters:
issue
- the issue to associate the comment with.author
- the key of the user who has created this comment.body
- the text of the comment.groupLevel
- is the group name to limit comment visibility to, this must be a valid group name.roleLevelId
- is the id of the theProjectRole
to limit comment visibility to, this must reference a valid project role.created
- is the date that will be used as the comments creation date.dispatchEvent
- if true then an event of typeEventType.ISSUE_COMMENTED_ID
will be dispatched and any notifications listening for that event will be triggered. If false no event will be dispatched.- Returns:
- the object representation of the newly created comment.
- Throws:
CommentBodyCharacterLimitExceededException
- when comment body exceeds the jira character limitCommentsPerIssueLimitExceededException
- when number of comments per issue validation fails
-
create
Comment create(Issue issue, ApplicationUser author, String body, String groupLevel, Long roleLevelId, Date created, Map<String, JSONObject> commentProperties, boolean dispatchEvent) Creates a comment and associates it with the given issue. Using this method the comment will be created with a createdDate of the specified date. This method should be used if you are trying to preserve existing information and it is important to retain the original created date. If you have provided a groupLevel then the comment visibility will be restricted to the provided group, it is assumed that validation to ensure that the group actually exists has been performed outside of this method. If you have provided a roleLevelId then the comment visibility will be restricted to the provided role, it is assumed that validation to ensure that the role actually exists has been performed outside of this method.
NOTE: A comment should not have both a group level and role level visibility restriction. This method will not stop this, but it does not semantically make sense.- Parameters:
issue
- the issue to associate the comment with.author
- the key of the user who has created this comment.body
- the text of the comment.groupLevel
- is the group name to limit comment visibility to, this must be a valid group name.roleLevelId
- is the id of the theProjectRole
to limit comment visibility to, this must reference a valid project role.created
- is the date that will be used as the comments creation date.commentProperties
- Comment properties that should be attached to the created comment before the comment can be considered 'created'. May be null.dispatchEvent
- if true then an event of typeEventType.ISSUE_COMMENTED_ID
will be dispatched and any notifications listening for that event will be triggered. If false no event will be dispatched.- Returns:
- the object representation of the newly created comment.
- Throws:
CommentBodyCharacterLimitExceededException
- when comment body exceeds the jira character limitCommentsPerIssueLimitExceededException
- when number of comments per issue validation fails
-
create
@Deprecated Comment create(Issue issue, String author, String body, String groupLevel, Long roleLevelId, Date created, boolean dispatchEvent) Deprecated.Creates a comment and associates it with the given issue. Using this method the comment will be created with a createdDate of the specified date. This method should be used if you are trying to preserve existing information and it is important to retain the original created date. If you have provided a groupLevel then the comment visibility will be restricted to the provided group, it is assumed that validation to ensure that the group actually exists has been performed outside of this method. If you have provided a roleLevelId then the comment visibility will be restricted to the provided role, it is assumed that validation to ensure that the role actually exists has been performed outside of this method.NOTE: A comment should not have both a group level and role level visibility restriction. This method will not stop this, but it does not semantically make sense.
- Parameters:
issue
- the issue to associate the comment with.author
- the key of the user who has created this comment.body
- the text of the comment.groupLevel
- is the group name to limit comment visibility to, this must be a valid group name.roleLevelId
- is the id of the theProjectRole
to limit comment visibility to, this must reference a valid project role.created
- is the date that will be used as the comments creation date.dispatchEvent
- if true then an event of typeEventType.ISSUE_COMMENTED_ID
will be dispatched and any notifications listening for that event will be triggered. If false no event will be dispatched.- Returns:
- the object representation of the newly created comment.
-
create
Comment create(Issue issue, ApplicationUser author, ApplicationUser updateAuthor, String body, String groupLevel, Long roleLevelId, Date created, Date updated, boolean dispatchEvent) Creates a comment and associates it with the given issue. Using this method the comment will be created with a createdDate of the specified date. This method should be used if you are trying to preserve existing information and it is important to retain the original created date. If you have provided a groupLevel then the comment visibility will be restricted to the provided group, it is assumed that validation to ensure that the group actually exists has been performed outside of this method. If you have provided a roleLevelId then the comment visibility will be restricted to the provided role, it is assumed that validation to ensure that the role actually exists has been performed outside of this method.
NOTE: A comment should not have both a group level and role level visibility restriction. This method will not stop this, but it does not semantically make sense.- Parameters:
issue
- the issue to associate the comment with.author
- the key of the user who has created this comment.updateAuthor
- the key of the user who has updated this comment lastbody
- the text of the comment.groupLevel
- is the group name to limit comment visibility to, this must be a valid group name.roleLevelId
- is the id of the theProjectRole
to limit comment visibility to, this must reference a valid project role.created
- is the date that will be used as the comments creation date.updated
- is the date that will be used as the comments updated date.dispatchEvent
- if true then an event of typeEventType.ISSUE_COMMENTED_ID
will be dispatched and any notifications listening for that event will be triggered. If false no event will be dispatched.- Returns:
- the object representation of the newly created comment.
- Throws:
CommentBodyCharacterLimitExceededException
- when comment body exceeds the jira character limitCommentsPerIssueLimitExceededException
- when number of comments per issue validation fails
-
create
@Deprecated Comment create(Issue issue, String author, String updateAuthor, String body, String groupLevel, Long roleLevelId, Date created, Date updated, boolean dispatchEvent) Deprecated.Creates a comment and associates it with the given issue. Using this method the comment will be created with a createdDate of the specified date. This method should be used if you are trying to preserve existing information and it is important to retain the original created date. If you have provided a groupLevel then the comment visibility will be restricted to the provided group, it is assumed that validation to ensure that the group actually exists has been performed outside of this method. If you have provided a roleLevelId then the comment visibility will be restricted to the provided role, it is assumed that validation to ensure that the role actually exists has been performed outside of this method.NOTE: A comment should not have both a group level and role level visibility restriction. This method will not stop this, but it does not semantically make sense.
- Parameters:
issue
- the issue to associate the comment with.author
- the key of the user who has created this comment.updateAuthor
- the key of the user who has updated this comment lastbody
- the text of the comment.groupLevel
- is the group name to limit comment visibility to, this must be a valid group name.roleLevelId
- is the id of the theProjectRole
to limit comment visibility to, this must reference a valid project role.created
- is the date that will be used as the comments creation date.updated
- is the date that will be used as the comments updated date.dispatchEvent
- if true then an event of typeEventType.ISSUE_COMMENTED_ID
will be dispatched and any notifications listening for that event will be triggered. If false no event will be dispatched.- Returns:
- the object representation of the newly created comment.
-
create
Comment create(Issue issue, ApplicationUser author, ApplicationUser updateAuthor, String body, String groupLevel, Long roleLevelId, Date created, Date updated, boolean dispatchEvent, boolean modifyIssueUpdateDate) Creates a comment and associates it with the given issue. Using this method the comment will be created with a createdDate of the specified date. This method should be used if you are trying to preserve existing information and it is important to retain the original created date. If you have provided a groupLevel then the comment visibility will be restricted to the provided group, it is assumed that validation to ensure that the group actually exists has been performed outside of this method. If you have provided a roleLevelId then the comment visibility will be restricted to the provided role, it is assumed that validation to ensure that the role actually exists has been performed outside of this method.
NOTE: A comment should not have both a group level and role level visibility restriction. This method will not stop this, but it does not semantically make sense.- Parameters:
issue
- the issue to associate the comment with.author
- the key of the user who has created this comment.updateAuthor
- the key of the user who has updated this comment lastbody
- the text of the comment.groupLevel
- is the group name to limit comment visibility to, this must be a valid group name.roleLevelId
- is the id of the theProjectRole
to limit comment visibility to, this must reference a valid project role.created
- is the date that will be used as the comments creation date.updated
- is the date that will be used as the comments updated date.dispatchEvent
- if true then an event of typeEventType.ISSUE_COMMENTED_ID
will be dispatched and any notifications listening for that event will be triggered. If false no event will be dispatched.modifyIssueUpdateDate
- if true the issue's "updated" date will set to the date of this comment (unless the given date is earlier than the current issue update date).- Returns:
- the object representation of the newly created comment.
- Throws:
CommentBodyCharacterLimitExceededException
- when comment body exceeds the jira character limitCommentsPerIssueLimitExceededException
- when number of comments per issue validation fails
-
create
Comment create(Issue issue, ApplicationUser author, ApplicationUser updateAuthor, String body, String groupLevel, Long roleLevelId, Date created, Date updated, Map<String, JSONObject> commentProperties, boolean dispatchEvent, boolean modifyIssueUpdateDate) Creates a comment and associates it with the given issue. Using this method the comment will be created with a createdDate of the specified date. This method should be used if you are trying to preserve existing information and it is important to retain the original created date. If you have provided a groupLevel then the comment visibility will be restricted to the provided group, it is assumed that validation to ensure that the group actually exists has been performed outside of this method. If you have provided a roleLevelId then the comment visibility will be restricted to the provided role, it is assumed that validation to ensure that the role actually exists has been performed outside of this method.
NOTE: A comment should not have both a group level and role level visibility restriction. This method will not stop this, but it does not semantically make sense.- Parameters:
issue
- the issue to associate the comment with.author
- the key of the user who has created this comment.updateAuthor
- the key of the user who has updated this comment lastbody
- the text of the comment.groupLevel
- is the group name to limit comment visibility to, this must be a valid group name.roleLevelId
- is the id of the theProjectRole
to limit comment visibility to, this must reference a valid project role.created
- is the date that will be used as the comments creation date.updated
- is the date that will be used as the comments updated date.commentProperties
- Comment properties that should be attached to the created comment before the comment can be considered 'created'dispatchEvent
- if true then an event of typeEventType.ISSUE_COMMENTED_ID
will be dispatched and any notifications listening for that event will be triggered. If false no event will be dispatched.modifyIssueUpdateDate
- if true the issue's "updated" date will set to the date of this comment (unless the given date is earlier than the current issue update date).- Returns:
- the object representation of the newly created comment.
- Throws:
CommentBodyCharacterLimitExceededException
- when comment body exceeds the jira character limitCommentsPerIssueLimitExceededException
- when number of comments per issue validation fails
-
create
@Deprecated Comment create(Issue issue, String author, String updateAuthor, String body, String groupLevel, Long roleLevelId, Date created, Date updated, boolean dispatchEvent, boolean modifyIssueUpdateDate) Deprecated.Creates a comment and associates it with the given issue. Using this method the comment will be created with a createdDate of the specified date. This method should be used if you are trying to preserve existing information and it is important to retain the original created date. If you have provided a groupLevel then the comment visibility will be restricted to the provided group, it is assumed that validation to ensure that the group actually exists has been performed outside of this method. If you have provided a roleLevelId then the comment visibility will be restricted to the provided role, it is assumed that validation to ensure that the role actually exists has been performed outside of this method.
NOTE: A comment should not have both a group level and role level visibility restriction. This method will not stop this, but it does not semantically make sense.- Parameters:
issue
- the issue to associate the comment with.author
- the key of the user who has created this comment.updateAuthor
- the key of the user who has updated this comment lastbody
- the text of the comment.groupLevel
- is the group name to limit comment visibility to, this must be a valid group name.roleLevelId
- is the id of the theProjectRole
to limit comment visibility to, this must reference a valid project role.created
- is the date that will be used as the comments creation date.updated
- is the date that will be used as the comments updated date.dispatchEvent
- if true then an event of typeEventType.ISSUE_COMMENTED_ID
will be dispatched and any notifications listening for that event will be triggered. If false no event will be dispatched.modifyIssueUpdateDate
- if true the issue's "updated" date will set to the date of this comment (unless the given date is earlier than the current issue update date).- Returns:
- the object representation of the newly created comment.
-
convertToComment
This is a convenience method that can be used to convert a GenericValue representation of a comment to a comment object.- Parameters:
commentGV
- is the GenericValue representation of a comment.- Returns:
- Comment object.
-
getCommentById
Will return a comment for the passed in commentId.- Parameters:
commentId
- the id representing theComment
you would like to retrieve.- Returns:
- a
Comment
or null (if the user cannot browse the comment). - Throws:
IllegalArgumentException
- if its id is null
-
getMutableComment
Retrieves comment by given id and returns it as mutable object.- Parameters:
commentId
- comment id- Returns:
- mutable comment or null if comment with given id not found
- Throws:
IllegalArgumentException
- if its id is null
-
update
Persists the updated comment.- Parameters:
comment
- to updatedispatchEvent
- if true then an event of typeEventType.ISSUE_COMMENT_EDITED_ID
will be dispatched and any notifications listening for that event will be triggered. If false no event will be dispatched.- Throws:
IllegalArgumentException
- if comment passed in is null or its id is null or if you specified both grouplevel and rolelevel comment visibilityCommentBodyCharacterLimitExceededException
- when comment body exceeds the jira character limit
-
update
Persists the updated comment.- Parameters:
comment
- to updatedispatchEvent
- if true then an event of typeEventType.ISSUE_COMMENT_EDITED_ID
will be dispatched and any notifications listening for that event will be triggered. If false no event will be dispatched.commentProperties
- Comment properties that should be attached to the created comment before the comment can be considered 'created'- Throws:
IllegalArgumentException
- if comment passed in is null or its id is null or if you specified both grouplevel and rolelevel comment visibilityCommentBodyCharacterLimitExceededException
- when comment body exceeds the jira character limit
-
swapCommentGroupRestriction
UpdatesComment
's such that comments that have a visibility restriction of the provided groupName will be changed to have a visibility restriction of the provided swapGroup.
Note: There is no validation performed by this method to determine if the provided swapGroup is a valid group with JIRA. This validation must be done by the caller.- Parameters:
groupName
- identifies the group the comments are restricted by, this must not be null.swapGroup
- identifies the group the comments will be changed to be restricted by, this must not be null.- Returns:
- tbe number of comments affected by the update.
- Since:
- v3.12
-
getCountForCommentsRestrictedByGroup
Returns the count of allComment
's that have their visibility restricted by the named group.- Parameters:
groupName
- identifies the group the comments are restricted by, this must not be null.- Returns:
- a count of
Comment
's who's visibility are restricted by the passed in group name. - Since:
- v3.12
-
getCountForCommentsRestrictedByRole
Returns the count of allComment
's that have their visibility restricted by the role with the given id.- Parameters:
roleId
- identifies the role the comments are restricted by, this must not be null.- Returns:
- a count of
Comment
's who's visibility are restricted by the role with the passed in role id. - Since:
- v7.0
-
delete
Deletes the specified comment.- Parameters:
comment
- to delete- Returns:
- a change item that represents the change of deleting the comment
- Throws:
IllegalArgumentException
- if comment passed in is null or its id is null
-
delete
Deletes the specified comment.- Parameters:
comment
- to deletedispatchEvent
- if true then an event of typeEventType.ISSUE_COMMENT_DELETED_ID
will be dispatched and any notifications listening for that event will be triggered. If false no event will be dispatched. Together withIssueEvent
CommentDeletedEvent
user
- who executes this action. will be dispatched.
-
setPin
Pins the specified comment.- Parameters:
comment
- to pinuser
- who executes this actionpinned
- true if comments should be pinned, false if comments should be unpinned
-
getPinnedComments
Returns list of pinned comments for given issue which are visible for user- Parameters:
issue
-user
- who executes this action.- Returns:
- list of Pinned comments for given issue
-
isUserCommentAuthor
Returns true if the given user is the author of the given comment.If the given Comment has a null author, this represents that it was created anonymously, and no-one is the author (returns false). If the given User is null, then this represents that the current user is anonymous, and the method will always return false.
- Parameters:
user
- The User. Can be null to represent current user is not logged in (anonymous).comment
- The Comment. Cannot be null.- Returns:
- true if the given user is the author of the given comment.
- Since:
- v4.3
-
swapCommentRoleRestriction
UpdatesComment
's such that comments that have a visibility restriction of the provided role will be changed to have a visibility restriction of the role with the provided swapRoleId.
Note: There is no validation performed by this method to determine if the provided swapRoleId is a valid role id with JIRA. This validation must be done by the caller.- Parameters:
roleId
- identifies the role the comments are restricted by, this must not be null.swapRoleId
- identifies the role the comments will be changed to be restricted by, this must not be null.- Returns:
- the number of comments affected by the update.
- Since:
- v7.0
-
deleteCommentsForIssue
RemovesComment
s belonging to the passed issue.- Parameters:
issue
- entity with the comments to delete.
-
create(Issue issue, ApplicationUser author, String body, boolean dispatchEvent)
instead.