Class DefaultCommentManager

java.lang.Object
com.atlassian.jira.issue.comments.DefaultCommentManager
All Implemented Interfaces:
GroupConfigurable, CommentManager

public class DefaultCommentManager extends Object implements CommentManager, GroupConfigurable
  • Field Details

  • Constructor Details

  • Method Details

    • convertToComment

      public Comment convertToComment(org.ofbiz.core.entity.GenericValue gv)
      Description copied from interface: CommentManager
      This is a convenience method that can be used to convert a GenericValue representation of a comment to a comment object.
      Specified by:
      convertToComment in interface CommentManager
      Parameters:
      gv - is the GenericValue representation of a comment.
      Returns:
      Comment object.
    • getCommentById

      public Comment getCommentById(Long commentId)
      Description copied from interface: CommentManager
      Will return a comment for the passed in commentId.
      Specified by:
      getCommentById in interface CommentManager
      Parameters:
      commentId - the id representing the Comment you would like to retrieve.
      Returns:
      a Comment or null (if the user cannot browse the comment).
    • getMutableComment

      public MutableComment getMutableComment(Long commentId)
      Description copied from interface: CommentManager
      Retrieves comment by given id and returns it as mutable object.
      Specified by:
      getMutableComment in interface CommentManager
      Parameters:
      commentId - comment id
      Returns:
      mutable comment or null if comment with given id not found
    • getCommentsForUser

      public List<Comment> getCommentsForUser(Issue issue, ApplicationUser user)
      Description copied from interface: CommentManager
      Retrieves all Comments on the given Issue that the given ApplicationUser 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.
      Specified by:
      getCommentsForUser in interface CommentManager
      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 Comments
    • searchCommentsVisibleForUser

      public Window<Comment> searchCommentsVisibleForUser(CommentSearchParameters parameters)
      Description copied from interface: CommentManager
      Returns list of comments filtered and sorted by given parameters CommentSearchParameters.
      Specified by:
      searchCommentsVisibleForUser in interface CommentManager
      Parameters:
      parameters - search parameters
      Returns:
      Window of comments
    • streamComments

      public Stream<Comment> streamComments(@Nullable ApplicationUser user, @Nonnull Issue issue)
      Description copied from interface: CommentManager
      Streams every comment of the given issue that is visible to the user. Comments are returned in the order that they were created in.
      Specified by:
      streamComments in interface CommentManager
      Parameters:
      user - the user to check permissions against, or null if anonymous
      issue - issue for which to get comments
      Returns:
      a stream of comments
    • getCommentSummary

      public CommentSummary getCommentSummary(@Nullable ApplicationUser user, @Nonnull Issue issue, @Nonnull Optional<Long> focusedCommentId)
      Description copied from interface: CommentManager
      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 by APKeys.COMMENT_COLLAPSING_MINIMUM_HIDDEN) then all comments will be returned (similar to the results of calling CommentManager.getCommentsForUser(Issue, ApplicationUser).
      Specified by:
      getCommentSummary in interface CommentManager
      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.
    • getLastComment

      public Comment getLastComment(Issue issue)
      Description copied from interface: CommentManager
      Returns the the last Comment on the given Issue. 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.
      Specified by:
      getLastComment in interface CommentManager
      Parameters:
      issue - the comments are associated with.
      Returns:
      The author of the last comment, or null if there is no comment.
    • getCommentsForUserSince

      @Nonnull public List<Comment> getCommentsForUserSince(@Nonnull Issue issue, @Nullable ApplicationUser user, @Nonnull Date since)
      Description copied from interface: CommentManager
      Retrieves Comments that were created or updated after the provided date, on the given Issue that the given ApplicationUser 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.
      Specified by:
      getCommentsForUserSince in interface CommentManager
      Parameters:
      issue - the comments are associated with. Must not be null
      user - 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 Comments
    • getComments

      public List<Comment> getComments(Issue issue)
      Description copied from interface: CommentManager
      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 given User please use CommentManager.getCommentsForUser(com.atlassian.jira.issue.Issue, com.atlassian.jira.user.ApplicationUser))}
      Specified by:
      getComments in interface CommentManager
      Parameters:
      issue - the comments are associated with.
      Returns:
      a List of comments, will return an empty list if none found.
    • create

      public Comment create(Issue issue, ApplicationUser author, String body, boolean dispatchEvent)
      Description copied from interface: CommentManager
      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.
      Specified by:
      create in interface CommentManager
      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 type EventType.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

      public Comment create(Issue issue, String author, String body, boolean dispatchEvent)
      Description copied from interface: CommentManager
      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.
      Specified by:
      create in interface CommentManager
      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 type EventType.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

      public Comment create(Issue issue, ApplicationUser author, String body, String groupLevel, Long roleLevelId, boolean dispatchEvent) throws DataAccessException
      Description copied from interface: CommentManager
      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.
      Specified by:
      create in interface CommentManager
      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 the ProjectRole to limit comment visibility to, this must reference a valid project role.
      dispatchEvent - if true then an event of type EventType.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:
      DataAccessException
    • create

      public Comment create(Issue issue, String author, String body, String groupLevel, Long roleLevelId, boolean dispatchEvent)
      Description copied from interface: CommentManager
      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.

      Specified by:
      create in interface CommentManager
      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 the ProjectRole to limit comment visibility to, this must reference a valid project role.
      dispatchEvent - if true then an event of type EventType.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

      public Comment create(Issue issue, ApplicationUser author, String body, String groupLevel, Long roleLevelId, Date created, boolean dispatchEvent) throws DataAccessException
      Description copied from interface: CommentManager
      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.
      Specified by:
      create in interface CommentManager
      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 the ProjectRole 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 type EventType.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:
      DataAccessException
    • create

      public Comment create(Issue issue, ApplicationUser author, String body, String groupLevel, Long roleLevelId, Date created, Map<String,JSONObject> commentProperties, boolean dispatchEvent)
      Description copied from interface: CommentManager
      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.
      Specified by:
      create in interface CommentManager
      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 the ProjectRole 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 type EventType.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

      public Comment create(Issue issue, String author, String body, String groupLevel, Long roleLevelId, Date created, boolean dispatchEvent)
      Description copied from interface: CommentManager
      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.

      Specified by:
      create in interface CommentManager
      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 the ProjectRole 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 type EventType.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

      public Comment create(Issue issue, ApplicationUser author, ApplicationUser updateAuthor, String body, String groupLevel, Long roleLevelId, Date created, Date updated, boolean dispatchEvent) throws DataAccessException
      Description copied from interface: CommentManager
      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.
      Specified by:
      create in interface CommentManager
      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 last
      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 the ProjectRole 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 type EventType.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:
      DataAccessException
    • create

      public Comment create(Issue issue, String author, String updateAuthor, String body, String groupLevel, Long roleLevelId, Date created, Date updated, boolean dispatchEvent)
      Description copied from interface: CommentManager
      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.

      Specified by:
      create in interface CommentManager
      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 last
      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 the ProjectRole 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 type EventType.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

      public Comment create(Issue issue, ApplicationUser author, ApplicationUser updateAuthor, String body, String groupLevel, Long roleLevelId, Date created, Date updated, boolean dispatchEvent, boolean modifyIssueUpdateDate)
      Description copied from interface: CommentManager
      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.
      Specified by:
      create in interface CommentManager
      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 last
      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 the ProjectRole 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 type EventType.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.
    • create

      public 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)
      Description copied from interface: CommentManager
      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.
      Specified by:
      create in interface CommentManager
      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 last
      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 the ProjectRole 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 type EventType.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.
    • create

      public Comment create(Issue issue, String author, String updateAuthor, String body, String groupLevel, Long roleLevelId, Date created, Date updated, boolean dispatchEvent, boolean modifyIssueUpdateDate)
      Description copied from interface: CommentManager
      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.
      Specified by:
      create in interface CommentManager
      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 last
      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 the ProjectRole 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 type EventType.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.
    • update

      public void update(Comment comment, boolean dispatchEvent)
      Description copied from interface: CommentManager
      Persists the updated comment.
      Specified by:
      update in interface CommentManager
      Parameters:
      comment - to update
      dispatchEvent - if true then an event of type EventType.ISSUE_COMMENT_EDITED_ID will be dispatched and any notifications listening for that event will be triggered. If false no event will be dispatched.
    • update

      public void update(Comment comment, Map<String,JSONObject> commentProperties, boolean dispatchEvent)
      Description copied from interface: CommentManager
      Persists the updated comment.
      Specified by:
      update in interface CommentManager
      Parameters:
      comment - to update
      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 type EventType.ISSUE_COMMENT_EDITED_ID will be dispatched and any notifications listening for that event will be triggered. If false no event will be dispatched.
    • delete

      public ChangeItemBean delete(Comment comment)
      Description copied from interface: CommentManager
      Deletes the specified comment.
      Specified by:
      delete in interface CommentManager
      Parameters:
      comment - to delete
      Returns:
      a change item that represents the change of deleting the comment
    • delete

      public void delete(Comment comment, boolean dispatchEvent, ApplicationUser user)
      Description copied from interface: CommentManager
      Deletes the specified comment.
      Specified by:
      delete in interface CommentManager
      Parameters:
      comment - to delete
      dispatchEvent - if true then an event of type EventType.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 with IssueEvent CommentDeletedEvent
      user - who executes this action. will be dispatched.
    • setPin

      public void setPin(Comment comment, ApplicationUser user, boolean pinComment)
      Description copied from interface: CommentManager
      Pins the specified comment.
      Specified by:
      setPin in interface CommentManager
      Parameters:
      comment - to pin
      user - who executes this action
      pinComment - true if comments should be pinned, false if comments should be unpinned
    • getPinnedComments

      public List<PinnedComment> getPinnedComments(Issue issue, ApplicationUser user)
      Description copied from interface: CommentManager
      Returns list of pinned comments for given issue which are visible for user
      Specified by:
      getPinnedComments in interface CommentManager
      user - who executes this action.
      Returns:
      list of Pinned comments for given issue
    • deleteCommentsForIssue

      public void deleteCommentsForIssue(Issue issue)
      Description copied from interface: CommentManager
      Removes Comments belonging to the passed issue.
      Specified by:
      deleteCommentsForIssue in interface CommentManager
      Parameters:
      issue - entity with the comments to delete.
    • isUserCommentAuthor

      public boolean isUserCommentAuthor(ApplicationUser user, Comment comment)
      Description copied from interface: CommentManager
      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.

      Specified by:
      isUserCommentAuthor in interface CommentManager
      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.
    • swapCommentGroupRestriction

      public int swapCommentGroupRestriction(String groupName, String swapGroup)
      Description copied from interface: CommentManager
      Updates Comment'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.
      Specified by:
      swapCommentGroupRestriction in interface CommentManager
      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.
    • swapCommentRoleRestriction

      public int swapCommentRoleRestriction(Long roleId, Long swapRoleId)
      Description copied from interface: CommentManager
      Updates Comment'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.
      Specified by:
      swapCommentRoleRestriction in interface CommentManager
      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.
    • getCountForCommentsRestrictedByGroup

      public long getCountForCommentsRestrictedByGroup(String groupName)
      Description copied from interface: CommentManager
      Returns the count of all Comment's that have their visibility restricted by the named group.
      Specified by:
      getCountForCommentsRestrictedByGroup in interface CommentManager
      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.
    • getCountForCommentsRestrictedByRole

      public long getCountForCommentsRestrictedByRole(Long roleId)
      Description copied from interface: CommentManager
      Returns the count of all Comment's that have their visibility restricted by the role with the given id.
      Specified by:
      getCountForCommentsRestrictedByRole in interface CommentManager
      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.
    • isGroupUsed

      public boolean isGroupUsed(@Nonnull com.atlassian.crowd.embedded.api.Group group)
      Description copied from interface: GroupConfigurable
      Determine whether configuration exists for the specified Group.
      Specified by:
      isGroupUsed in interface GroupConfigurable
      Parameters:
      group - that may or may not exist.
      Returns:
      true if the group is used in the components configuration.