public class

DefaultWorklogService

extends Object
implements WorklogService
java.lang.Object
   ↳ com.atlassian.jira.bc.issue.worklog.DefaultWorklogService

Class Overview

Default implementation of the WorklogService.

Summary

Public Constructors
DefaultWorklogService(WorklogManager worklogManager, PermissionManager permissionManager, VisibilityValidator visibilityValidator, ProjectRoleManager projectRoleManager, IssueManager issueManager, TimeTrackingConfiguration timeTrackingConfiguration, JiraDurationUtils jiraDurationUtils, GroupManager groupManager)
Public Methods
Worklog createAndAutoAdjustRemainingEstimate(JiraServiceContext jiraServiceContext, WorklogResult worklogResult, boolean dispatchEvent)
Persists a new Worklog on the given Issue.
Worklog createAndRetainRemainingEstimate(JiraServiceContext jiraServiceContext, WorklogResult worklogResult, boolean dispatchEvent)
Persists a new Worklog on the given Issue.
Worklog createWithManuallyAdjustedEstimate(JiraServiceContext jiraServiceContext, WorklogAdjustmentAmountResult worklogResult, boolean dispatchEvent)
Persists a new Worklog on the given Issue.
Worklog createWithNewRemainingEstimate(JiraServiceContext jiraServiceContext, WorklogNewEstimateResult worklogResult, boolean dispatchEvent)
Persists a new Worklog on the given Issue.
boolean deleteAndAutoAdjustRemainingEstimate(JiraServiceContext jiraServiceContext, WorklogResult worklogResult, boolean dispatchEvent)
Deletes the specified Worklog.
boolean deleteAndRetainRemainingEstimate(JiraServiceContext jiraServiceContext, WorklogResult worklogResult, boolean dispatchEvent)
Deletes the specified Worklog.
boolean deleteWithManuallyAdjustedEstimate(JiraServiceContext jiraServiceContext, WorklogAdjustmentAmountResult worklogResult, boolean dispatchEvent)
Deletes the specified Worklog.
boolean deleteWithNewRemainingEstimate(JiraServiceContext jiraServiceContext, WorklogNewEstimateResult worklogNewEstimate, boolean dispatchEvent)
Deletes the specified Worklog.
Worklog getById(JiraServiceContext jiraServiceContext, Long id)
Used to get a worklog by its id.
List getByIssue(JiraServiceContext jiraServiceContext, Issue issue)
Returns all child worklogs of a specified issue.
PagedList<Worklog> getByIssueVisibleToUser(JiraServiceContext jiraServiceContext, Issue issue, int pageSize)
Returns a PagedList over all all child worklogs of a specified issue that the provided user has permission to see.
List<Worklog> getByIssueVisibleToUser(JiraServiceContext jiraServiceContext, Issue issue)
Returns all child worklogs of a specified issue that the provided user has permission to see.
WorklogChangedSincePage<DeletedWorklog> getWorklogsDeletedSince(ApplicationUser user, Long sinceInMilliseconds)
Returns a list of ids of worklogs which were removed, since the time provided in .
ServiceOutcome<Set<Worklog>> getWorklogsForIds(JiraServiceContext jiraServiceContext, Set<Long> idsOfWorklogs)
Returns a set of worklogs for provided ids.
WorklogChangedSincePage<Worklog> getWorklogsUpdatedSince(ApplicationUser user, Long sinceInMilliseconds)
Returns a list of worklogs visible by the calling user, which were modified since time provided in .
boolean hasPermissionToCreate(JiraServiceContext jiraServiceContext, Issue issue, boolean isEditableCheckRequired)
Determines if the user has the WORK_ISSUE permission, that timetracking is enabled in JIRA and that the associated issue is in an editable workflow state.
boolean hasPermissionToDelete(JiraServiceContext jiraServiceContext, Worklog worklog)
Determine whether the current user has the permission to delete the supplied worklog, timetracking is enabled in JIRA and that the associated issue is in an editable workflow state.
boolean hasPermissionToUpdate(JiraServiceContext jiraServiceContext, Worklog worklog)
Determine whether the current user has the permission to update the supplied worklog, timetracking is enabled in JIRA and that the associated issue is in an editable workflow state.
boolean isIssueInEditableWorkflowState(Issue issue)
Will return true if the issue is in an editable workflow state.
boolean isTimeTrackingEnabled()
Will return true if JIRA_OPTION_TIMETRACKING is true, false otherwise.
Worklog updateAndAutoAdjustRemainingEstimate(JiraServiceContext jiraServiceContext, WorklogResult worklogResult, boolean dispatchEvent)
Updates the provided Worklog.
Worklog updateAndRetainRemainingEstimate(JiraServiceContext jiraServiceContext, WorklogResult worklogResult, boolean dispatchEvent)
Updates the provided Worklog.
Worklog updateWithNewRemainingEstimate(JiraServiceContext jiraServiceContext, WorklogNewEstimateResult worklogResult, boolean dispatchEvent)
Updates the provided Worklog.
WorklogResult validateCreate(JiraServiceContext jiraServiceContext, WorklogInputParameters params)
Determines whether worklogs are enabled in JIRA and if the user has the required permissions as determined by calling hasPermissionToCreate(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.Issue, boolean) to create a worklog for this issue.
WorklogAdjustmentAmountResult validateCreateWithManuallyAdjustedEstimate(JiraServiceContext jiraServiceContext, WorklogAdjustmentAmountInputParameters params)
Determines whether worklogs are enabled in JIRA and if the user has the required permission as determined by calling hasPermissionToCreate(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.Issue, boolean) to create a worklog for this issue.
WorklogNewEstimateResult validateCreateWithNewEstimate(JiraServiceContext jiraServiceContext, WorklogNewEstimateInputParameters params)
Determines whether worklogs are enabled in JIRA and if the user has the required permission as determined by calling hasPermissionToCreate(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.Issue, boolean) to create a worklog for this issue.
WorklogResult validateDelete(JiraServiceContext jiraServiceContext, Long worklogId)
Determines whether worklogs are enabled in JIRA and if the user has the required permissions as determined by calling hasPermissionToDelete(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.worklog.Worklog) to delete a worklog for this issue.
WorklogAdjustmentAmountResult validateDeleteWithManuallyAdjustedEstimate(JiraServiceContext jiraServiceContext, Long worklogId, String adjustmentAmount)
Determines whether worklogs are enabled in JIRA and if the user has the required permissions as determined by calling hasPermissionToDelete(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.worklog.Worklog) to delete a worklog for this issue.
WorklogNewEstimateResult validateDeleteWithNewEstimate(JiraServiceContext jiraServiceContext, Long worklogId, String newEstimate)
Determines whether worklogs are enabled in JIRA and if the user has the required permissions as determined by calling hasPermissionToDelete(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.worklog.Worklog) to delete a worklog for this issue.
WorklogResult validateUpdate(JiraServiceContext jiraServiceContext, WorklogInputParameters params)
Determines whether worklogs are enabled in JIRA and if the user has the required permissions as determined by calling hasPermissionToUpdate(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.worklog.Worklog) to update a worklog for this issue.
WorklogNewEstimateResult validateUpdateWithNewEstimate(JiraServiceContext jiraServiceContext, WorklogNewEstimateInputParameters params)
Determines whether worklogs are enabled in JIRA and if the user has the required permissions as determined by calling hasPermissionToUpdate(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.worklog.Worklog) to update a worklog for this issue.
Protected Methods
Worklog create(JiraServiceContext jiraServiceContext, WorklogResult worklogResult, Long newEstimate, boolean dispatchEvent)
boolean delete(JiraServiceContext jiraServiceContext, WorklogResult worklogResult, Long newEstimate, boolean dispatchEvent)
Long getAutoAdjustNewEstimateOnUpdate(Issue issue, Long newTimeSpent, Long originalTimeSpent)
long getDurationForFormattedString(String timeSpent, JiraServiceContext jiraServiceContext)
boolean hasDeleteAllPermission(ApplicationUser user, Issue issue)
boolean hasDeleteOwnPermission(ApplicationUser user, Worklog worklog)
boolean hasEditAllPermission(ApplicationUser user, Issue issue)
boolean hasEditOwnPermission(ApplicationUser user, Worklog worklog)
Long increaseEstimate(Issue issue, Long amount)
boolean isSameAuthor(ApplicationUser user, Worklog worklog)
boolean isUserInGroup(ApplicationUser user, String groupLevel)
boolean isUserInRole(Long roleLevel, ApplicationUser user, Issue issue)
boolean isValidAdjustmentAmount(JiraServiceContext jiraServiceContext, String adjustmentAmount, String errorFieldPrefix)
Checks if the given String is a valid amount of time to change an estimate by.
boolean isValidAdjustmentAmount(JiraServiceContext jiraServiceContext, String adjustmentAmount)
Checks if the given String is a valid amount of time to change an estimate by.
boolean isValidNewEstimate(JiraServiceContext jiraServiceContext, String newEstimate, String errorFieldPrefix)
boolean isValidNewEstimate(JiraServiceContext jiraServiceContext, String newEstimate)
boolean isValidWorklogInputFields(JiraServiceContext jiraServiceContext, Issue issue, String timeSpent, Date startDate, String errorFieldPrefix)
Long reduceEstimate(Issue issue, Long amount)
Worklog update(JiraServiceContext jiraServiceContext, WorklogResult worklogResult, Long newEstimate, boolean dispatchEvent)
Worklog validateParamsAndCreateWorklog(JiraServiceContext jiraServiceContext, Issue issue, ApplicationUser author, Visibility visibility, String timeSpent, Date startDate, Long worklogId, String comment, Date created, Date updated, ApplicationUser updateAuthor, String errorFieldPrefix)
[Expand]
Inherited Methods
From class java.lang.Object
From interface com.atlassian.jira.bc.issue.worklog.WorklogService

Public Constructors

public DefaultWorklogService (WorklogManager worklogManager, PermissionManager permissionManager, VisibilityValidator visibilityValidator, ProjectRoleManager projectRoleManager, IssueManager issueManager, TimeTrackingConfiguration timeTrackingConfiguration, JiraDurationUtils jiraDurationUtils, GroupManager groupManager)

Public Methods

public Worklog createAndAutoAdjustRemainingEstimate (JiraServiceContext jiraServiceContext, WorklogResult worklogResult, boolean dispatchEvent)

Persists a new Worklog on the given Issue. This method will auto-adjust the issues remaining estimate based on the value of the time spent on the work.

Parameters
jiraServiceContext containing the User who wishes to create a worklog and the ErrorCollection that will contain any errors in calling the method
worklogResult the WorklogResult generated by the validate call
dispatchEvent whether or not you want to have an event dispatched on Worklog creation @return the created Worklog object, or null if no object created.
Returns
  • the created Worklog object or null if no object was created.

public Worklog createAndRetainRemainingEstimate (JiraServiceContext jiraServiceContext, WorklogResult worklogResult, boolean dispatchEvent)

Persists a new Worklog on the given Issue. This method will make no adjustment to the issues remaining estimate.

Parameters
jiraServiceContext containing the User who wishes to create a worklog and the ErrorCollection that will contain any errors in calling the method
worklogResult the WorklogResult generated by the validate call
dispatchEvent whether or not you want to have an event dispatched on Worklog creation @return the created Worklog object, or null if no object created.
Returns
  • the created Worklog object or null if no object was created.

public Worklog createWithManuallyAdjustedEstimate (JiraServiceContext jiraServiceContext, WorklogAdjustmentAmountResult worklogResult, boolean dispatchEvent)

Persists a new Worklog on the given Issue. This method will adjust the issues remaining estimate by reducing by the adjustmentAmount which has been passed to this method. Before calling this method, you must call validateCreateWithManuallyAdjustedEstimate() to ensure that the creation is OK.

Parameters
jiraServiceContext containing the User who wishes to create a worklog and the ErrorCollection that will contain any errors in calling the method
worklogResult the Worklog and adjustmentAmount for the issue.
dispatchEvent whether or not you want to have an event dispatched on Worklog creation
Returns
  • the created Worklog object or null if no object was created.

public Worklog createWithNewRemainingEstimate (JiraServiceContext jiraServiceContext, WorklogNewEstimateResult worklogResult, boolean dispatchEvent)

Persists a new Worklog on the given Issue. This method will adjust the issues remaining estimate to be the new value which has been passed to this method, the old remaining estimate value will be lost.

Parameters
jiraServiceContext containing the User who wishes to create a worklog and the ErrorCollection that will contain any errors in calling the method
worklogResult the Worklog and new estimate for the issue.
dispatchEvent whether or not you want to have an event dispatched on Worklog creation
Returns
  • the created Worklog object or null if no object was created.

public boolean deleteAndAutoAdjustRemainingEstimate (JiraServiceContext jiraServiceContext, WorklogResult worklogResult, boolean dispatchEvent)

Deletes the specified Worklog. This method will auto-adjust the issues remaining estimate by adding the time spent on the deleted worklog.

Parameters
jiraServiceContext containing the User who wishes to update the supplied worklog and the ErrorCollection that will contain any errors encountered in calling the method
worklogResult result of the call to validateDelete(com.atlassian.jira.bc.JiraServiceContext, Long) which contains the Worklog to delete
dispatchEvent whether or not you want to have an event dispatched on Worklog delete
Returns
  • true if the Worklog was successfully deleted, false otherwise

public boolean deleteAndRetainRemainingEstimate (JiraServiceContext jiraServiceContext, WorklogResult worklogResult, boolean dispatchEvent)

Deletes the specified Worklog. This method will make no adjustment to the issues remaining estimate.

Parameters
jiraServiceContext containing the User who wishes to update the supplied worklog and the ErrorCollection that will contain any errors encountered in calling the method
worklogResult result of the call to validateDelete(com.atlassian.jira.bc.JiraServiceContext, Long) which contains the Worklog to delete
dispatchEvent whether or not you want to have an event dispatched on Worklog delete
Returns
  • true if the Worklog was successfully deleted, false otherwise

public boolean deleteWithManuallyAdjustedEstimate (JiraServiceContext jiraServiceContext, WorklogAdjustmentAmountResult worklogResult, boolean dispatchEvent)

Deletes the specified Worklog. This method will adjust the issues remaining estimate to be the new value which has been passed to this method, the old remaining estimate value will be lost.

Parameters
jiraServiceContext containing the User who wishes to update the supplied worklog and the ErrorCollection that will contain any errors encountered in calling the method
worklogResult the Worklog and adjustmentAmount for the issue.
dispatchEvent whether or not you want to have an event dispatched on Worklog delete @return the deleted Worklog object, or null if no object has been deleted.
Returns
  • true if the Worklog was successfully deleted, false otherwise

public boolean deleteWithNewRemainingEstimate (JiraServiceContext jiraServiceContext, WorklogNewEstimateResult worklogNewEstimate, boolean dispatchEvent)

Deletes the specified Worklog. This method will adjust the issues remaining estimate to be the new value which has been passed to this method, the old remaining estimate value will be lost.

Parameters
jiraServiceContext containing the User who wishes to update the supplied worklog and the ErrorCollection that will contain any errors encountered in calling the method
worklogNewEstimate the Worklog and new estimate for the issue.
dispatchEvent whether or not you want to have an event dispatched on Worklog delete @return the deleted Worklog object, or null if no object has been deleted.
Returns
  • true if the Worklog was successfully deleted, false otherwise

public Worklog getById (JiraServiceContext jiraServiceContext, Long id)

Used to get a worklog by its id.

Parameters
jiraServiceContext containing the User who wishes to create a worklog and the ErrorCollection that will contain any errors in calling the method
id uniquely identifies the worklog
Returns
  • returns the worklog for the passed in id, null if not found.

public List getByIssue (JiraServiceContext jiraServiceContext, Issue issue)

Returns all child worklogs of a specified issue.

Parameters
jiraServiceContext containing the User who wishes to create a worklog and the ErrorCollection that will contain any errors in calling the method
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

public PagedList<Worklog> getByIssueVisibleToUser (JiraServiceContext jiraServiceContext, Issue issue, int pageSize)

Returns a PagedList over all all child worklogs of a specified issue that the provided user has permission to see.

Parameters
jiraServiceContext containing the User who wishes to create a worklog and the ErrorCollection that will contain any errors in calling the method
issue the specified parent issue (not null)
pageSize the number of worklogs per page
Returns
  • a List of Worklogs, ordered by creation date. An empty List will be returned if none are found

public List<Worklog> getByIssueVisibleToUser (JiraServiceContext jiraServiceContext, Issue issue)

Returns all child worklogs of a specified issue that the provided user has permission to see.

Parameters
jiraServiceContext containing the User who wishes to create a worklog and the ErrorCollection that will contain any errors in calling the method
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

public WorklogChangedSincePage<DeletedWorklog> getWorklogsDeletedSince (ApplicationUser user, Long sinceInMilliseconds)

Returns a list of ids of worklogs which were removed, since the time provided in . The list is limited to WORKLOG_UPDATE_DATA_PAGE_SIZE elements, in order to get more elements, execute this method again with which is equal to removal time of the last element in the result. This won't return worklogs updated within last minute.

Parameters
user user retrieving the list of deleted worklogs since a qiven time expressed in milliseconds.
sinceInMilliseconds the time (measured as a difference between the timestamp and midnight, January 1, 1970 UTC) since which the deleted worklogs will be returned.
Returns
  • a list of ids of deleted worklogs, which were removed since the time provided in .

public ServiceOutcome<Set<Worklog>> getWorklogsForIds (JiraServiceContext jiraServiceContext, Set<Long> idsOfWorklogs)

Returns a set of worklogs for provided ids. If the calling user doesn't have permissions to get worklog for given id, the worklog won't be returned. The set is limited to WORKLOG_UPDATE_DATA_PAGE_SIZE elements, in order to get more elements, execute this method again providing ids of other Worklog to retrieve.

Parameters
jiraServiceContext containing the User who wishes to create a worklog and the ErrorCollection that will contain any errors in calling the method
idsOfWorklogs set of ids for which worklogs will be returned.
Returns
  • a set of worklogs for provided ids.

public WorklogChangedSincePage<Worklog> getWorklogsUpdatedSince (ApplicationUser user, Long sinceInMilliseconds)

Returns a list of worklogs visible by the calling user, which were modified since time provided in . The list is limited to WORKLOG_UPDATE_DATA_PAGE_SIZE elements, in order to get more elements, execute this method again with which is equal to the updated time of the last element in the result. This won't return worklogs updated within last minute.

Parameters
user user retrieving the list of modified worklogs since a qiven time expressed in miliseconds.
sinceInMilliseconds the time (measured as a difference between the timestamp and midnight, January 1, 1970 UTC) since which the modified worklogs will be returned.
Returns
  • a list of worklogs visible by the calling users, which were modified since the time provided in .

public boolean hasPermissionToCreate (JiraServiceContext jiraServiceContext, Issue issue, boolean isEditableCheckRequired)

Determines if the user has the WORK_ISSUE permission, that timetracking is enabled in JIRA and that the associated issue is in an editable workflow state.

Parameters
jiraServiceContext containing the User who wishes to create a worklog and the ErrorCollection that will contain any errors in calling the method
issue the issue to add the worklog to
isEditableCheckRequired set to true if we require the issue to be in an editable state. This should always be the case except when logging work on transition
Returns
  • true if the user has permission to create a worklog on the specified issue, false otherwise

public boolean hasPermissionToDelete (JiraServiceContext jiraServiceContext, Worklog worklog)

Determine whether the current user has the permission to delete the supplied worklog, timetracking is enabled in JIRA and that the associated issue is in an editable workflow state.

In case of errors, add error messages to the error collection within the servicecontext.

Passing in null worklog or a worklog 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.

This method will return true if the user is a member of the worklog's group/role level (if specified) AND

and false otherwise.

Parameters
jiraServiceContext containing the User who wishes to delete the worklog and the ErrorCollection that will contain any errors in calling the method
worklog the Worklog the user wishes to delete
Returns
  • true if the user has permission to delete the supplied worklog, false otherwise

public boolean hasPermissionToUpdate (JiraServiceContext jiraServiceContext, Worklog worklog)

Determine whether the current user has the permission to update the supplied worklog, timetracking is enabled in JIRA and that the associated issue is in an editable workflow state.

In case of errors, add error messages to the error collection within the servicecontext.

Passing in null worklog or a worklog 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.

This method will return true if the user is a member of the worklog's group/role level (if specified) AND

and false otherwise.

Parameters
jiraServiceContext containing the User who wishes to update the worklog and the ErrorCollection that will contain any errors in calling the method
worklog the Worklog the user wishes to update
Returns
  • true if the user has permission to update the supplied worklog, false otherwise

public boolean isIssueInEditableWorkflowState (Issue issue)

Will return true if the issue is in an editable workflow state.

Parameters
issue the issue to see if it is in an editable store
Returns
  • true if editable, false otherwise

public boolean isTimeTrackingEnabled ()

Will return true if JIRA_OPTION_TIMETRACKING is true, false otherwise.

Returns
  • true if enabled, false otherwise.

public Worklog updateAndAutoAdjustRemainingEstimate (JiraServiceContext jiraServiceContext, WorklogResult worklogResult, boolean dispatchEvent)

Updates the provided Worklog. This method will auto-adjust the issues remaining estimate based on the updated value of the time spent on the work.

Parameters
jiraServiceContext containing the User who wishes to update the worklog and the ErrorCollection that will contain any errors in calling the method
worklogResult result of the call to validateUpdate(com.atlassian.jira.bc.JiraServiceContext, WorklogInputParameters) which contains the Worklog to update
dispatchEvent whether or not you want to have an event dispatched on Worklog update
Returns
  • the update Worklog object, or null if no object has been updated.

public Worklog updateAndRetainRemainingEstimate (JiraServiceContext jiraServiceContext, WorklogResult worklogResult, boolean dispatchEvent)

Updates the provided Worklog. This method will make no adjustment to the issues remaining estimate.

Parameters
jiraServiceContext containing the User who wishes to update the supplied worklog and the ErrorCollection that will contain any errors encountered in calling the method
worklogResult result of the call to validateUpdate(com.atlassian.jira.bc.JiraServiceContext, WorklogInputParameters) which contains the Worklog to update
dispatchEvent whether or not you want to have an event dispatched on Worklog update
Returns
  • the updated Worklog object, or null if no object has been updated.

public Worklog updateWithNewRemainingEstimate (JiraServiceContext jiraServiceContext, WorklogNewEstimateResult worklogResult, boolean dispatchEvent)

Updates the provided Worklog. This method will adjust the issues remaining estimate to be the new value which has been passed to this method, the old remaining estimate value will be lost.

Parameters
jiraServiceContext containing the User who wishes to create a worklog and the ErrorCollection that will contain any errors in calling the method
worklogResult the Worklog and new estimate for the issue.
dispatchEvent whether or not you want to have an event dispatched on Worklog update @return the updated Worklog object, or null if no object has been updated.
Returns
  • the updated Worklog object, or null if no object has been updated.

public WorklogResult validateCreate (JiraServiceContext jiraServiceContext, WorklogInputParameters params)

Determines whether worklogs are enabled in JIRA and if the user has the required permissions as determined by calling hasPermissionToCreate(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.Issue, boolean) to create a worklog for this issue.

Parameters
jiraServiceContext containing the user who wishes to create a worklog and the errorCollection that will contain any errors in calling the method
params parameter object that contains all the values required to validate
Returns
  • WorklogResult which can be passed to the create methods if has permission and the data passed in is valid, null otherwise

public WorklogAdjustmentAmountResult validateCreateWithManuallyAdjustedEstimate (JiraServiceContext jiraServiceContext, WorklogAdjustmentAmountInputParameters params)

Determines whether worklogs are enabled in JIRA and if the user has the required permission as determined by calling hasPermissionToCreate(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.Issue, boolean) to create a worklog for this issue.

Parameters
jiraServiceContext containing the user who wishes to create a worklog and the errorCollection that will contain any errors in calling the method
params parameter object that contains all the values required to validate
Returns
  • WorklogAdjustmentAmountResult the Worklog of which can be passed to the create methods if has permission and the data passed in is valid, null otherwise

public WorklogNewEstimateResult validateCreateWithNewEstimate (JiraServiceContext jiraServiceContext, WorklogNewEstimateInputParameters params)

Determines whether worklogs are enabled in JIRA and if the user has the required permission as determined by calling hasPermissionToCreate(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.Issue, boolean) to create a worklog for this issue.

Parameters
jiraServiceContext containing the user who wishes to create a worklog and the errorCollection that will contain any errors in calling the method
params parameter object that contains all the values required to validate
Returns
  • WorklogNewEstimateResult the Worklog of which can be passed to the create methods if has permission and the data passed in is valid, null otherwise

public WorklogResult validateDelete (JiraServiceContext jiraServiceContext, Long worklogId)

Determines whether worklogs are enabled in JIRA and if the user has the required permissions as determined by calling hasPermissionToDelete(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.worklog.Worklog) to delete a worklog for this issue.

Parameters
jiraServiceContext containing the user who wishes to create a worklog and the errorCollection that will contain any errors in calling the method
worklogId identifies the worklog that the update validation will occur against
Returns
  • WorklogResult which can be passed to the delete methods if has permission and the data passed in is valid, null otherwise

public WorklogAdjustmentAmountResult validateDeleteWithManuallyAdjustedEstimate (JiraServiceContext jiraServiceContext, Long worklogId, String adjustmentAmount)

Determines whether worklogs are enabled in JIRA and if the user has the required permissions as determined by calling hasPermissionToDelete(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.worklog.Worklog) to delete a worklog for this issue.

Parameters
jiraServiceContext containing the user who wishes to create a worklog and the errorCollection that will contain any errors in calling the method
worklogId identifies the worklog that the delete validation will occur against
adjustmentAmount The value to increase the issues remaining estimate by.
Returns
  • Worklog which can be passed to the delete methods if has permission and the data passed in is valid, null otherwise

public WorklogNewEstimateResult validateDeleteWithNewEstimate (JiraServiceContext jiraServiceContext, Long worklogId, String newEstimate)

Determines whether worklogs are enabled in JIRA and if the user has the required permissions as determined by calling hasPermissionToDelete(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.worklog.Worklog) to delete a worklog for this issue.

Parameters
jiraServiceContext containing the user who wishes to create a worklog and the errorCollection that will contain any errors in calling the method
worklogId identifies the worklog that the delete validation will occur against
newEstimate The value to change the issues remaining estimate to.
Returns
  • Worklog which can be passed to the delete methods if has permission and the data passed in is valid, null otherwise

public WorklogResult validateUpdate (JiraServiceContext jiraServiceContext, WorklogInputParameters params)

Determines whether worklogs are enabled in JIRA and if the user has the required permissions as determined by calling hasPermissionToUpdate(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.worklog.Worklog) to update a worklog for this issue.

Parameters
jiraServiceContext containing the user who wishes to create a worklog and the errorCollection that will contain any errors in calling the method
params parameter object that contains all the values required to validate
Returns
  • WorklogResult which can be passed to the update methods if has permission and the data passed in is valid, null otherwise

public WorklogNewEstimateResult validateUpdateWithNewEstimate (JiraServiceContext jiraServiceContext, WorklogNewEstimateInputParameters params)

Determines whether worklogs are enabled in JIRA and if the user has the required permissions as determined by calling hasPermissionToUpdate(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.worklog.Worklog) to update a worklog for this issue.

Parameters
jiraServiceContext containing the user who wishes to create a worklog and the errorCollection that will contain any errors in calling the method
params parameter object that contains all the values required to validate
Returns
  • WorklogResult which can be passed to the update methods if has permission and the data passed in is valid, null otherwise

Protected Methods

protected Worklog create (JiraServiceContext jiraServiceContext, WorklogResult worklogResult, Long newEstimate, boolean dispatchEvent)

protected boolean delete (JiraServiceContext jiraServiceContext, WorklogResult worklogResult, Long newEstimate, boolean dispatchEvent)

protected Long getAutoAdjustNewEstimateOnUpdate (Issue issue, Long newTimeSpent, Long originalTimeSpent)

protected long getDurationForFormattedString (String timeSpent, JiraServiceContext jiraServiceContext)

protected boolean hasDeleteAllPermission (ApplicationUser user, Issue issue)

protected boolean hasDeleteOwnPermission (ApplicationUser user, Worklog worklog)

protected boolean hasEditAllPermission (ApplicationUser user, Issue issue)

protected boolean hasEditOwnPermission (ApplicationUser user, Worklog worklog)

protected Long increaseEstimate (Issue issue, Long amount)

protected boolean isSameAuthor (ApplicationUser user, Worklog worklog)

protected boolean isUserInGroup (ApplicationUser user, String groupLevel)

protected boolean isUserInRole (Long roleLevel, ApplicationUser user, Issue issue)

protected boolean isValidAdjustmentAmount (JiraServiceContext jiraServiceContext, String adjustmentAmount, String errorFieldPrefix)

Checks if the given String is a valid amount of time to change an estimate by.

Parameters
jiraServiceContext JiraServiceContext
adjustmentAmount String with amount of time eg "3d 4h"
errorFieldPrefix the prefix for the error field
Returns
  • true if this change is a valid time.

protected boolean isValidAdjustmentAmount (JiraServiceContext jiraServiceContext, String adjustmentAmount)

Checks if the given String is a valid amount of time to change an estimate by.

Parameters
jiraServiceContext JiraServiceContext
adjustmentAmount String with amount of time eg "3d 4h"
Returns
  • true if this change is a valid time.

protected boolean isValidNewEstimate (JiraServiceContext jiraServiceContext, String newEstimate, String errorFieldPrefix)

protected boolean isValidNewEstimate (JiraServiceContext jiraServiceContext, String newEstimate)

protected boolean isValidWorklogInputFields (JiraServiceContext jiraServiceContext, Issue issue, String timeSpent, Date startDate, String errorFieldPrefix)

protected Long reduceEstimate (Issue issue, Long amount)

protected Worklog update (JiraServiceContext jiraServiceContext, WorklogResult worklogResult, Long newEstimate, boolean dispatchEvent)

protected Worklog validateParamsAndCreateWorklog (JiraServiceContext jiraServiceContext, Issue issue, ApplicationUser author, Visibility visibility, String timeSpent, Date startDate, Long worklogId, String comment, Date created, Date updated, ApplicationUser updateAuthor, String errorFieldPrefix)