Package com.evolveum.midpoint.prism
Class DeepCloneOperation
java.lang.Object
com.evolveum.midpoint.prism.DeepCloneOperation
Represents the "deep clone" and "ultra deep clone" operations on items and complex type definitions.
 TODO description
- 
Method SummaryModifier and TypeMethodDescriptionexecute(@NotNull ComplexTypeDefinition original, @NotNull Supplier<ComplexTypeDefinition> cloneSupplier, @NotNull Consumer<ComplexTypeDefinition> cloneProcessor) Executes the deep clone operation.voidexecutePostCloneAction(ItemDefinition<?> itemClone) static @NotNull DeepCloneOperationDeep but not ultra-deep clone operation.static DeepCloneOperationoperation(boolean ultraDeep, Consumer<ItemDefinition<?>> postCloneAction) Deep OR ultra-deep clone operation, with given post clone action.static DeepCloneOperationUltra-deep clone operation.
- 
Method Details- 
notUltraDeepDeep but not ultra-deep clone operation. We will reuse already cloned definitions.
- 
ultraDeepUltra-deep clone operation.
- 
operationpublic static DeepCloneOperation operation(boolean ultraDeep, Consumer<ItemDefinition<?>> postCloneAction) Deep OR ultra-deep clone operation, with given post clone action.
- 
executepublic ComplexTypeDefinition execute(@NotNull @NotNull ComplexTypeDefinition original, @NotNull @NotNull Supplier<ComplexTypeDefinition> cloneSupplier, @NotNull @NotNull Consumer<ComplexTypeDefinition> cloneProcessor) Executes the deep clone operation.- Parameters:
- original- Definition that is to be cloned
- cloneSupplier- Creates a clone (copy) of the definition
- cloneProcessor- Does the custom processing on the clone, e.g. traversing through individual items This method manages the whole process, e.g. by checking if the definition was already cloned, etc. Note that it is clone processor responsibility to invoke- executePostCloneAction(ItemDefinition)on individual item definitions.
 
- 
executePostCloneAction
 
-