Class DefaultWorklogService
- All Implemented Interfaces:
WorklogService
-
Constructor Summary
ConstructorsConstructorDescriptionDefaultWorklogService
(WorklogManager worklogManager, PermissionManager permissionManager, VisibilityValidator visibilityValidator, ProjectRoleManager projectRoleManager, IssueManager issueManager, TimeTrackingConfiguration timeTrackingConfiguration, JiraDurationUtils jiraDurationUtils, GroupManager groupManager) -
Method Summary
Modifier and TypeMethodDescriptionprotected Worklog
create
(JiraServiceContext jiraServiceContext, WorklogResult worklogResult, Long newEstimate, boolean dispatchEvent) createAndAutoAdjustRemainingEstimate
(JiraServiceContext jiraServiceContext, WorklogResult worklogResult, boolean dispatchEvent) createAndRetainRemainingEstimate
(JiraServiceContext jiraServiceContext, WorklogResult worklogResult, boolean dispatchEvent) createWithManuallyAdjustedEstimate
(JiraServiceContext jiraServiceContext, WorklogAdjustmentAmountResult worklogResult, boolean dispatchEvent) createWithNewRemainingEstimate
(JiraServiceContext jiraServiceContext, WorklogNewEstimateResult worklogResult, boolean dispatchEvent) protected boolean
delete
(JiraServiceContext jiraServiceContext, WorklogResult worklogResult, Long newEstimate, boolean dispatchEvent) boolean
deleteAndAutoAdjustRemainingEstimate
(JiraServiceContext jiraServiceContext, WorklogResult worklogResult, boolean dispatchEvent) Deletes the specifiedWorklog
.boolean
deleteAndRetainRemainingEstimate
(JiraServiceContext jiraServiceContext, WorklogResult worklogResult, boolean dispatchEvent) Deletes the specifiedWorklog
.boolean
deleteWithManuallyAdjustedEstimate
(JiraServiceContext jiraServiceContext, WorklogAdjustmentAmountResult worklogResult, boolean dispatchEvent) Deletes the specifiedWorklog
.boolean
deleteWithNewRemainingEstimate
(JiraServiceContext jiraServiceContext, WorklogNewEstimateResult worklogNewEstimate, boolean dispatchEvent) Deletes the specifiedWorklog
.protected Long
getAutoAdjustNewEstimateOnUpdate
(Issue issue, Long newTimeSpent, Long originalTimeSpent) getById
(JiraServiceContext jiraServiceContext, Long id) Used to get a worklog by its id.getByIssue
(JiraServiceContext jiraServiceContext, Issue issue) Returns all child worklogs of a specified issue.getByIssueVisibleToUser
(JiraServiceContext jiraServiceContext, Issue issue) Returns all child worklogs of a specified issue that the provided user has permission to see.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.getByIssueVisibleToUser
(CommentSearchParameters parameters) Returns child worklogs filtered accordingCommentSearchParameters
to parameters.protected long
getDurationForFormattedString
(String timeSpent, JiraServiceContext jiraServiceContext) getWorklogsDeletedSince
(ApplicationUser user, Long sinceInMilliseconds) Returns a list of ids of worklogs which were removed, since the time provided in .getWorklogsForIds
(JiraServiceContext jiraServiceContext, Set<Long> idsOfWorklogs) Returns a set of worklogs for provided ids.getWorklogsUpdatedSince
(ApplicationUser user, Long sinceInMilliseconds) Returns a list of worklogs visible by the calling user, which were modified since time provided in .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) boolean
hasPermissionToCreate
(JiraServiceContext jiraServiceContext, Issue issue, boolean isEditableCheckRequired) Determines if the user has thePermissions.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.protected boolean
hasViewPermission
(ApplicationUser user, Issue issue) protected Long
increaseEstimate
(Issue issue, Long amount) boolean
Will return true if the issue is in an editable workflow state.protected boolean
isSameAuthor
(ApplicationUser user, Worklog worklog) boolean
Will return true ifAPKeys.JIRA_OPTION_TIMETRACKING
is true, false otherwise.protected boolean
isUserInGroup
(ApplicationUser user, String groupLevel) protected boolean
isUserInRole
(Long roleLevel, ApplicationUser user, Issue issue) protected boolean
isValidAdjustmentAmount
(JiraServiceContext jiraServiceContext, String adjustmentAmount) Checks if the given String is a valid amount of time to change an estimate by.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.protected boolean
isValidNewEstimate
(JiraServiceContext jiraServiceContext, String newEstimate) protected boolean
isValidNewEstimate
(JiraServiceContext jiraServiceContext, String newEstimate, String errorFieldPrefix) 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) updateAndAutoAdjustRemainingEstimate
(JiraServiceContext jiraServiceContext, WorklogResult worklogResult, boolean dispatchEvent) Updates the providedWorklog
.updateAndRetainRemainingEstimate
(JiraServiceContext jiraServiceContext, WorklogResult worklogResult, boolean dispatchEvent) Updates the providedWorklog
.updateWithNewRemainingEstimate
(JiraServiceContext jiraServiceContext, WorklogNewEstimateResult worklogResult, boolean dispatchEvent) Updates the providedWorklog
.validateCreate
(JiraServiceContext jiraServiceContext, WorklogInputParameters params) Determines whether worklogs are enabled in JIRA and if the user has the required permissions as determined by callingWorklogService.hasPermissionToCreate(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.Issue, boolean)
to create a worklog for this issue.validateCreateWithManuallyAdjustedEstimate
(JiraServiceContext jiraServiceContext, WorklogAdjustmentAmountInputParameters params) Determines whether worklogs are enabled in JIRA and if the user has the required permission as determined by callingWorklogService.hasPermissionToCreate(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.Issue, boolean)
to create a worklog for this issue.validateCreateWithNewEstimate
(JiraServiceContext jiraServiceContext, WorklogNewEstimateInputParameters params) Determines whether worklogs are enabled in JIRA and if the user has the required permission as determined by callingWorklogService.hasPermissionToCreate(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.Issue, boolean)
to create a worklog for this issue.validateDelete
(JiraServiceContext jiraServiceContext, Long worklogId) Determines whether worklogs are enabled in JIRA and if the user has the required permissions as determined by callingWorklogService.hasPermissionToDelete(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.worklog.Worklog)
to delete a worklog for this issue.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 callingWorklogService.hasPermissionToDelete(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.worklog.Worklog)
to delete a worklog for this issue.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 callingWorklogService.hasPermissionToDelete(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.worklog.Worklog)
to delete a worklog for this issue.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) validateUpdate
(JiraServiceContext jiraServiceContext, WorklogInputParameters params) Determines whether worklogs are enabled in JIRA and if the user has the required permissions as determined by callingWorklogService.hasPermissionToUpdate(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.worklog.Worklog)
to update a worklog for this issue.validateUpdateWithNewEstimate
(JiraServiceContext jiraServiceContext, WorklogNewEstimateInputParameters params) Determines whether worklogs are enabled in JIRA and if the user has the required permissions as determined by callingWorklogService.hasPermissionToUpdate(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.worklog.Worklog)
to update a worklog for this issue.
-
Constructor Details
-
DefaultWorklogService
public DefaultWorklogService(WorklogManager worklogManager, PermissionManager permissionManager, VisibilityValidator visibilityValidator, ProjectRoleManager projectRoleManager, IssueManager issueManager, TimeTrackingConfiguration timeTrackingConfiguration, JiraDurationUtils jiraDurationUtils, GroupManager groupManager)
-
-
Method Details
-
validateDelete
Description copied from interface:WorklogService
Determines whether worklogs are enabled in JIRA and if the user has the required permissions as determined by callingWorklogService.hasPermissionToDelete(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.worklog.Worklog)
to delete a worklog for this issue.- Specified by:
validateDelete
in interfaceWorklogService
- Parameters:
jiraServiceContext
- containing the user who wishes to create a worklog and the errorCollection that will contain any errors in calling the methodworklogId
- 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
-
validateDeleteWithNewEstimate
public WorklogNewEstimateResult validateDeleteWithNewEstimate(JiraServiceContext jiraServiceContext, Long worklogId, String newEstimate) Description copied from interface:WorklogService
Determines whether worklogs are enabled in JIRA and if the user has the required permissions as determined by callingWorklogService.hasPermissionToDelete(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.worklog.Worklog)
to delete a worklog for this issue.- Specified by:
validateDeleteWithNewEstimate
in interfaceWorklogService
- Parameters:
jiraServiceContext
- containing the user who wishes to create a worklog and the errorCollection that will contain any errors in calling the methodworklogId
- identifies the worklog that the delete validation will occur againstnewEstimate
- 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
-
validateDeleteWithManuallyAdjustedEstimate
public WorklogAdjustmentAmountResult validateDeleteWithManuallyAdjustedEstimate(JiraServiceContext jiraServiceContext, Long worklogId, String adjustmentAmount) Description copied from interface:WorklogService
Determines whether worklogs are enabled in JIRA and if the user has the required permissions as determined by callingWorklogService.hasPermissionToDelete(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.worklog.Worklog)
to delete a worklog for this issue.- Specified by:
validateDeleteWithManuallyAdjustedEstimate
in interfaceWorklogService
- Parameters:
jiraServiceContext
- containing the user who wishes to create a worklog and the errorCollection that will contain any errors in calling the methodworklogId
- identifies the worklog that the delete validation will occur againstadjustmentAmount
- 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
-
deleteWithNewRemainingEstimate
public boolean deleteWithNewRemainingEstimate(JiraServiceContext jiraServiceContext, WorklogNewEstimateResult worklogNewEstimate, boolean dispatchEvent) Description copied from interface:WorklogService
Deletes the specifiedWorklog
. 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.- Specified by:
deleteWithNewRemainingEstimate
in interfaceWorklogService
- Parameters:
jiraServiceContext
- containing theUser
who wishes to update the supplied worklog and theErrorCollection
that will contain any errors encountered in calling the methodworklogNewEstimate
- 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
-
deleteWithManuallyAdjustedEstimate
public boolean deleteWithManuallyAdjustedEstimate(JiraServiceContext jiraServiceContext, WorklogAdjustmentAmountResult worklogResult, boolean dispatchEvent) Description copied from interface:WorklogService
Deletes the specifiedWorklog
. 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.- Specified by:
deleteWithManuallyAdjustedEstimate
in interfaceWorklogService
- Parameters:
jiraServiceContext
- containing theUser
who wishes to update the supplied worklog and theErrorCollection
that will contain any errors encountered in calling the methodworklogResult
- 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
-
deleteAndRetainRemainingEstimate
public boolean deleteAndRetainRemainingEstimate(JiraServiceContext jiraServiceContext, WorklogResult worklogResult, boolean dispatchEvent) Description copied from interface:WorklogService
Deletes the specifiedWorklog
. This method will make no adjustment to the issues remaining estimate.- Specified by:
deleteAndRetainRemainingEstimate
in interfaceWorklogService
- Parameters:
jiraServiceContext
- containing theUser
who wishes to update the supplied worklog and theErrorCollection
that will contain any errors encountered in calling the methodworklogResult
- result of the call toWorklogService.validateDelete(com.atlassian.jira.bc.JiraServiceContext, Long)
which contains theWorklog
to deletedispatchEvent
- whether or not you want to have an event dispatched on Worklog delete- Returns:
- true if the
Worklog
was successfully deleted, false otherwise
-
deleteAndAutoAdjustRemainingEstimate
public boolean deleteAndAutoAdjustRemainingEstimate(JiraServiceContext jiraServiceContext, WorklogResult worklogResult, boolean dispatchEvent) Description copied from interface:WorklogService
Deletes the specifiedWorklog
. This method will auto-adjust the issues remaining estimate by adding the time spent on the deleted worklog.- Specified by:
deleteAndAutoAdjustRemainingEstimate
in interfaceWorklogService
- Parameters:
jiraServiceContext
- containing theUser
who wishes to update the supplied worklog and theErrorCollection
that will contain any errors encountered in calling the methodworklogResult
- result of the call toWorklogService.validateDelete(com.atlassian.jira.bc.JiraServiceContext, Long)
which contains theWorklog
to deletedispatchEvent
- whether or not you want to have an event dispatched on Worklog delete- Returns:
- true if the
Worklog
was successfully deleted, false otherwise
-
validateUpdate
public WorklogResult validateUpdate(JiraServiceContext jiraServiceContext, WorklogInputParameters params) Description copied from interface:WorklogService
Determines whether worklogs are enabled in JIRA and if the user has the required permissions as determined by callingWorklogService.hasPermissionToUpdate(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.worklog.Worklog)
to update a worklog for this issue.- Specified by:
validateUpdate
in interfaceWorklogService
- Parameters:
jiraServiceContext
- containing the user who wishes to create a worklog and the errorCollection that will contain any errors in calling the methodparams
- 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
-
validateUpdateWithNewEstimate
public WorklogNewEstimateResult validateUpdateWithNewEstimate(JiraServiceContext jiraServiceContext, WorklogNewEstimateInputParameters params) Description copied from interface:WorklogService
Determines whether worklogs are enabled in JIRA and if the user has the required permissions as determined by callingWorklogService.hasPermissionToUpdate(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.worklog.Worklog)
to update a worklog for this issue.- Specified by:
validateUpdateWithNewEstimate
in interfaceWorklogService
- Parameters:
jiraServiceContext
- containing the user who wishes to create a worklog and the errorCollection that will contain any errors in calling the methodparams
- 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
-
updateWithNewRemainingEstimate
public Worklog updateWithNewRemainingEstimate(JiraServiceContext jiraServiceContext, WorklogNewEstimateResult worklogResult, boolean dispatchEvent) Description copied from interface:WorklogService
Updates the providedWorklog
. 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.- Specified by:
updateWithNewRemainingEstimate
in interfaceWorklogService
- Parameters:
jiraServiceContext
- containing theUser
who wishes to create a worklog and theErrorCollection
that will contain any errors in calling the methodworklogResult
- 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.
-
updateAndRetainRemainingEstimate
public Worklog updateAndRetainRemainingEstimate(JiraServiceContext jiraServiceContext, WorklogResult worklogResult, boolean dispatchEvent) Description copied from interface:WorklogService
Updates the providedWorklog
. This method will make no adjustment to the issues remaining estimate.- Specified by:
updateAndRetainRemainingEstimate
in interfaceWorklogService
- Parameters:
jiraServiceContext
- containing theUser
who wishes to update the supplied worklog and theErrorCollection
that will contain any errors encountered in calling the methodworklogResult
- result of the call toWorklogService.validateUpdate(com.atlassian.jira.bc.JiraServiceContext, WorklogInputParameters)
which contains theWorklog
to updatedispatchEvent
- 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.
-
updateAndAutoAdjustRemainingEstimate
public Worklog updateAndAutoAdjustRemainingEstimate(JiraServiceContext jiraServiceContext, WorklogResult worklogResult, boolean dispatchEvent) Description copied from interface:WorklogService
Updates the providedWorklog
. This method will auto-adjust the issues remaining estimate based on the updated value of the time spent on the work.- Specified by:
updateAndAutoAdjustRemainingEstimate
in interfaceWorklogService
- Parameters:
jiraServiceContext
- containing theUser
who wishes to update the worklog and theErrorCollection
that will contain any errors in calling the methodworklogResult
- result of the call toWorklogService.validateUpdate(com.atlassian.jira.bc.JiraServiceContext, WorklogInputParameters)
which contains theWorklog
to updatedispatchEvent
- 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.
-
delete
protected boolean delete(JiraServiceContext jiraServiceContext, WorklogResult worklogResult, Long newEstimate, boolean dispatchEvent) -
update
protected Worklog update(JiraServiceContext jiraServiceContext, WorklogResult worklogResult, Long newEstimate, boolean dispatchEvent) -
validateCreate
public WorklogResult validateCreate(JiraServiceContext jiraServiceContext, WorklogInputParameters params) Description copied from interface:WorklogService
Determines whether worklogs are enabled in JIRA and if the user has the required permissions as determined by callingWorklogService.hasPermissionToCreate(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.Issue, boolean)
to create a worklog for this issue.- Specified by:
validateCreate
in interfaceWorklogService
- Parameters:
jiraServiceContext
- containing the user who wishes to create a worklog and the errorCollection that will contain any errors in calling the methodparams
- 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
-
validateCreateWithNewEstimate
public WorklogNewEstimateResult validateCreateWithNewEstimate(JiraServiceContext jiraServiceContext, WorklogNewEstimateInputParameters params) Description copied from interface:WorklogService
Determines whether worklogs are enabled in JIRA and if the user has the required permission as determined by callingWorklogService.hasPermissionToCreate(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.Issue, boolean)
to create a worklog for this issue.- Specified by:
validateCreateWithNewEstimate
in interfaceWorklogService
- Parameters:
jiraServiceContext
- containing the user who wishes to create a worklog and the errorCollection that will contain any errors in calling the methodparams
- 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
-
validateCreateWithManuallyAdjustedEstimate
public WorklogAdjustmentAmountResult validateCreateWithManuallyAdjustedEstimate(JiraServiceContext jiraServiceContext, WorklogAdjustmentAmountInputParameters params) Description copied from interface:WorklogService
Determines whether worklogs are enabled in JIRA and if the user has the required permission as determined by callingWorklogService.hasPermissionToCreate(com.atlassian.jira.bc.JiraServiceContext, com.atlassian.jira.issue.Issue, boolean)
to create a worklog for this issue.- Specified by:
validateCreateWithManuallyAdjustedEstimate
in interfaceWorklogService
- Parameters:
jiraServiceContext
- containing the user who wishes to create a worklog and the errorCollection that will contain any errors in calling the methodparams
- 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
-
createWithNewRemainingEstimate
public Worklog createWithNewRemainingEstimate(JiraServiceContext jiraServiceContext, WorklogNewEstimateResult worklogResult, boolean dispatchEvent) Description copied from interface:WorklogService
Persists a newWorklog
on the givenIssue
. 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.- Specified by:
createWithNewRemainingEstimate
in interfaceWorklogService
- Parameters:
jiraServiceContext
- containing theUser
who wishes to create a worklog and theErrorCollection
that will contain any errors in calling the methodworklogResult
- 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.
- See Also:
-
createWithManuallyAdjustedEstimate
public Worklog createWithManuallyAdjustedEstimate(JiraServiceContext jiraServiceContext, WorklogAdjustmentAmountResult worklogResult, boolean dispatchEvent) Description copied from interface:WorklogService
Persists a newWorklog
on the givenIssue
. 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.- Specified by:
createWithManuallyAdjustedEstimate
in interfaceWorklogService
- Parameters:
jiraServiceContext
- containing theUser
who wishes to create a worklog and theErrorCollection
that will contain any errors in calling the methodworklogResult
- 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.
- See Also:
-
createAndRetainRemainingEstimate
public Worklog createAndRetainRemainingEstimate(JiraServiceContext jiraServiceContext, WorklogResult worklogResult, boolean dispatchEvent) Description copied from interface:WorklogService
Persists a newWorklog
on the givenIssue
. This method will make no adjustment to the issues remaining estimate.- Specified by:
createAndRetainRemainingEstimate
in interfaceWorklogService
- Parameters:
jiraServiceContext
- containing theUser
who wishes to create a worklog and theErrorCollection
that will contain any errors in calling the methodworklogResult
- the WorklogResult generated by the validate calldispatchEvent
- 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.
-
createAndAutoAdjustRemainingEstimate
public Worklog createAndAutoAdjustRemainingEstimate(JiraServiceContext jiraServiceContext, WorklogResult worklogResult, boolean dispatchEvent) Description copied from interface:WorklogService
Persists a newWorklog
on the givenIssue
. This method will auto-adjust the issues remaining estimate based on the value of the time spent on the work.- Specified by:
createAndAutoAdjustRemainingEstimate
in interfaceWorklogService
- Parameters:
jiraServiceContext
- containing theUser
who wishes to create a worklog and theErrorCollection
that will contain any errors in calling the methodworklogResult
- the WorklogResult generated by the validate calldispatchEvent
- 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.
-
hasPermissionToCreate
public boolean hasPermissionToCreate(JiraServiceContext jiraServiceContext, Issue issue, boolean isEditableCheckRequired) Description copied from interface:WorklogService
Determines if the user has thePermissions.WORK_ISSUE
permission, that timetracking is enabled in JIRA and that the associated issue is in an editable workflow state.- Specified by:
hasPermissionToCreate
in interfaceWorklogService
- Parameters:
jiraServiceContext
- containing theUser
who wishes to create a worklog and theErrorCollection
that will contain any errors in calling the methodissue
- the issue to add the worklog toisEditableCheckRequired
- 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
-
hasPermissionToUpdate
Description copied from interface:WorklogService
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
- The user has the
Permissions.WORKLOG_EDIT_ALL
permission; OR - The user is the
Worklog
author and has thePermissions.WORKLOG_EDIT_OWN
permission
- Specified by:
hasPermissionToUpdate
in interfaceWorklogService
- Parameters:
jiraServiceContext
- containing theUser
who wishes to update the worklog and theErrorCollection
that will contain any errors in calling the methodworklog
- theWorklog
the user wishes to update- Returns:
- true if the user has permission to update the supplied worklog, false otherwise
- The user has the
-
hasPermissionToDelete
Description copied from interface:WorklogService
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
- The user has the
Permissions.WORKLOG_DELETE_ALL
permission; OR - The user is the
Worklog
author and has thePermissions.WORKLOG_DELETE_OWN
permission
- Specified by:
hasPermissionToDelete
in interfaceWorklogService
- Parameters:
jiraServiceContext
- containing theUser
who wishes to delete the worklog and theErrorCollection
that will contain any errors in calling the methodworklog
- theWorklog
the user wishes to delete- Returns:
- true if the user has permission to delete the supplied worklog, false otherwise
- The user has the
-
getById
Description copied from interface:WorklogService
Used to get a worklog by its id.- Specified by:
getById
in interfaceWorklogService
- Parameters:
jiraServiceContext
- containing theUser
who wishes to create a worklog and theErrorCollection
that will contain any errors in calling the methodid
- uniquely identifies the worklog- Returns:
- returns the worklog for the passed in id, null if not found.
-
getByIssue
Description copied from interface:WorklogService
Returns all child worklogs of a specified issue.- Specified by:
getByIssue
in interfaceWorklogService
- Parameters:
jiraServiceContext
- containing theUser
who wishes to create a worklog and theErrorCollection
that will contain any errors in calling the methodissue
- 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
-
getByIssueVisibleToUser
Description copied from interface:WorklogService
Returns all child worklogs of a specified issue that the provided user has permission to see.- Specified by:
getByIssueVisibleToUser
in interfaceWorklogService
- Parameters:
jiraServiceContext
- containing theUser
who wishes to create a worklog and theErrorCollection
that will contain any errors in calling the methodissue
- 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
-
getByIssueVisibleToUser
Description copied from interface:WorklogService
Returns child worklogs filtered accordingCommentSearchParameters
to parameters.CommentSearchParameters
are used because they are able to handle focused items.- Specified by:
getByIssueVisibleToUser
in interfaceWorklogService
- Parameters:
parameters
- parameters for search (not null)- Returns:
- a Window of Worklogs, ordered by start date. An empty Window will be returned if none are found
-
getByIssueVisibleToUser
public PagedList<Worklog> getByIssueVisibleToUser(JiraServiceContext jiraServiceContext, Issue issue, int pageSize) Description copied from interface:WorklogService
Returns a PagedList over all all child worklogs of a specified issue that the provided user has permission to see.- Specified by:
getByIssueVisibleToUser
in interfaceWorklogService
- Parameters:
jiraServiceContext
- containing theUser
who wishes to create a worklog and theErrorCollection
that will contain any errors in calling the methodissue
- 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
-
isTimeTrackingEnabled
public boolean isTimeTrackingEnabled()Description copied from interface:WorklogService
Will return true ifAPKeys.JIRA_OPTION_TIMETRACKING
is true, false otherwise.- Specified by:
isTimeTrackingEnabled
in interfaceWorklogService
- Returns:
- true if enabled, false otherwise.
-
isIssueInEditableWorkflowState
Description copied from interface:WorklogService
Will return true if the issue is in an editable workflow state.- Specified by:
isIssueInEditableWorkflowState
in interfaceWorklogService
- Parameters:
issue
- the issue to see if it is in an editable store- Returns:
- true if editable, false otherwise
-
getWorklogsUpdatedSince
public WorklogChangedSincePage<Worklog> getWorklogsUpdatedSince(ApplicationUser user, Long sinceInMilliseconds) Description copied from interface:WorklogService
Returns a list of worklogs visible by the calling user, which were modified since time provided in . The list is limited toWorklogManager.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.- Specified by:
getWorklogsUpdatedSince
in interfaceWorklogService
- 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 .
-
getWorklogsDeletedSince
public WorklogChangedSincePage<DeletedWorklog> getWorklogsDeletedSince(ApplicationUser user, Long sinceInMilliseconds) Description copied from interface:WorklogService
Returns a list of ids of worklogs which were removed, since the time provided in . The list is limited toWorklogManager.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.- Specified by:
getWorklogsDeletedSince
in interfaceWorklogService
- 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 .
-
getWorklogsForIds
public ServiceOutcome<Set<Worklog>> getWorklogsForIds(JiraServiceContext jiraServiceContext, Set<Long> idsOfWorklogs) Description copied from interface:WorklogService
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 toWorklogManager.WORKLOG_UPDATE_DATA_PAGE_SIZE
elements, in order to get more elements, execute this method again providing ids of otherWorklog
to retrieve.- Specified by:
getWorklogsForIds
in interfaceWorklogService
- Parameters:
jiraServiceContext
- containing theUser
who wishes to create a worklog and theErrorCollection
that will contain any errors in calling the methodidsOfWorklogs
- set of ids for which worklogs will be returned.- Returns:
- a set of worklogs for provided ids.
-
validateParamsAndCreateWorklog
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) -
create
protected Worklog create(JiraServiceContext jiraServiceContext, WorklogResult worklogResult, Long newEstimate, boolean dispatchEvent) -
hasEditOwnPermission
-
hasViewPermission
-
hasEditAllPermission
-
hasDeleteOwnPermission
-
hasDeleteAllPermission
-
isSameAuthor
-
getAutoAdjustNewEstimateOnUpdate
-
reduceEstimate
-
increaseEstimate
-
isValidNewEstimate
-
isValidNewEstimate
protected boolean isValidNewEstimate(JiraServiceContext jiraServiceContext, String newEstimate, String errorFieldPrefix) -
isValidAdjustmentAmount
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
- JiraServiceContextadjustmentAmount
- String with amount of time eg "3d 4h"- Returns:
- true if this change is a valid time.
-
isValidAdjustmentAmount
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
- JiraServiceContextadjustmentAmount
- String with amount of time eg "3d 4h"errorFieldPrefix
- the prefix for the error field- Returns:
- true if this change is a valid time.
-
isValidWorklogInputFields
protected boolean isValidWorklogInputFields(JiraServiceContext jiraServiceContext, Issue issue, String timeSpent, Date startDate, String errorFieldPrefix) -
getDurationForFormattedString
protected long getDurationForFormattedString(String timeSpent, JiraServiceContext jiraServiceContext) -
isUserInGroup
-
isUserInRole
-