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 Detail

      • 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