com.atlassian.jira.bc.issue.comment
Interface CommentService

All Known Implementing Classes:
DefaultCommentService

public interface CommentService

This is the business layer component that must be used to access all Comment functionality. This will perform validation before it hands off to the CommentManager. Operations will not be performed if validation fails.


Method Summary
 Comment create(User user, Issue issue, String body, boolean dispatchEvent, ErrorCollection errorCollection)
          Creates and persists a Comment on the given Issue set with current date and time, visible to all - no group level or role level restriction.
 Comment create(com.atlassian.crowd.embedded.api.User user, Issue issue, String body, boolean dispatchEvent, ErrorCollection errorCollection)
          Creates and persists a Comment on the given Issue set with current date and time, visible to all - no group level or role level restriction.
 Comment create(User user, Issue issue, String body, String groupLevel, Long roleLevelId, boolean dispatchEvent, ErrorCollection errorCollection)
          Creates and persists a Comment on the given Issue set with current date and time.
 Comment create(com.atlassian.crowd.embedded.api.User user, Issue issue, String body, String groupLevel, Long roleLevelId, boolean dispatchEvent, ErrorCollection errorCollection)
          Creates and persists a Comment on the given Issue set with current date and time.
 Comment create(User user, Issue issue, String body, String groupLevel, Long roleLevelId, Date created, boolean dispatchEvent, ErrorCollection errorCollection)
          Creates and persists a Comment on the given Issue.
 Comment create(com.atlassian.crowd.embedded.api.User user, Issue issue, String body, String groupLevel, Long roleLevelId, Date created, boolean dispatchEvent, ErrorCollection errorCollection)
          Creates and persists a Comment on the given Issue.
 void delete(JiraServiceContext jiraServiceContext, Comment comment, boolean dispatchEvent)
          Deletes a comment and updates the issue's change history and updated date.
 Comment getCommentById(User user, Long commentId, ErrorCollection errorCollection)
          Will return a comment for the passed in commentId.
 Comment getCommentById(com.atlassian.crowd.embedded.api.User user, Long commentId, ErrorCollection errorCollection)
          Will return a comment for the passed in commentId.
 List<Comment> getCommentsForUser(User currentUser, Issue issue, ErrorCollection errorCollection)
          Will return a list of Comments for the given user
 List<Comment> getCommentsForUser(com.atlassian.crowd.embedded.api.User currentUser, Issue issue, ErrorCollection errorCollection)
          Will return a list of Comments for the given user
 MutableComment getMutableComment(User user, Long commentId, ErrorCollection errorCollection)
          Will return a MutableComment for the passed in commentId.
 MutableComment getMutableComment(com.atlassian.crowd.embedded.api.User user, Long commentId, ErrorCollection errorCollection)
          Will return a MutableComment for the passed in commentId.
 boolean hasPermissionToCreate(User user, Issue issue, ErrorCollection errorCollection)
          Has the correct permission to create a comment for the given issue.
 boolean hasPermissionToCreate(com.atlassian.crowd.embedded.api.User user, Issue issue, ErrorCollection errorCollection)
          Has the correct permission to create a comment for the given issue.
 boolean hasPermissionToDelete(JiraServiceContext jiraServiceContext, Long commentId)
          Determines whether the user can delete a comment.
 boolean hasPermissionToEdit(JiraServiceContext jiraServiceContext, Long commentId)
          Determines whether the user can edit a comment.
 boolean hasPermissionToEdit(User user, Comment comment, ErrorCollection errorCollection)
          Determine whether the current user has the permission to edit the comment.
 boolean hasPermissionToEdit(com.atlassian.crowd.embedded.api.User user, Comment comment, ErrorCollection errorCollection)
          Determine whether the current user has the permission to edit the comment.
 boolean isGroupVisiblityEnabled()
          Returns the flag that indicates whether group visiblity is enabled
 boolean isProjectRoleVisiblityEnabled()
          Returns the flag that indicates whether project role visibility is enabled
 boolean isValidAllCommentData(User user, Issue issue, String body, String groupLevel, String roleLevelId, ErrorCollection errorCollection)
          Will call all other validate methods setting the appropriate errors in the errorCollection if any errors occur.
 boolean isValidAllCommentData(com.atlassian.crowd.embedded.api.User user, Issue issue, String body, String groupLevel, String roleLevelId, 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 isValidCommentData(User user, Issue issue, String groupLevel, String roleLevelId, ErrorCollection errorCollection)
          This method validates if the comment has the correct role and group levels set.
 boolean isValidCommentData(com.atlassian.crowd.embedded.api.User user, Issue issue, String groupLevel, String roleLevelId, ErrorCollection errorCollection)
          This method validates if the comment has the correct role and group levels set.
 void update(User user, MutableComment comment, boolean dispatchEvent, ErrorCollection errorCollection)
          Updates a Comment and sets the comments updated date to be now and the updatedAuthor to be the passed in user.
 void update(com.atlassian.crowd.embedded.api.User user, MutableComment comment, boolean dispatchEvent, ErrorCollection errorCollection)
          Updates a Comment and sets the comments updated date to be now and the updatedAuthor to be the passed in user.
 void validateCommentUpdate(User user, Long commentId, String body, String groupLevel, Long roleLevelId, ErrorCollection errorCollection)
          Confirms the parameters to update a comment are valid and that the updating user has the permission to do so.
 void validateCommentUpdate(com.atlassian.crowd.embedded.api.User user, Long commentId, String body, String groupLevel, Long roleLevelId, ErrorCollection errorCollection)
          Confirms the parameters to update a comment are valid and that the updating user has the permission to do so.
 

Method Detail

create

Comment create(User user,
               Issue issue,
               String body,
               String groupLevel,
               Long roleLevelId,
               Date created,
               boolean dispatchEvent,
               ErrorCollection errorCollection)
Creates and persists a Comment on the given Issue.

Parameters:
user - The User who will be performing the operation.
issue - The Issue you wish to associate the Comment with. This can not be null
body - The body of the comment
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)
created - The date of comment creation
dispatchEvent - whether or not you want to have an event dispatched on Comment creation
errorCollection - holder for any errors that were thrown attempting to create a comment
Returns:
the created Comment object, or null if no object created.

create

Comment create(com.atlassian.crowd.embedded.api.User user,
               Issue issue,
               String body,
               String groupLevel,
               Long roleLevelId,
               Date created,
               boolean dispatchEvent,
               ErrorCollection errorCollection)
Creates and persists a Comment on the given Issue.

Parameters:
user - The User who will be performing the operation.
issue - The Issue you wish to associate the Comment with. This can not be null
body - The body of the comment
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)
created - The date of comment creation
dispatchEvent - whether or not you want to have an event dispatched on Comment creation
errorCollection - holder for any errors that were thrown attempting to create a comment
Returns:
the created Comment object, or null if no object created.

create

Comment create(User user,
               Issue issue,
               String body,
               String groupLevel,
               Long roleLevelId,
               boolean dispatchEvent,
               ErrorCollection errorCollection)
Creates and persists a Comment on the given Issue set with current date and time.

Parameters:
user - The User who will be performing the operation.
issue - The Issue you wish to associate the Comment with. This can not be null
body - The body of the comment
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)
dispatchEvent - whether or not you want to have an event dispatched on Comment creation
errorCollection - holder for any errors that were thrown attempting to create a comment
Returns:
the created Comment object, or null if no object created.

create

Comment create(com.atlassian.crowd.embedded.api.User user,
               Issue issue,
               String body,
               String groupLevel,
               Long roleLevelId,
               boolean dispatchEvent,
               ErrorCollection errorCollection)
Creates and persists a Comment on the given Issue set with current date and time.

Parameters:
user - The User who will be performing the operation.
issue - The Issue you wish to associate the Comment with. This can not be null
body - The body of the comment
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)
dispatchEvent - whether or not you want to have an event dispatched on Comment creation
errorCollection - holder for any errors that were thrown attempting to create a comment
Returns:
the created Comment object, or null if no object created.

create

Comment create(User user,
               Issue issue,
               String body,
               boolean dispatchEvent,
               ErrorCollection errorCollection)
Creates and persists a Comment on the given Issue set with current date and time, visible to all - no group level or role level restriction.

Parameters:
user - The User who will be performing the operation.
issue - The Issue you wish to associate the Comment with. This can not be null
body - The body of the comment
dispatchEvent - whether or not you want to have an event dispatched on Comment creation
errorCollection - holder for any errors that were thrown attempting to create a comment
Returns:
the created Comment object, or null if no object created.

create

Comment create(com.atlassian.crowd.embedded.api.User user,
               Issue issue,
               String body,
               boolean dispatchEvent,
               ErrorCollection errorCollection)
Creates and persists a Comment on the given Issue set with current date and time, visible to all - no group level or role level restriction.

Parameters:
user - The User who will be performing the operation.
issue - The Issue you wish to associate the Comment with. This can not be null
body - The body of the comment
dispatchEvent - whether or not you want to have an event dispatched on Comment creation
errorCollection - holder for any errors that were thrown attempting to create a comment
Returns:
the created Comment object, or null if no object created.

validateCommentUpdate

void validateCommentUpdate(User user,
                           Long commentId,
                           String body,
                           String groupLevel,
                           Long roleLevelId,
                           ErrorCollection errorCollection)
Confirms the parameters to update a comment are valid and that the updating user has the permission to do so. This method will validate the raw input parameters. This method only validates the parameters and will not actually persist the changes, you must call update(com.opensymphony.user.User, 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.

Parameters:
user - The User 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 insure 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 comment

validateCommentUpdate

void validateCommentUpdate(com.atlassian.crowd.embedded.api.User user,
                           Long commentId,
                           String body,
                           String groupLevel,
                           Long roleLevelId,
                           ErrorCollection errorCollection)
Confirms the parameters to update a comment are valid and that the updating user has the permission to do so. This method will validate the raw input parameters. This method only validates the parameters and will not actually persist the changes, you must call update(com.opensymphony.user.User, 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.

Parameters:
user - The User 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 insure 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 comment

update

void update(User user,
            MutableComment comment,
            boolean dispatchEvent,
            ErrorCollection errorCollection)
Updates a Comment and sets the comments updated date to be now and the updatedAuthor to be the passed in user.

Parameters:
user - the user who must have permission to update this comment and who will be used as the udpateAuthor
comment - 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 comment
Throws:
IllegalArgumentException - if comment or its id is null

update

void update(com.atlassian.crowd.embedded.api.User user,
            MutableComment comment,
            boolean dispatchEvent,
            ErrorCollection errorCollection)
Updates a Comment and sets the comments updated date to be now and the updatedAuthor to be the passed in user.

Parameters:
user - the user who must have permission to update this comment and who will be used as the udpateAuthor
comment - 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 comment
Throws:
IllegalArgumentException - if comment or its id is null

getCommentsForUser

List<Comment> getCommentsForUser(User currentUser,
                                 Issue issue,
                                 ErrorCollection errorCollection)
Will return a list of Comments for the given user

Parameters:
currentUser - current user
issue - the issue with associated comments
errorCollection - holder for any errors that were thrown attempting to update a comment
Returns:
a List of comments

getCommentsForUser

List<Comment> getCommentsForUser(com.atlassian.crowd.embedded.api.User currentUser,
                                 Issue issue,
                                 ErrorCollection errorCollection)
Will return a list of Comments for the given user

Parameters:
currentUser - current user
issue - the issue with associated comments
errorCollection - holder for any errors that were thrown attempting to update a comment
Returns:
a List of comments

hasPermissionToCreate

boolean hasPermissionToCreate(User user,
                              Issue issue,
                              ErrorCollection errorCollection)
Has the correct permission to create a comment for the given issue.

Parameters:
user - The User who will be performing the operation.
issue - The Issue you wish to associate the Comment with. This can not be null.
errorCollection - holder for any errors that were thrown attempting permission checks
Returns:
true if permission check passes.

hasPermissionToCreate

boolean hasPermissionToCreate(com.atlassian.crowd.embedded.api.User user,
                              Issue issue,
                              ErrorCollection errorCollection)
Has the correct permission to create a comment for the given issue.

Parameters:
user - The User who will be performing the operation.
issue - The Issue you wish to associate the Comment with. This can not be null.
errorCollection - holder for any errors that were thrown attempting permission checks
Returns:
true if permission check passes.

hasPermissionToEdit

boolean hasPermissionToEdit(User user,
                            Comment comment,
                            ErrorCollection errorCollection)
Determine whether the current user has the permission to edit the comment. In case of errors, add error messages to the error collection.

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.

Parameters:
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 checks
Returns:
true if the user has edit permission, false otherwise

hasPermissionToEdit

boolean hasPermissionToEdit(com.atlassian.crowd.embedded.api.User user,
                            Comment comment,
                            ErrorCollection errorCollection)
Determine whether the current user has the permission to edit the comment. In case of errors, add error messages to the error collection.

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.

Parameters:
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 checks
Returns:
true if the user has edit permission, false otherwise

isValidCommentBody

boolean isValidCommentBody(String body,
                           ErrorCollection errorCollection)
Validates that the body is a valid string, if not the appropriate error is added to the errorCollection. This method was added so the CommentSystemField can validate the body and set the appropriate error message.

Parameters:
body - comment body to validate
errorCollection - holder for any errors that can occur in process of validation
Returns:
true is the body is valid.

isValidCommentData

boolean isValidCommentData(User user,
                           Issue issue,
                           String groupLevel,
                           String roleLevelId,
                           ErrorCollection errorCollection)
This method validates if the comment has the correct role and group levels set. If there is an error during validation the passed in errorCollection will contain the errors.

Parameters:
user - The User who will be performing the operation.
issue - issue to associate the comment with
groupLevel - comment group visibility level
roleLevelId - comment project role visibility level id
errorCollection - holder for any errors that can occur in process of validation
Returns:
true if the role and group level information has been set correctly for a comment

isValidCommentData

boolean isValidCommentData(com.atlassian.crowd.embedded.api.User user,
                           Issue issue,
                           String groupLevel,
                           String roleLevelId,
                           ErrorCollection errorCollection)
This method validates if the comment has the correct role and group levels set. If there is an error during validation the passed in errorCollection will contain the errors.

Parameters:
user - The User who will be performing the operation.
issue - issue to associate the comment with
groupLevel - comment group visibility level
roleLevelId - comment project role visibility level id
errorCollection - holder for any errors that can occur in process of validation
Returns:
true if the role and group level information has been set correctly for a comment

isValidAllCommentData

boolean isValidAllCommentData(User user,
                              Issue issue,
                              String body,
                              String groupLevel,
                              String roleLevelId,
                              ErrorCollection errorCollection)
Will call all other validate methods setting the appropriate errors in the errorCollection if any errors occur.

Parameters:
user - The User who will be performing the operation.
issue - issue to associate the comment with
body - comment body
groupLevel - comment group visibility level
roleLevelId - comment project role visibility level id
errorCollection - holder for any errors that can occur in process of validarion
Returns:
true if validation passes

isValidAllCommentData

boolean isValidAllCommentData(com.atlassian.crowd.embedded.api.User user,
                              Issue issue,
                              String body,
                              String groupLevel,
                              String roleLevelId,
                              ErrorCollection errorCollection)
Will call all other validate methods setting the appropriate errors in the errorCollection if any errors occur.

Parameters:
user - The User who will be performing the operation.
issue - issue to associate the comment with
body - comment body
groupLevel - comment group visibility level
roleLevelId - comment project role visibility level id
errorCollection - holder for any errors that can occur in process of validarion
Returns:
true if validation passes

isGroupVisiblityEnabled

boolean isGroupVisiblityEnabled()
Returns the flag that indicates whether group visiblity is enabled

Returns:
true if enabled, false otherwise

isProjectRoleVisiblityEnabled

boolean isProjectRoleVisiblityEnabled()
Returns the flag that indicates whether project role visibility is enabled

Returns:
true if enabled, false otherwise

getCommentById

Comment getCommentById(User user,
                       Long commentId,
                       ErrorCollection errorCollection)
Will return a comment for the passed in commentId. This will return null if the user does not have permission to view the comment

Parameters:
user - who is looking up the comment
commentId - the id representing the Comment you would like to retrieve.
errorCollection - holder for any errors that can occur in process of validation
Returns:
a Comment or null (if the user cannot browse the comment).

getCommentById

Comment getCommentById(com.atlassian.crowd.embedded.api.User user,
                       Long commentId,
                       ErrorCollection errorCollection)
Will return a comment for the passed in commentId. This will return null if the user does not have permission to view the comment

Parameters:
user - who is looking up the comment
commentId - the id representing the Comment you would like to retrieve.
errorCollection - holder for any errors that can occur in process of validation
Returns:
a Comment or null (if the user cannot browse the comment).

getMutableComment

MutableComment getMutableComment(User user,
                                 Long commentId,
                                 ErrorCollection errorCollection)
Will return a 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.opensymphony.user.User,Long,ErrorCollection) is that this method returns a version of the Comment that we can set values on.

Parameters:
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 validation
Returns:
the comment that is identified by the commentId.

getMutableComment

MutableComment getMutableComment(com.atlassian.crowd.embedded.api.User user,
                                 Long commentId,
                                 ErrorCollection errorCollection)
Will return a 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(User,Long,ErrorCollection) is that this method returns a version of the Comment that we can set values on.

Parameters:
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 validation
Returns:
the comment that is identified by the commentId.

hasPermissionToDelete

boolean hasPermissionToDelete(JiraServiceContext jiraServiceContext,
                              Long commentId)
Determines whether the user can delete a comment. Will return true when the following are satisfied:

Parameters:
jiraServiceContext - jiraServiceContext containing the user who wishes to delete a comment and the errorCollection that will contain any errors encountered when calling the method
commentId - the id of the target comment (cannot be null)
Returns:
true if the user has permission to delete the target comment, false otherwise

hasPermissionToEdit

boolean hasPermissionToEdit(JiraServiceContext jiraServiceContext,
                            Long commentId)
Determines whether the user can edit a comment. Will return true when the following are satisfied:

Parameters:
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 method
commentId - the id of the target comment (cannot be null)
Returns:
true if the user has permission to edit the comment, false otherwise

delete

void delete(JiraServiceContext jiraServiceContext,
            Comment comment,
            boolean dispatchEvent)
Deletes a comment and updates the issue's change history and updated date. Expects that hasPermissionToDelete(com.atlassian.jira.bc.JiraServiceContext,Long) is successfully called first.

Parameters:
jiraServiceContext - containing the user who wishes to delete a comment and the errorCollection that will contain any errors encountered when calling the method
comment - 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.


Copyright © 2002-2011 Atlassian. All Rights Reserved.