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 Summary
Modifier and TypeMethodDescriptionprepare
(Trackable domain, ContextInfo contextInfo, OperationType operationType, SlimPropagationTracking slimPropagationTracking) Prepare aTrackable
entity for propagation, if applicable.void
propagateIfApplicable
(Trackable domain, ContextInfo context, OperationType operationType, TrackableRepository<Trackable> repository, String propagationId, SlimPropagationTracking slimPropagationTracking) Initiate a catalog propagation for the change.
-
Method Details
-
propagateIfApplicable
void propagateIfApplicable(@Nullable Trackable domain, @Nullable ContextInfo context, @NonNull OperationType operationType, @NonNull TrackableRepository<Trackable> repository, @Nullable String propagationId, @Nullable SlimPropagationTracking slimPropagationTracking) Initiate a catalog propagation for the change. This is a limited use case forTrackable
domain that useTrackableBehavior.CATALOG
, but explicitly omitTrackableBehavior.SANDBOX
. This can also apply to catalog behavior supporting domain that also supports sandbox behavior, but has explicitly omitted the sandbox identification in theContextRequest
in theContextInfo
. This is a special case, and normally propagation is automatically performed for catalog and sandbox behavior domain duringWorkflowTransitionHelper.deploy(WorkflowDeployRequest)
.- Parameters:
domain
- TheTrackable
repository domain instance that was changedcontext
- context information around sandbox and authoroperationType
- The type of change operation performedrepository
- The service responsible for making the state change. Usually aRepository
instance.propagationId
- The unique id identifying this propagation. Usually returned from a call toprepare(Trackable, ContextInfo, OperationType, SlimPropagationTracking)
slimPropagationTracking
- ASlimPropagationTracking
instance with a subset of originalTracking
's information
-
prepare
@Nullable String prepare(@Nullable Trackable domain, @Nullable ContextInfo contextInfo, @NonNull OperationType operationType, @Nullable SlimPropagationTracking slimPropagationTracking) Prepare aTrackable
entity for propagation, if applicable. Usually involves preparingChangeDetail
instances andFieldOverride
instances contained therein.- Parameters:
domain
- TheTrackable
repository domain instance that was changedcontextInfo
- Context information around sandbox and authoroperationType
- The type of change operation performedslimPropagationTracking
- ASlimPropagationTracking
instance with a subset of originalTracking
's information- Returns:
- The propagationId, or null if not applicable
-