Interface PropagationIntegrator

All Known Implementing Classes:
CrudEntityHelper

public interface PropagationIntegrator
Integration component responsible for interacting with the propagation architecture outside of the standard transition flow (see WorkflowTransitionHelper). Enacts immediate propagation on a catalog discriminated entity that does not honor sandbox support. This situation can occur as the result of TrackableExtension configuration on the domain, or the omission of sandbox information in a ContextRequest included in the ContextInfo.

See PropagationManager for more information on propagation as it relates to catalog discriminated domain.
  • Method Details

    • propagateIfApplicable

      void propagateIfApplicable(@Nullable Trackable domain, @Nullable ContextInfo context, @NonNull OperationType operationType, @NonNull TrackableRepository<Trackable> repository, @Nullable String propagationId)
      Initiate a catalog propagation for the change. This is a limited use case for Trackable domain that use TrackableBehavior.CATALOG, but explicitly omit TrackableBehavior.SANDBOX. This can also apply to catalog behavior supporting domain that also supports sandbox behavior, but has explicitly omitted the sandbox identification in the ContextRequest in the ContextInfo. This is a special case, and normally propagation is automatically performed for catalog and sandbox behavior domain during WorkflowTransitionHelper.deploy(WorkflowDeployRequest).
      Parameters:
      domain - The Trackable repository domain instance that was changed
      context - context information around sandbox and author
      operationType - The type of change operation performed
      repository - The service responsible for making the state change. Usually a Repository instance.
      propagationId - The unique id identifying this propagation. Usually returned from a call to prepare(Trackable, ContextInfo, OperationType)
    • prepare

      @Nullable String prepare(@Nullable Trackable domain, @Nullable ContextInfo context, @NonNull OperationType operationType)
      Prepare a Trackable entity for propagation, if applicable. Usually involves preparing ChangeDetail instances and FieldOverride instances contained therein.
      Parameters:
      domain - The Trackable repository domain instance that was changed
      context - Context information around sandbox and author
      operationType - The type of change operation performed
      Returns:
      The propagationId, or null if not applicable