|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.atlassian.jira.bc.issue.comment.DefaultCommentService
public class DefaultCommentService
Default implementation of comment service.
| Field Summary | |
|---|---|
static String |
ERROR_BODY_TOOLONG
|
static String |
ERROR_COMMENT_DELETE_ISSUE_UPDATE_FAILED
|
static String |
ERROR_COMMENT_DELETE_NO_PERMISSION
|
static String |
ERROR_COMMENT_DELETE_NON_EDITABLE_ISSUE
|
static String |
ERROR_COMMENT_EDIT_NON_EDITABLE_ISSUE
|
static String |
ERROR_NULL_COMMENT
|
static String |
ERROR_NULL_COMMENT_DELETE
|
static String |
ERROR_NULL_COMMENT_ID
|
static String |
ERROR_NULL_COMMENT_ID_DELETE
|
| Constructor Summary | |
|---|---|
DefaultCommentService(CommentManager commentManager,
PermissionManager permissionManager,
JiraAuthenticationContext jiraAuthenticationContext,
ProjectRoleManager projectRoleManager,
CommentPermissionManager commentPermissionManager,
IssueUpdater issueUpdater,
IssueManager issueManager,
VisibilityValidator visibilityValidator,
TextFieldCharacterLengthValidator textFieldCharacterLengthValidator)
|
|
| Method Summary | |
|---|---|
Comment |
create(ApplicationUser 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(ApplicationUser 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(ApplicationUser 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,
boolean dispatchEvent,
ErrorCollection errorCollection)
|
Comment |
create(com.atlassian.crowd.embedded.api.User user,
Issue issue,
String body,
String groupLevel,
Long roleLevelId,
boolean dispatchEvent,
ErrorCollection errorCollection)
|
Comment |
create(com.atlassian.crowd.embedded.api.User 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. |
protected void |
doUpdateWithChangelog(Long eventTypeId,
List<ChangeItemBean> changeItems,
Issue issue,
ApplicationUser user,
boolean dispatchEvent)
This method 'completes' the update of an issue entity. |
Comment |
getCommentById(ApplicationUser user,
Long commentId,
ErrorCollection errorCollection)
|
Comment |
getCommentById(com.atlassian.crowd.embedded.api.User user,
Long commentId,
ErrorCollection errorCollection)
|
List<Comment> |
getCommentsForUser(ApplicationUser 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)
|
MutableComment |
getMutableComment(ApplicationUser user,
Long commentId,
ErrorCollection errorCollection)
|
MutableComment |
getMutableComment(com.atlassian.crowd.embedded.api.User user,
Long commentId,
ErrorCollection errorCollection)
|
boolean |
hasPermissionToCreate(ApplicationUser user,
Issue issue,
ErrorCollection errorCollection)
|
boolean |
hasPermissionToCreate(com.atlassian.crowd.embedded.api.User user,
Issue issue,
ErrorCollection errorCollection)
|
boolean |
hasPermissionToDelete(JiraServiceContext jiraServiceContext,
Long commentId)
Determines whether the user can delete a comment. |
boolean |
hasPermissionToEdit(ApplicationUser user,
Comment comment,
ErrorCollection errorCollection)
|
boolean |
hasPermissionToEdit(JiraServiceContext jiraServiceContext,
Long commentId)
Determines whether the user can edit a comment. |
boolean |
hasPermissionToEdit(com.atlassian.crowd.embedded.api.User user,
Comment comment,
ErrorCollection errorCollection)
|
protected boolean |
hasVisibility(JiraServiceContext jiraServiceContext,
Comment 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(ApplicationUser currentUser,
Issue issue,
String body,
String groupLevel,
String roleLevelId,
ErrorCollection errorCollection)
|
boolean |
isValidAllCommentData(com.atlassian.crowd.embedded.api.User user,
Issue issue,
String body,
String groupLevel,
String roleLevelId,
ErrorCollection errorCollection)
|
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 currentUser,
Issue issue,
String groupLevel,
String roleLevelId,
ErrorCollection errorCollection)
|
boolean |
isValidCommentData(com.atlassian.crowd.embedded.api.User user,
Issue issue,
String groupLevel,
String roleLevelId,
ErrorCollection errorCollection)
|
void |
update(ApplicationUser 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)
|
void |
validateCommentUpdate(ApplicationUser 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)
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final String ERROR_NULL_COMMENT_ID
public static final String ERROR_NULL_COMMENT
public static final String ERROR_NULL_COMMENT_DELETE
public static final String ERROR_NULL_COMMENT_ID_DELETE
public static final String ERROR_COMMENT_DELETE_ISSUE_UPDATE_FAILED
public static final String ERROR_COMMENT_EDIT_NON_EDITABLE_ISSUE
public static final String ERROR_COMMENT_DELETE_NON_EDITABLE_ISSUE
public static final String ERROR_COMMENT_DELETE_NO_PERMISSION
public static final String ERROR_BODY_TOOLONG
| Constructor Detail |
|---|
public DefaultCommentService(CommentManager commentManager,
PermissionManager permissionManager,
JiraAuthenticationContext jiraAuthenticationContext,
ProjectRoleManager projectRoleManager,
CommentPermissionManager commentPermissionManager,
IssueUpdater issueUpdater,
IssueManager issueManager,
VisibilityValidator visibilityValidator,
TextFieldCharacterLengthValidator textFieldCharacterLengthValidator)
| Method Detail |
|---|
public Comment create(com.atlassian.crowd.embedded.api.User user,
Issue issue,
String body,
boolean dispatchEvent,
ErrorCollection errorCollection)
create in interface CommentServiceuser - 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
public Comment create(ApplicationUser user,
Issue issue,
String body,
boolean dispatchEvent,
ErrorCollection errorCollection)
CommentServiceComment on the given Issue set with current date and time, visible to all
- no group level or role level restriction.
create in interface CommentServiceuser - The ApplicationUser 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
public void validateCommentUpdate(ApplicationUser user,
Long commentId,
String body,
String groupLevel,
Long roleLevelId,
ErrorCollection errorCollection)
CommentServiceCommentService.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.
validateCommentUpdate in interface CommentServiceuser - 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 comment
public void validateCommentUpdate(com.atlassian.crowd.embedded.api.User user,
Long commentId,
String body,
String groupLevel,
Long roleLevelId,
ErrorCollection errorCollection)
validateCommentUpdate in interface CommentServiceuser - 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 comment
public void update(ApplicationUser user,
MutableComment comment,
boolean dispatchEvent,
ErrorCollection errorCollection)
CommentServiceComment and sets the comments updated date to be now and the updatedAuthor to be the
passed in user.
update in interface CommentServiceuser - the ApplicationUser 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 comment
public void update(com.atlassian.crowd.embedded.api.User user,
MutableComment comment,
boolean dispatchEvent,
ErrorCollection errorCollection)
update in interface CommentServiceuser - 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 comment
public Comment create(ApplicationUser user,
Issue issue,
String body,
String groupLevel,
Long roleLevelId,
boolean dispatchEvent,
ErrorCollection errorCollection)
CommentServiceComment on the given Issue set with current date and time.
create in interface CommentServiceuser - The ApplicationUser 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
public Comment create(com.atlassian.crowd.embedded.api.User user,
Issue issue,
String body,
String groupLevel,
Long roleLevelId,
boolean dispatchEvent,
ErrorCollection errorCollection)
create in interface CommentServiceuser - 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
public Comment create(ApplicationUser user,
Issue issue,
String body,
String groupLevel,
Long roleLevelId,
Date created,
boolean dispatchEvent,
ErrorCollection errorCollection)
CommentServiceComment on the given Issue.
create in interface CommentServiceuser - The ApplicationUser 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
public Comment create(com.atlassian.crowd.embedded.api.User user,
Issue issue,
String body,
String groupLevel,
Long roleLevelId,
Date created,
boolean dispatchEvent,
ErrorCollection errorCollection)
create in interface CommentServiceuser - 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
public List<Comment> getCommentsForUser(ApplicationUser currentUser,
Issue issue,
ErrorCollection errorCollection)
CommentServiceComments for the given user
getCommentsForUser in interface CommentServicecurrentUser - current ApplicationUserissue - the issue with associated commentserrorCollection - holder for any errors that were thrown attempting to update a comment
public List<Comment> getCommentsForUser(com.atlassian.crowd.embedded.api.User currentUser,
Issue issue,
ErrorCollection errorCollection)
getCommentsForUser in interface CommentServicecurrentUser - current Userissue - the issue with associated commentserrorCollection - holder for any errors that were thrown attempting to update a comment
public boolean isValidCommentData(ApplicationUser currentUser,
Issue issue,
String groupLevel,
String roleLevelId,
ErrorCollection errorCollection)
isValidCommentData in interface CommentService
public boolean isValidCommentData(com.atlassian.crowd.embedded.api.User user,
Issue issue,
String groupLevel,
String roleLevelId,
ErrorCollection errorCollection)
isValidCommentData in interface CommentServiceuser - 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 validation
public boolean isValidCommentBody(String body,
ErrorCollection errorCollection)
CommentServiceerrorCollection. This method was added so
the CommentSystemField can validate the body and set the appropriate error message.
isValidCommentBody in interface CommentServicebody - comment body to validateerrorCollection - holder for any errors that can occur in process of validation
public boolean isValidCommentBody(String body,
ErrorCollection errorCollection,
boolean allowEmpty)
CommentServiceerrorCollection. This method was added so
the CommentSystemField can validate the body and set the appropriate error message.
isValidCommentBody in interface CommentServicebody - comment body to validateerrorCollection - holder for any errors that can occur in process of validationallowEmpty - indicates whether empty body is allowed
public boolean isValidAllCommentData(ApplicationUser currentUser,
Issue issue,
String body,
String groupLevel,
String roleLevelId,
ErrorCollection errorCollection)
isValidAllCommentData in interface CommentService
public boolean isValidAllCommentData(com.atlassian.crowd.embedded.api.User user,
Issue issue,
String body,
String groupLevel,
String roleLevelId,
ErrorCollection errorCollection)
isValidAllCommentData in interface CommentServiceuser - 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 validarion
public boolean isGroupVisiblityEnabled()
CommentService
isGroupVisiblityEnabled in interface CommentServicepublic boolean isProjectRoleVisiblityEnabled()
CommentService
isProjectRoleVisiblityEnabled in interface CommentService
public Comment getCommentById(ApplicationUser user,
Long commentId,
ErrorCollection errorCollection)
getCommentById in interface CommentService
public Comment getCommentById(com.atlassian.crowd.embedded.api.User user,
Long commentId,
ErrorCollection errorCollection)
getCommentById in interface CommentServiceuser - who is looking up the commentcommentId - the id representing the Comment you would like to retrieve.errorCollection - holder for any errors that can occur in process of validation
Comment or null (if the user cannot browse the comment).
public MutableComment getMutableComment(ApplicationUser user,
Long commentId,
ErrorCollection errorCollection)
getMutableComment in interface CommentService
public MutableComment getMutableComment(com.atlassian.crowd.embedded.api.User user,
Long commentId,
ErrorCollection errorCollection)
getMutableComment in interface CommentServiceuser - 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
public boolean hasPermissionToDelete(JiraServiceContext jiraServiceContext,
Long commentId)
CommentService
hasPermissionToDelete in interface CommentServicejiraServiceContext - 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)
protected boolean hasVisibility(JiraServiceContext jiraServiceContext,
Comment comment)
public void delete(JiraServiceContext jiraServiceContext,
Comment comment,
boolean dispatchEvent)
CommentServiceCommentService.hasPermissionToDelete(com.atlassian.jira.bc.JiraServiceContext,Long) is successfully called first.
delete in interface CommentServicejiraServiceContext - 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.
public boolean hasPermissionToCreate(ApplicationUser user,
Issue issue,
ErrorCollection errorCollection)
hasPermissionToCreate in interface CommentService
public boolean hasPermissionToCreate(com.atlassian.crowd.embedded.api.User user,
Issue issue,
ErrorCollection errorCollection)
hasPermissionToCreate in interface CommentServiceuser - 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
public boolean hasPermissionToEdit(JiraServiceContext jiraServiceContext,
Long commentId)
CommentService
hasPermissionToEdit in interface CommentServicejiraServiceContext - 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)
public boolean hasPermissionToEdit(ApplicationUser user,
Comment comment,
ErrorCollection errorCollection)
hasPermissionToEdit in interface CommentService
public boolean hasPermissionToEdit(com.atlassian.crowd.embedded.api.User user,
Comment comment,
ErrorCollection errorCollection)
hasPermissionToEdit in interface CommentServiceuser - 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
protected void doUpdateWithChangelog(Long eventTypeId,
List<ChangeItemBean> changeItems,
Issue issue,
ApplicationUser user,
boolean dispatchEvent)
eventTypeId - event type idchangeItems - list of change itemsissue - issue to updateuser - user performing this operationdispatchEvent - dispatch event flag
JiraException - if update fails
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||