@PublicApi
public interface CommentService
Comment
functionality.
This will perform validation before it hands off to the CommentManager
.
Operations will not be performed if validation fails.Modifier and Type | Interface and Description |
---|---|
static class |
CommentService.CommentCreateValidationResult |
static class |
CommentService.CommentParameters |
static class |
CommentService.CommentUpdateValidationResult |
static class |
CommentService.CommentVisibility |
Modifier and Type | Method and Description |
---|---|
Comment |
create(ApplicationUser user,
CommentService.CommentCreateValidationResult commentValidationResult,
boolean dispatchEvent)
|
Comment |
create(ApplicationUser user,
Issue issue,
String body,
boolean dispatchEvent,
ErrorCollection errorCollection)
|
Comment |
create(ApplicationUser user,
Issue issue,
String body,
String groupLevel,
Long roleLevelId,
boolean dispatchEvent,
ErrorCollection errorCollection)
|
Comment |
create(ApplicationUser user,
Issue issue,
String body,
String groupLevel,
Long roleLevelId,
Date created,
boolean dispatchEvent,
ErrorCollection errorCollection)
|
void |
delete(JiraServiceContext jiraServiceContext,
Comment comment,
boolean dispatchEvent)
Deletes a comment and updates the issue's change history and updated date.
|
Comment |
getCommentById(ApplicationUser user,
Long commentId,
ErrorCollection errorCollection)
Will return a comment for the passed in commentId.
|
List<Comment> |
getCommentsForUser(ApplicationUser user,
Issue issue)
|
List<Comment> |
getCommentsForUser(ApplicationUser currentUser,
Issue issue,
ErrorCollection errorCollection)
Deprecated.
Use
getCommentsForUser(ApplicationUser currentUser, Issue issue) instead. Since v6.3. |
List<Comment> |
getCommentsForUserSince(ApplicationUser user,
Issue issue,
Date since)
Will return a list of
Comment s that were created or updated since the provided date, for the given user. |
MutableComment |
getMutableComment(ApplicationUser user,
Long commentId,
ErrorCollection errorCollection)
Deprecated.
|
List<PinnedComment> |
getPinnedComments(JiraServiceContext jiraServiceContext,
Issue issue)
Will return a list of
PinnedComment s for the given issue. |
boolean |
hasPermissionToCreate(ApplicationUser user,
Issue issue,
ErrorCollection errorCollection)
Check if the given user has permission to create a comment in the current state of the issue.
|
boolean |
hasPermissionToCreate(ApplicationUser user,
Issue issue,
ErrorCollection errorCollection,
com.opensymphony.workflow.loader.ActionDescriptor actionDescriptor)
Check if the given user has permission to create a comment during a workflow transition for a given action description.
|
boolean |
hasPermissionToCreate(ApplicationUser user,
Issue issue,
ErrorCollection errorCollection,
Optional<Status> status)
Check if the given user has permission to create a comment in the current state of the issue or if the issue was in the given status.
|
boolean |
hasPermissionToDelete(JiraServiceContext jiraServiceContext,
Long commentId)
Determines whether the user can delete a comment.
|
boolean |
hasPermissionToEdit(ApplicationUser user,
Comment comment,
ErrorCollection errorCollection)
Deprecated.
Use
hasPermissionToCreate(ApplicationUser user, Issue issue, ErrorCollection errorCollection) instead. Since v6.0. |
boolean |
hasPermissionToEdit(JiraServiceContext jiraServiceContext,
Long commentId)
Determines whether the user can edit a comment.
|
boolean |
hasPermissionToPinComments(ApplicationUser user,
Issue issue,
ErrorCollection errorCollection)
Check if the given user has permission to pin a comment
|
boolean |
isGroupVisibilityEnabled()
Returns the flag that indicates whether group visiblity is enabled
|
boolean |
isGroupVisiblityEnabled()
Deprecated.
Deprecated because of typo in signature. Use
isGroupVisibilityEnabled() . Since 6.4 |
boolean |
isProjectRoleVisibilityEnabled()
Returns the flag that indicates whether project role visibility is enabled
|
boolean |
isProjectRoleVisiblityEnabled()
Deprecated.
Deprecated because of typo in signature. Use
isProjectRoleVisibilityEnabled() . Since 6.4 |
boolean |
isValidAllCommentData(ApplicationUser user,
Issue issue,
String body,
String groupLevel,
String roleLevelId,
ErrorCollection errorCollection)
Deprecated.
|
boolean |
isValidAllCommentData(ApplicationUser user,
Issue issue,
String body,
Visibility visibility,
ErrorCollection errorCollection)
Will call all other validate methods setting the appropriate errors
in the
errorCollection if any errors occur. |
boolean |
isValidCommentBody(String body,
ErrorCollection errorCollection)
Validates that the body is a valid string, if not the appropriate error
is added to the
errorCollection . |
boolean |
isValidCommentBody(String body,
ErrorCollection errorCollection,
boolean allowEmpty)
Validates that the body is a valid string, if not the appropriate error
is added to the
errorCollection . |
boolean |
isValidCommentData(ApplicationUser user,
Issue issue,
String groupLevel,
String roleLevelId,
ErrorCollection errorCollection)
Deprecated.
|
boolean |
isValidCommentVisibility(ApplicationUser user,
Issue issue,
Visibility visibility,
ErrorCollection errorCollection)
This method validates if the comment has the correct role and group
levels set.
|
void |
setPin(JiraServiceContext jiraServiceContext,
Comment comment,
boolean pinned)
Pins a comment for given issue
|
java.util.stream.Stream<Comment> |
streamComments(ApplicationUser user,
Issue issue)
Streams every comment of the given issue that is visible to the user.
|
void |
update(ApplicationUser user,
CommentService.CommentUpdateValidationResult updateCommentValidationResult,
boolean dispatchEvent)
Updates a
Comment and sets the comments updated date to be now and the updatedAuthor to be the
passed in user. |
void |
update(ApplicationUser user,
MutableComment comment,
boolean dispatchEvent,
ErrorCollection errorCollection)
Deprecated.
|
CommentService.CommentCreateValidationResult |
validateCommentCreate(ApplicationUser user,
CommentService.CommentParameters commentParameters)
Confirms the parameters to create a comment are valid and that the user has the permission to do so.
|
CommentService.CommentCreateValidationResult |
validateCommentCreate(ApplicationUser user,
CommentService.CommentParameters commentParameters,
Optional<Status> status)
Confirms the parameters to create a comment are valid and that the user has the permission to do so if the issue was in the given status.
|
CommentService.CommentUpdateValidationResult |
validateCommentUpdate(ApplicationUser user,
Long commentId,
CommentService.CommentParameters commentParameters)
Confirms the parameters to update a comment are valid and that the updating user has the permission to do so.
|
void |
validateCommentUpdate(ApplicationUser user,
Long commentId,
String body,
String groupLevel,
Long roleLevelId,
ErrorCollection errorCollection)
|
CommentService.CommentCreateValidationResult validateCommentCreate(ApplicationUser user, @Nonnull CommentService.CommentParameters commentParameters)
create(ApplicationUser, CommentCreateValidationResult, boolean)
to persist the changes.
If an error is encountered then the CommentService.CommentCreateValidationResult
will contain the specific error message.
user
- The ApplicationUser
who will be performing the operation.commentParameters
- the comment parameters.CommentService.CommentCreateValidationResult validateCommentCreate(ApplicationUser user, @Nonnull CommentService.CommentParameters commentParameters, @Nonnull Optional<Status> status)
create(ApplicationUser, CommentCreateValidationResult, boolean)
to persist the changes.
If an error is encountered then the CommentService.CommentCreateValidationResult
will contain the specific error message.
user
- The ApplicationUser
who will be performing the operation.commentParameters
- the comment parameters.status
- The given status to be validated against.Comment create(ApplicationUser user, CommentService.CommentCreateValidationResult commentValidationResult, boolean dispatchEvent)
user
- The ApplicationUser
who will be performing the operation.commentValidationResult
- the results of validateCommentCreate(ApplicationUser, com.atlassian.jira.bc.issue.comment.CommentService.CommentParameters)
.dispatchEvent
- whether or not you want to have an event dispatched on Comment creation@Deprecated Comment create(ApplicationUser user, Issue issue, String body, String groupLevel, Long roleLevelId, Date created, boolean dispatchEvent, ErrorCollection errorCollection)
validateCommentCreate(ApplicationUser, CommentParameters)
and
create(ApplicationUser, CommentCreateValidationResult, boolean)
.user
- The User
who will be performing the operation.issue
- The Issue
you wish to associate the Comment
with. This can not be nullbody
- The body of the commentgroupLevel
- The group level visibility of the comment (null if roleLevelId specified)roleLevelId
- The role level visibility id of the comment (null if groupLevel specified)created
- The date of comment creationdispatchEvent
- whether or not you want to have an event dispatched on Comment creationerrorCollection
- holder for any errors that were thrown attempting to create a comment@Deprecated Comment create(ApplicationUser user, Issue issue, String body, String groupLevel, Long roleLevelId, boolean dispatchEvent, ErrorCollection errorCollection)
validateCommentCreate(ApplicationUser, CommentParameters)
and
create(ApplicationUser, CommentCreateValidationResult, boolean)
.user
- The User
who will be performing the operation.issue
- The Issue
you wish to associate the Comment
with. This can not be nullbody
- The body of the commentgroupLevel
- The group level visibility of the comment (null if roleLevelId specified)roleLevelId
- The role level visibility id of the comment (null if groupLevel specified)dispatchEvent
- whether or not you want to have an event dispatched on Comment creationerrorCollection
- holder for any errors that were thrown attempting to create a comment@Deprecated Comment create(ApplicationUser user, Issue issue, String body, boolean dispatchEvent, ErrorCollection errorCollection)
validateCommentCreate(ApplicationUser, CommentParameters)
and
create(ApplicationUser, CommentCreateValidationResult, boolean)
.Comment
on the given Issue
set with current date and time, visible to all
- no group level or role level restriction.user
- The User
who will be performing the operation.issue
- The Issue
you wish to associate the Comment
with. This can not be nullbody
- The body of the commentdispatchEvent
- whether or not you want to have an event dispatched on Comment creationerrorCollection
- holder for any errors that were thrown attempting to create a comment@Deprecated void validateCommentUpdate(ApplicationUser user, Long commentId, String body, String groupLevel, Long roleLevelId, ErrorCollection errorCollection)
validateCommentUpdate(ApplicationUser, Long, com.atlassian.jira.bc.issue.comment.CommentService.CommentParameters)
.update(com.atlassian.jira.user.ApplicationUser, com.atlassian.jira.issue.comments.MutableComment, boolean, com.atlassian.jira.util.ErrorCollection)
to persist the changes. If an error is encountered
then the ErrorCollection
will contain the specific error message.user
- The ApplicationUser
who will be performing the operation and who will be the updatedAuthor.commentId
- The id of the comment to be updated. Permissions will be checked to ensure that the user
has the right to update this comment. If the comment does not exist an error will be reported.body
- The body of the comment to be updated.groupLevel
- The group level visibility of the comment (null if roleLevelId specified)roleLevelId
- The role level visibility id of the comment (null if groupLevel specified)errorCollection
- holder for any errors that were thrown attempting to update a commentCommentService.CommentUpdateValidationResult validateCommentUpdate(ApplicationUser user, Long commentId, CommentService.CommentParameters commentParameters)
update(com.atlassian.jira.user.ApplicationUser, com.atlassian.jira.issue.comments.MutableComment, boolean, com.atlassian.jira.util.ErrorCollection)
to persist the changes. If an error is encountered
then the ErrorCollection
will contain the specific error message.user
- The ApplicationUser
who will be performing the operation and who will be the updatedAuthor.commentId
- The id of the comment to be updated. Permissions will be checked to ensure that the user
has the right to update this comment. If the comment does not exist an error will be reported.commentParameters
- the comment parameters.@Deprecated void update(ApplicationUser user, MutableComment comment, boolean dispatchEvent, ErrorCollection errorCollection)
update(ApplicationUser, CommentUpdateValidationResult, boolean)
instead.Comment
and sets the comments updated date to be now and the updatedAuthor to be the
passed in user.user
- the User
who must have permission to update this comment and who will be used as the updateAuthorcomment
- the object that contains the changes to the comment to persist.dispatchEvent
- whether or not you want to have an event dispatched on Comment update. If false then
the issue will not be reindexed.errorCollection
- holder for any errors that were thrown attempting to update a commentIllegalArgumentException
- if comment or its id is nullvoid update(ApplicationUser user, CommentService.CommentUpdateValidationResult updateCommentValidationResult, boolean dispatchEvent)
Comment
and sets the comments updated date to be now and the updatedAuthor to be the
passed in user.user
- the ApplicationUser
who must have permission to update this comment and who will be used as the updateAuthorupdateCommentValidationResult
- the comment parameters.dispatchEvent
- whether or not you want to have an event dispatched on Comment update. If false then
the issue will not be reindexed.@Nonnull List<Comment> getCommentsForUser(@Nullable ApplicationUser user, @Nonnull Issue issue)
Comment
s for the given user
Will return a list of Comment
s for the given user.user
- the user to check permissions against ApplicationUser
, or anonymous if null.issue
- the issue with associated comments. Must not be null.@Deprecated List<Comment> getCommentsForUser(ApplicationUser currentUser, Issue issue, ErrorCollection errorCollection)
getCommentsForUser(ApplicationUser currentUser, Issue issue)
instead. Since v6.3.Comment
s for the given user.currentUser
- current User
issue
- the issue with associated commentserrorCollection
- holder for any errors that were thrown attempting to retrieve commentsjava.util.stream.Stream<Comment> streamComments(@Nullable ApplicationUser user, @Nonnull Issue issue)
user
- the user to check permissions against, or null if anonymousissue
- issue for which to get comments@Nonnull List<Comment> getCommentsForUserSince(@Nullable ApplicationUser user, @Nonnull Issue issue, @Nonnull Date since)
Comment
s that were created or updated since the provided date, for the given user.user
- the user to check permissions against ApplicationUser
, or anonymous if null.issue
- the issue with associated comments. Must not be null.since
- only comments created or updated after this date will be returned. Must not be null.boolean hasPermissionToCreate(@Nullable ApplicationUser user, @Nonnull Issue issue, @Nonnull ErrorCollection errorCollection)
user
- The ApplicationUser
who will be performing the operation.issue
- The issue with associated comments.errorCollection
- Holder for any errors that were thrown attempting permission checks.boolean hasPermissionToCreate(@Nullable ApplicationUser user, @Nonnull Issue issue, @Nonnull ErrorCollection errorCollection, @Nonnull Optional<Status> status)
If the state is Optional.none, we use the status in the issue param - the same as calling
hasPermissionToCreate(ApplicationUser, Issue, ErrorCollection)
.
user
- The ApplicationUser
who will be performing the operation.issue
- The issue with associated comments.errorCollection
- Holder for any errors that were thrown attempting permission checks.status
- The status that should be used for the permission check. If Optional.none, will check using current status of the given issue.boolean hasPermissionToCreate(@Nullable ApplicationUser user, @Nonnull Issue issue, @Nonnull ErrorCollection errorCollection, @Nonnull com.opensymphony.workflow.loader.ActionDescriptor actionDescriptor)
user
- The ApplicationUser
who will be performing the operation.issue
- The issue with associated comments.errorCollection
- Holder for any errors that were thrown attempting permission checks.actionDescriptor
- The status that should be used for the permission check. If Optional.none, will check using current status of the given issue.@Deprecated boolean hasPermissionToEdit(ApplicationUser user, Comment comment, ErrorCollection errorCollection)
hasPermissionToCreate(ApplicationUser user, Issue issue, ErrorCollection errorCollection)
instead. Since v6.0.Passing in null comment or a comment with null ID will return false and an error message will be added to the error collection.
Passing in null error collection will throw NPE.
user
- The User
who will be performing the operation.comment
- The Comment
you wish to edit.errorCollection
- holder for any errors that were thrown attempting permission checksboolean isValidCommentBody(String body, ErrorCollection errorCollection)
errorCollection
. This method was added so
the CommentSystemField can validate the body and set the appropriate error message.body
- comment body to validateerrorCollection
- holder for any errors that can occur in process of validationboolean isValidCommentBody(String body, ErrorCollection errorCollection, boolean allowEmpty)
errorCollection
. This method was added so
the CommentSystemField can validate the body and set the appropriate error message.body
- comment body to validateerrorCollection
- holder for any errors that can occur in process of validationallowEmpty
- indicates whether empty body is allowed@Deprecated boolean isValidCommentData(ApplicationUser user, Issue issue, String groupLevel, String roleLevelId, ErrorCollection errorCollection)
isValidCommentVisibility(ApplicationUser, Issue, com.atlassian.jira.bc.issue.visibility.Visibility, ErrorCollection)
instead. Since v6.4.errorCollection
will contain the errors.user
- The User
who will be performing the operation.issue
- issue to associate the comment withgroupLevel
- comment group visibility levelroleLevelId
- comment project role visibility level iderrorCollection
- holder for any errors that can occur in process of validationboolean isValidCommentVisibility(ApplicationUser user, Issue issue, Visibility visibility, ErrorCollection errorCollection)
errorCollection
will contain the errors.user
- The User
who will be performing the operation.issue
- issue to associate the comment withvisibility
- comment visibility levelerrorCollection
- holder for any errors that can occur in process of validation@Deprecated boolean isValidAllCommentData(ApplicationUser user, Issue issue, String body, String groupLevel, String roleLevelId, ErrorCollection errorCollection)
isValidAllCommentData(ApplicationUser, Issue, String, com.atlassian.jira.bc.issue.visibility.Visibility, ErrorCollection)
instead. Since v6.4.errorCollection
if any errors occur.user
- The User
who will be performing the operation.issue
- issue to associate the comment withbody
- comment bodygroupLevel
- comment group visibility levelroleLevelId
- comment project role visibility level iderrorCollection
- holder for any errors that can occur in process of validarionboolean isValidAllCommentData(ApplicationUser user, Issue issue, String body, Visibility visibility, ErrorCollection errorCollection)
errorCollection
if any errors occur.user
- The User
who will be performing the operation.issue
- issue to associate the comment withbody
- comment bodyvisibility
- visibility levelerrorCollection
- holder for any errors that can occur in process of validarion@Deprecated boolean isGroupVisiblityEnabled()
isGroupVisibilityEnabled()
. Since 6.4@Deprecated boolean isProjectRoleVisiblityEnabled()
isProjectRoleVisibilityEnabled()
. Since 6.4boolean isGroupVisibilityEnabled()
boolean isProjectRoleVisibilityEnabled()
Comment getCommentById(ApplicationUser user, Long commentId, ErrorCollection errorCollection)
MutableComment getMutableComment(ApplicationUser user, Long commentId, ErrorCollection errorCollection)
getCommentById(com.atlassian.jira.user.ApplicationUser, java.lang.Long, com.atlassian.jira.util.ErrorCollection)
instead. Since v6.0.MutableComment
for the passed in commentId. This will return null if the user does not have
permission to view the comment. The difference between this method and getCommentById(com.atlassian.jira.user.ApplicationUser, java.lang.Long, com.atlassian.jira.util.ErrorCollection)
is that this
method returns a version of the Comment
that we can set values on.user
- the current user.commentId
- the id that we use to find the comment object.errorCollection
- holder for any errors that can occur in process of validationboolean hasPermissionToDelete(JiraServiceContext jiraServiceContext, Long commentId)
jiraServiceContext
- jiraServiceContext containing the user who wishes to delete a comment and the
errorCollection that will contain any errors encountered when calling the methodcommentId
- the id of the target comment (cannot be null)boolean hasPermissionToEdit(JiraServiceContext jiraServiceContext, Long commentId)
jiraServiceContext
- JIRA service context containing the user who wishes to edit a comment and the
errorCollection that will contain any errors encountered when calling the methodcommentId
- the id of the target comment (cannot be null)void delete(JiraServiceContext jiraServiceContext, Comment comment, boolean dispatchEvent)
hasPermissionToDelete(com.atlassian.jira.bc.JiraServiceContext, Long)
is successfully called first.jiraServiceContext
- containing the user who wishes to delete a comment and the errorCollection
that will contain any errors encountered when calling the methodcomment
- the comment to delete (cannot be null)dispatchEvent
- a flag indicating whether to dispatch an issue updated event. If this flag is false then
the issue will not be reindexed.@ExperimentalApi void setPin(JiraServiceContext jiraServiceContext, Comment comment, boolean pinned)
jiraServiceContext
- containing the user who wishes to pin a comment and the errorCollection
that will contain any errors encountered when calling the methodcomment
- the comment to pin (cannot be null)pinned
- a flag indicating whether to pin or unpin given comment@ExperimentalApi List<PinnedComment> getPinnedComments(JiraServiceContext jiraServiceContext, Issue issue)
PinnedComment
s for the given issue.jiraServiceContext
- containing the user who wishes to get pinned comments and the errorCollection
that will contain any errors encountered when calling the methodissue
- the issue for which pinned comments will be returned@ExperimentalApi boolean hasPermissionToPinComments(ApplicationUser user, Issue issue, ErrorCollection errorCollection)
user
- The ApplicationUser
who will be performing the operation.issue
- The issue with associated comments.errorCollection
- Holder for any errors that were thrown attempting permission checks.Copyright © 2002-2024 Atlassian. All Rights Reserved.