public class ProjectLeadOwnershipTransferHandler extends Object implements OwnershipTransferHandler
Constructor and Description |
---|
ProjectLeadOwnershipTransferHandler(QueryDslAccessor queryDslAccessor,
ProjectManager projectManager,
JiraAuthenticationContext jiraAuthenticationContext) |
Modifier and Type | Method and Description |
---|---|
Collection<AffectedEntity> |
getAffectedEntities(OwnershipTransferParameter ownershipTransferParameter)
Used to display in the UI a list of entities that require an ownership transfer, without actually performing
the operation yet.
|
int |
getNumberOfTasks(OwnershipTransferParameter ownershipTransferParameter)
Returns number of tasks/stages to be executed as part of this handler execution.
|
ServiceResult |
update(OwnershipTransferParameter ownershipTransferParameter)
Performs the update operations related to the affected entities.
|
public ProjectLeadOwnershipTransferHandler(QueryDslAccessor queryDslAccessor, ProjectManager projectManager, JiraAuthenticationContext jiraAuthenticationContext)
@Nonnull public Collection<AffectedEntity> getAffectedEntities(@Nonnull OwnershipTransferParameter ownershipTransferParameter)
OwnershipTransferHandler
OwnershipTransferParameter.getTransferToUserKey()
during computing affected entities.
This method should return results as fast as possible, as it is affecting the UI.
getAffectedEntities
in interface AnonymizationHandler<OwnershipTransferParameter>
getAffectedEntities
in interface OwnershipTransferHandler
ownershipTransferParameter
- stores original and target user keys@Nonnull public ServiceResult update(@Nonnull OwnershipTransferParameter ownershipTransferParameter)
AnonymizationHandler
This method is executed in a background task and thus its accuracy is more important than performance.
This method should be idempotent - multiple invocations of this method should lead to the same result. In other words when method fails we can call it again and finish operation.
During execution, the implementation class will update the progress by typically calling
Context.start(object);
on the context passed in parameter
, and subsequently call
Context.Task.complete();
on the the task object to indicate task has finished.
Implementation can also call Context.setName("Name of current step")
to describe the task that is currently processed.
update
in interface AnonymizationHandler<OwnershipTransferParameter>
ownershipTransferParameter
- Parameterpublic int getNumberOfTasks(@Nonnull OwnershipTransferParameter ownershipTransferParameter)
AnonymizationHandler
AnonymizationHandler.update(Object)
.
It's used to calculate task progress. Eg. handler returning 1000 from this method is responsible to execute 1000
calls to Context.start(object);
and Context.Task.complete();
in AnonymizationHandler.update(Object)
.
Default implementation returns 1000 tasks which means that each handle by default will have 1000 steps to complete, it's up to handler to decide how progress is reported eg. complete all 1000 steps at once or in some chunks.
When visualizing progress each handler has progress bar part that has length proportional to the number returned by this method. If you know that your handler will execute swiftly you can return lower number here eg. 100 (progress bar part for this handler will be 10 times shorter than those that return 1000).
getNumberOfTasks
in interface AnonymizationHandler<OwnershipTransferParameter>
Copyright © 2002-2019 Atlassian. All Rights Reserved.