Class DefaultWorklogManager

java.lang.Object
com.atlassian.jira.issue.worklog.DefaultWorklogManager
All Implemented Interfaces:
GroupConfigurable, WorklogManager

public class DefaultWorklogManager extends Object implements WorklogManager, GroupConfigurable
  • Constructor Details

  • Method Details

    • delete

      public boolean delete(ApplicationUser user, Worklog worklog, Long newEstimate, boolean dispatchEvent)
      Description copied from interface: WorklogManager
      Deletes the specified worklog and updates the issue's remaining estimate and time spent fields.
      Specified by:
      delete in interface WorklogManager
      Parameters:
      user - the user who is performing the action
      worklog - the value to remove in the database
      newEstimate - the value to set the Issue's remainig estimate. If null the value will be left alone.
      dispatchEvent - if true then an event of type EventType.ISSUE_WORKLOG_DELETED_ID will be dispatched and any notifications listening for that event will be triggered. If false no event will be dispatched.
      Returns:
      true if the worklog was deleted, false otherwise.
    • create

      public Worklog create(ApplicationUser user, Worklog worklog, Long newEstimate, boolean dispatchEvent)
      Description copied from interface: WorklogManager
      Creates a worklog based on the passed in Worklog object and associates it with the given issue.

      If you have provided a groupLevel then the worklog visibility will be restricted to the provided group, it is assumed that validation to insure that the group actually exists has been performed outside of this method. If you have provided a roleLevelId then the worklog visibility will be restricted to the provided role, it is assumed that validation to insure that the role actually exists has been performed outside of this method.

      NOTE: this method does not do any permission checks to see if the user can perform the requested operation.

      Specified by:
      create in interface WorklogManager
      Parameters:
      user - is the user who is trying to create the worklog, this can be different than the user identified by Worklog.getAuthor().
      worklog - the object used to provide the parameters that will be used to create the worklog.
      newEstimate - will be used to set the time estimate for this worklog.
      dispatchEvent - if true then an event of type EventType.ISSUE_WORKLOGGED_ID will be dispatched and any notifications listening for that event will be triggered. If false no event will be dispatched.
      Returns:
      a Worklog object that represents the newly created worklog.
    • update

      public Worklog update(ApplicationUser user, Worklog worklog, Long newEstimate, boolean dispatchEvent)
      Description copied from interface: WorklogManager
      Updates the provided Worklog. This method will adjust the issue's remaining estimate to be the new value which has been passed to this method, the old remaining estimate value will be lost.

      If you have provided a groupLevel then the worklog visibility will be restricted to the provided group, it is assumed that validation to insure that the group actually exists has been performed outside of this method. If you have provided a roleLevelId then the worklog visibility will be restricted to the provided role, it is assumed that validation to insure that the role actually exists has been performed outside of this method.

      NOTE: this method does not do any permission checks to see if the user can perform the requested operation.

      Specified by:
      update in interface WorklogManager
      Parameters:
      user - the user who is performing the action
      worklog - the value to update in the database
      newEstimate - the value to set the Issue's remainig estimate. If null the value will be left alone.
      dispatchEvent - if true then an event of type EventType.ISSUE_WORKLOG_UPDATED_ID will be dispatched and any notifications listening for that event will be triggered. If false no event will be dispatched.
      Returns:
      the updated worklog
    • getById

      public Worklog getById(Long id)
      Description copied from interface: WorklogManager
      Used to get a worklog by its id.
      Specified by:
      getById in interface WorklogManager
      Parameters:
      id - uniquely identifies the worklog
      Returns:
      returns the worklog for the passed in id, null if not found.
    • getByIssue

      public List<Worklog> getByIssue(Issue issue)
      Description copied from interface: WorklogManager
      Returns all child worklogs of a specified issue
      Specified by:
      getByIssue in interface WorklogManager
      Parameters:
      issue - the specified parent issue (not null)
      Returns:
      a List of Worklogs, ordered by creation date. An empty List will be returned if none are found
    • getByIssue

      public PagedList<Worklog> getByIssue(Issue issue, int pageSize)
      Description copied from interface: WorklogManager
      Returns all child worklogs of a specified issue, in a PagedList
      Specified by:
      getByIssue in interface WorklogManager
      Parameters:
      issue - the specified parent issue (not null)
      Returns:
      a List of Worklogs, ordered by creation date. An empty List will be returned if none are found
    • swapWorklogGroupRestriction

      public int swapWorklogGroupRestriction(String groupName, String swapGroup)
      Description copied from interface: WorklogManager
      Updates Worklog's such that worklogs 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:
      swapWorklogGroupRestriction in interface WorklogManager
      Parameters:
      groupName - identifies the group the worklogs are restricted by, this must not be null.
      swapGroup - identifies the group the worklogs will be changed to be restricted by, this must not be null.
      Returns:
      tbe number of worklogs affected by the update.
    • getCountForWorklogsRestrictedByGroup

      public long getCountForWorklogsRestrictedByGroup(String groupName)
      Description copied from interface: WorklogManager
      Returns the count of all Worklog's that have a visibility restriction of the provided group.
      Specified by:
      getCountForWorklogsRestrictedByGroup in interface WorklogManager
      Parameters:
      groupName - identifies the group the worklogs are restricted by, this must not be null.
      Returns:
      the count of restriced groups
    • getCountForWorklogsRestrictedByRole

      public long getCountForWorklogsRestrictedByRole(Long roleId)
      Description copied from interface: WorklogManager
      Returns the count of all Worklog's that have a visibility restriction of the provided role.
      Specified by:
      getCountForWorklogsRestrictedByRole in interface WorklogManager
      Parameters:
      roleId - identifies the role the worklogs are restricted by, this must not be null.
      Returns:
      the count of restricted worklogs
    • swapWorklogRoleRestriction

      public int swapWorklogRoleRestriction(Long roleId, Long swapRoleId)
      Description copied from interface: WorklogManager
      Updates Worklog's such that worklogs that have a visibility restriction of the provided role will be changed to have a visibility restriction of a role with the provided swapRoleId.

      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:
      swapWorklogRoleRestriction in interface WorklogManager
      Parameters:
      roleId - identifies the role the worklogs are restricted by, this must not be null.
      swapRoleId - identifies the role the worklogs will be changed to be restricted by, this must not be null.
      Returns:
      tbe number of worklogs affected by the update.
    • getProjectRole

      public ProjectRole getProjectRole(Long projectRoleId)
      Description copied from interface: WorklogManager
      This is a convenience method to allow us to easily get a ProjectRole. This is being used by the CommentImpl to get a ProjectRole.

      NOTE: If you are trying to retrieve a ProjectRole then you should be using the ProjectRoleManager.

      Specified by:
      getProjectRole in interface WorklogManager
      Parameters:
      projectRoleId - the id to the ProjectRole object you would like returned.
      Returns:
      will return a ProjectRole based on the passed in projectRoleId.
    • getWorklogsUpdatedSince

      public List<Worklog> getWorklogsUpdatedSince(Long sinceInMilliseconds)
      Description copied from interface: WorklogManager
      Returns WorklogManager.WORKLOG_UPDATE_DATA_PAGE_SIZE of worklogs, which were updated or created after (inclusive) provided time in milliseconds. Returned worklogs are ordered by the update time.
      Specified by:
      getWorklogsUpdatedSince in interface WorklogManager
      Parameters:
      sinceInMilliseconds - the time in unix timestamp format. since which the modified worklogs will be returned.
      Returns:
      worklogs updated since provided time.
    • getWorklogsDeletedSince

      public List<DeletedWorklog> getWorklogsDeletedSince(Long sinceInMilliseconds)
      Description copied from interface: WorklogManager
      Returns WorklogManager.WORKLOG_UPDATE_DATA_PAGE_SIZE of worklog ids and removal dates, which were removed after (inclusive) provided time in milliseconds.
      Specified by:
      getWorklogsDeletedSince in interface WorklogManager
      Parameters:
      sinceInMilliseconds - the time in unix timestamp format.
      Returns:
      ids and removal dates of worklogs which were deleted since provided time.
    • getWorklogsForIds

      public Set<Worklog> getWorklogsForIds(Set<Long> idsOfWorklogs)
      Description copied from interface: WorklogManager
      Returns a set of worklogs for provided ids. This method expects the size of to be less than WorklogManager.WORKLOG_UPDATE_DATA_PAGE_SIZE.
      Specified by:
      getWorklogsForIds in interface WorklogManager
      Parameters:
      idsOfWorklogs - set of worklog ids.
      Returns:
      a list of worklogs for provided ids.
    • deleteWorklogsForIssue

      public void deleteWorklogsForIssue(Issue issue)
      Description copied from interface: WorklogManager
      Removes all worklogs which are associated with a given issue. This method will publish a WorklogDeletedEvent for each worklog deleted.
      Specified by:
      deleteWorklogsForIssue in interface WorklogManager
      Parameters:
      issue - issue for which worklogs will be removed.
    • 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.