Interface AnonymizationHandler<T>
- All Known Subinterfaces:
OwnershipTransferHandler,UserAnonymizationHandler,UserKeyChangeHandler,UserNameChangeHandler
- All Known Implementing Classes:
AbstractUserKeyInWorkflowChangeHandler,ComponentLeadOwnershipTransferHandler,CustomFieldDefaultValueUserKeyChangeHandler,CustomFieldValueUserKeyChangeHandler,DelegatingChangeHandler,DisplayNameInIssueHistoryHandler,DisplayNameInMultiUserFieldHistory,DisplayNameInSingleUserFieldHistory,FilterSubscriptionAnonymizationHandler,FilterSubscriptionOwnershipTransferHandler,ForeignKeyChangeHandler,GenericUserKeyChangeHandler,IssueHistoryCustomFieldMultiUserKeyChangeHandler,IssueHistoryCustomFieldUserKeyChangeHandler,IssueHistoryUserKeyChangeHandler,MentionUsernameChangeHandler,NotificationSchemeAnonymizationHandler,OwnershipTransferHandlerWithBLValidationErrors,PermissionAnonymizationHandler,ProjectLeadOwnershipTransferHandler,ProjectRoleAnonymizationHandler,ReferenceOwnershipTransferHandler,ReferenceUserAnonymizationHandler,ReferenceUserKeyChangeHandler,ReferenceUserNameChangeHandler,UserAnonymizationHandlerWithBLValidationErrors,UserKeyChangeHandlerWithBLValidationErrors,UserKeyInDraftWorkflowChangeHandler,UserKeyInWorkflowChangeHandler,UserNameChangeHandlerWithBLValidationErrors,UserProfileAnonymizationHandler
- Since:
- 8.3
- See Also:
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptiongetAffectedEntities(T parameter) Used to collect a list of entities that will be affected by the anonymization process.default intgetNumberOfTasks(T userPropertyChangeParameter) Returns the number of tasks/stages to be executed inupdate(Object).Performs the updates required by the user anonymization.default ErrorCollectionvalidateBusinessLogic(AnonymizationParameters anonymizationParameters) Allows handlers to prevent the anonymization if it would break business logic constraints.
-
Field Details
-
DEFAULT_NUMBER_OF_TASKS
static final int DEFAULT_NUMBER_OF_TASKS- See Also:
-
-
Method Details
-
getAffectedEntities
Used to collect a list of entities that will be affected by the anonymization process.Its goal is to inform the end-user about the expected changes before they trigger the process.
- Parameters:
parameter- Data relevant to the handled anonymization step, e.g. previous and new (anonymized) username- Returns:
- a collection of affected entities
-
update
Performs the updates required by the user anonymization.Implementations must be idempotent - multiple invocations of this method should lead to the same result. In particular, when the method fails we can call it again to finish the operation.
During the execution, implementations can update their the progress by calling
Context.start(object);on the context passed inparameter, and subsequently callContext.Task.complete();on the task object to indicate task has finished.Implementations can also call
Context.setName("Name of current step")to describe the task that is currently processed.- Parameters:
parameter- Data relevant to the handled anonymization step, e.g. previous and new (anonymized) username- Returns:
- a service outcome of the update operation, containing any errors
-
getNumberOfTasks
Returns the number of tasks/stages to be executed inupdate(Object). Used for diving the progress bar between all of the handlers in proportions based on the returned numbers.Implementations are responsible to execute the corresponding number of calls to
Context.start(object);andContext.Task.complete();inupdate(Object).- Returns:
- Number of tasks/stages to be executed
- See Also:
-
validateBusinessLogic
@ExperimentalSpi default ErrorCollection validateBusinessLogic(AnonymizationParameters anonymizationParameters) Allows handlers to prevent the anonymization if it would break business logic constraints.As an example, ownership transfer handler can ensure that an entity can only be transferred to a user with a particular role, e.g. only to another admin.
The calculations done here should be as quick as possible not to degrade the user experience! Only business logic constraints should be checked here. You can assume that the passed in parameters are otherwise valid, e.g. the user to transfer the entity to exists and is not disabled.
- Returns:
- an
ErrorCollection, containing translated business logic validation errors if there were any, null otherwise - Since:
- v8.10
-