Interface WorkflowMapper
-
- All Known Implementing Classes:
DefaultWorkflowMapper
public interface WorkflowMapperMaps data between original and target state for repository domain items. This is the main facility for transfer ofChangeDetailstate during promotions, deployments, rejections and reverts. SeeTrackableRepository.findPromotable(WorkflowPromoteRequest),TrackableRepository.findDeployable(WorkflowDeployRequest),TrackableRepository.findRejectable(WorkflowRejectRequest), andTrackableRepository.findRevertable(WorkflowRevertRequest)for information on how original and target items are identified. SeepromoteMap(Trackable, Trackable, WorkflowPromoteRequest),deployMap(Trackable, Trackable, WorkflowDeployRequest, String),rejectMap(Trackable, Trackable, WorkflowRejectRequest), andWorkflowTransitionHelper.revert(WorkflowRevertRequest)for information on how state is transferred.propagateMap(Trackable, Trackable, boolean, String)closes the loop during a deploy and is used to transfer state between entity versions in parent and child catalogs.- Author:
- Jeff Fischer
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description ForwardMapResponsedeployMap(Trackable original, Trackable target, WorkflowDeployRequest request, String propagationId)Transfer state (viaChangeDetailbetween an original item and the target production state.ForwardMapResponsepromoteMap(Trackable original, Trackable target, WorkflowPromoteRequest request)Transfer state (viaChangeDetailbetween an original item and a target item.TrackablepropagateMap(Trackable original, Trackable target, boolean delete, String propagationId)Transfer state (viaChangeDetailbetween an original item and a target item belonging to a parentCatalogand a child Catalog, respectively.TrackablerebaseMap(Trackable original, Trackable target, WorkflowRebaseRequest request)Update an original item withChangeDetailstate from a target that is missing in the original.RejectMapResponserejectMap(Trackable promotedState, Trackable target, WorkflowRejectRequest request)Transfer state (viaChangeDetailbetween a promoted sandbox state item to a new user state item.TrackablerevertMap(Trackable original, WorkflowRevertRequest request)Update an originalTrackingLevel.USERlevel record to represent a reverted state.
-
-
-
Method Detail
-
promoteMap
ForwardMapResponse promoteMap(Trackable original, Trackable target, WorkflowPromoteRequest request)
Transfer state (viaChangeDetailbetween an original item and a target item. If the target is null (as is the case withOperationType.CREATEoriginal items), a clone of the original is created whose target level status is set to the targetSandboxId, targetLevel and targetStage defined in the PromotionRequest param.- Parameters:
original- The item containing the changes to transfertarget- The item receiving the changes. Can be null, in which case a clone of the original is maderequest- Contains the target state information used to inform the target state- Returns:
- A response object containing information about the result of the promotion operation.
-
deployMap
ForwardMapResponse deployMap(Trackable original, Trackable target, WorkflowDeployRequest request, String propagationId)
Transfer state (viaChangeDetailbetween an original item and the target production state. If the target is null (as is the case withOperationType.CREATEoriginal items), a clone of the original is created whose target level status is set toTrackingLevel.PRODUCTION.- Parameters:
original- The item containing the changes to transfertarget- The production item receiving the changes. Can be null, in which case a clone of the original is maderequest- Contains the target state information used to inform the target statepropagationId- Demarcates one or more specificChangeDetailinstances created during the deploy as viable for propagation.- Returns:
- A response object containing information about the result of the deployment operation.
-
rejectMap
RejectMapResponse rejectMap(Trackable promotedState, Trackable target, WorkflowRejectRequest request)
Transfer state (viaChangeDetailbetween a promoted sandbox state item to a new user state item. This occurs when a promoted sandbox state item contains one or more change details related to a promotion that has been rejected, thus sending those specific changes backward. If the promoted state sandbox item contains changes from multiple promotions, then the changes for the rejected promotion are removed and the entity state is updated to reflect. Finally, those changes matching the rejected promotion are applied to a new user sandbox state entity for the change author's review.- Parameters:
promotedState- The current sandbox state of an entity that contains changes from one or more promotionstarget- The user-level item receiving the changes. Can be null, in which case a clone of the original is maderequest- The specific promotion rejection request- Returns:
- A pair containing the promoted state and the user state. The promoted state may be null if it was entirely rejected.
-
propagateMap
Trackable propagateMap(Trackable original, Trackable target, boolean delete, String propagationId)
Transfer state (viaChangeDetailbetween an original item and a target item belonging to a parentCatalogand a child Catalog, respectively. Propagation should pay attention toFieldOverrideinTracking.getFieldOverrides()and ignore colliding ChangeDetails.- Parameters:
original- The item containing the changes to transfertarget- The item receiving the changesdelete- Whether or not the propagation change is aOperationType.DELETEpropagationId- Demarcates one or more specificChangeDetailinstances created during the deploy as viable for propagation. Should be the same value passed todeployMap(Trackable, Trackable, WorkflowDeployRequest, String).- Returns:
- The resulting target state of the repository domain
-
rebaseMap
Trackable rebaseMap(Trackable original, Trackable target, WorkflowRebaseRequest request)
Update an original item withChangeDetailstate from a target that is missing in the original. Then, re-apply unpromoted changes from the original on top (possibly squashing the effect of one or more of the inherited changes from target). This is generally useful for bringing a user state up-to-date with changes in a target state. The missing changes were presumably introduced by another process (usually promotes from another user).- Parameters:
original- The less advanced item that is missing changestarget- The more advanced item that contains changes not already in the originalrequest- The specific rebase request- Returns:
- The new state for the original with the changes applied. This state still needs to be persisted in order to overwrite the current original datastore state.
-
revertMap
Trackable revertMap(Trackable original, WorkflowRevertRequest request)
Update an originalTrackingLevel.USERlevel record to represent a reverted state. This usually involves setting archive values to represent the item is no longer active.- Parameters:
original- The item that is being deactivatedrequest- The specific revert request- Returns:
- The resulting state of the archived instance
-
-