Class DelegatingChangeHandler

java.lang.Object
com.atlassian.jira.user.anonymize.handlers.key.DelegatingChangeHandler
All Implemented Interfaces:
AnonymizationHandler<UserPropertyChangeParameter>, UserKeyChangeHandler
Direct Known Subclasses:
ForeignKeyChangeHandler

public abstract class DelegatingChangeHandler extends Object implements UserKeyChangeHandler
Abstract class responsible for aggregating other handlers
Since:
v8.3
  • Field Details

  • Constructor Details

  • Method Details

    • getAffectedEntities

      @Nonnull public Collection<AffectedEntity> getAffectedEntities(@Nonnull UserPropertyChangeParameter userPropertyChangeParameter)
      Description copied from interface: AnonymizationHandler
      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.

      Specified by:
      getAffectedEntities in interface AnonymizationHandler<UserPropertyChangeParameter>
      Parameters:
      userPropertyChangeParameter - Data relevant to the handled anonymization step, e.g. previous and new (anonymized) username
      Returns:
      a collection of affected entities
    • update

      @Nonnull public ServiceResult update(@Nonnull UserPropertyChangeParameter userPropertyChangeParameter)
      Description copied from interface: AnonymizationHandler
      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 in parameter, and subsequently call Context.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.

      Specified by:
      update in interface AnonymizationHandler<UserPropertyChangeParameter>
      Parameters:
      userPropertyChangeParameter - 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

      public int getNumberOfTasks(@Nonnull UserPropertyChangeParameter userPropertyChangeParameter)
      Description copied from interface: AnonymizationHandler
      Returns the number of tasks/stages to be executed in AnonymizationHandler.update(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); and Context.Task.complete(); in AnonymizationHandler.update(Object).

      Specified by:
      getNumberOfTasks in interface AnonymizationHandler<UserPropertyChangeParameter>
      Returns:
      Number of tasks/stages to be executed
      See Also:
    • getHandlers

      @Nonnull public abstract Collection<UserKeyChangeHandler> getHandlers()