public class IssueHistoryUserKeyChangeHandler extends Object implements UserKeyChangeHandler
Modifier and Type | Field and Description |
---|---|
protected JiraAuthenticationContext |
jiraAuthenticationContext |
protected QueryDslAccessor |
queryDslAccessor |
Constructor and Description |
---|
IssueHistoryUserKeyChangeHandler(JiraAuthenticationContext jiraAuthenticationContext,
QueryDslAccessor queryDslAccessor,
DatabaseAccessor databaseAccessor,
IssueManager issueManager,
IssueIndexingService issueIndexingService,
int stepNumberHalf,
int stepNumberOtherHalf,
List<IssueHistoryInfo> infos) |
Modifier and Type | Method and Description |
---|---|
Collection<AffectedEntity> |
getAffectedEntities(UserPropertyChangeParameter userPropertyChangeParameter)
Used to display in the UI a list of entities that are affected by anonymization process, without actually performing
the operation yet.
|
protected List<Long> |
getAffectedEntitiesIds(String original,
IssueHistoryInfo foreignKeyInfo) |
protected com.querydsl.sql.SQLQuery<Long> |
getBaseQuery(String original,
IssueHistoryInfo foreignKeyInfo,
DbConnection connection) |
protected String |
getDescriptionKey() |
protected List<IssueHistoryInfo> |
getInfos() |
int |
getNumberOfTasks(UserPropertyChangeParameter userPropertyChangeParameter)
Returns number of tasks/stages to be executed as part of this handler execution.
|
protected void |
reindex(Collection<Long> changeItemIds) |
ServiceResult |
update(UserPropertyChangeParameter userPropertyChangeParameter)
Performs the update operations related to the affected entities.
|
protected long |
updateCustomField(IssueHistoryInfo info,
String original,
String target) |
protected final JiraAuthenticationContext jiraAuthenticationContext
protected final QueryDslAccessor queryDslAccessor
public IssueHistoryUserKeyChangeHandler(JiraAuthenticationContext jiraAuthenticationContext, QueryDslAccessor queryDslAccessor, DatabaseAccessor databaseAccessor, IssueManager issueManager, IssueIndexingService issueIndexingService, int stepNumberHalf, int stepNumberOtherHalf, List<IssueHistoryInfo> infos)
@Nonnull public Collection<AffectedEntity> getAffectedEntities(@Nonnull UserPropertyChangeParameter userPropertyChangeParameter)
AnonymizationHandler
This method should return results as fast as possible, as it is affecting the UI.
getAffectedEntities
in interface AnonymizationHandler<UserPropertyChangeParameter>
userPropertyChangeParameter
- Parameterprotected String getDescriptionKey()
@Nonnull public ServiceResult update(@Nonnull UserPropertyChangeParameter userPropertyChangeParameter)
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<UserPropertyChangeParameter>
userPropertyChangeParameter
- Parameterpublic int getNumberOfTasks(@Nonnull UserPropertyChangeParameter userPropertyChangeParameter)
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<UserPropertyChangeParameter>
protected List<IssueHistoryInfo> getInfos()
protected List<Long> getAffectedEntitiesIds(String original, IssueHistoryInfo foreignKeyInfo)
protected com.querydsl.sql.SQLQuery<Long> getBaseQuery(String original, IssueHistoryInfo foreignKeyInfo, DbConnection connection)
protected long updateCustomField(IssueHistoryInfo info, String original, String target)
protected void reindex(Collection<Long> changeItemIds)
Copyright © 2002-2019 Atlassian. All Rights Reserved.