Class BaseItemMerger<T extends Item<?,?>>
java.lang.Object
com.evolveum.midpoint.schema.merger.BaseItemMerger<T>
- All Implemented Interfaces:
ItemMerger
- Direct Known Subclasses:
AdminGuiConfigurationMerger
,AssignmentMerger
,GenericItemMerger
,LimitationsMerger
,ObjectTypeDefinitionMerger
Provides common functionality for the majority for (non-trivial) item mergers.
-
Field Summary
Modifier and TypeFieldDescriptionprotected final @Nullable OriginMarker
Marks any values inherited from "source" to "target" with appropriate (presumably source-related) origin.static final @NotNull ParameterizedEquivalenceStrategy
We ignore value metadata when comparing (because inherited values do have them) -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected <C extends Containerable>
CcreateMarkedClone
(C sourceValue) void
merge
(@NotNull ItemName itemName, @NotNull PrismContainerValue<?> targetParent, @NotNull PrismContainerValue<?> sourceParent) Merges all data about specific item (named `itemName`) from `source` container value to `target` one, according to (its own) strategy.protected abstract void
mergeInternal
(T target, T source)
-
Field Details
-
VALUE_COMPARISON_STRATEGY
We ignore value metadata when comparing (because inherited values do have them) -
originMarker
Marks any values inherited from "source" to "target" with appropriate (presumably source-related) origin.
-
-
Constructor Details
-
BaseItemMerger
-
-
Method Details
-
merge
public void merge(@NotNull @NotNull ItemName itemName, @NotNull @NotNull PrismContainerValue<?> targetParent, @NotNull @NotNull PrismContainerValue<?> sourceParent) throws ConfigurationException, SchemaException Description copied from interface:ItemMerger
Merges all data about specific item (named `itemName`) from `source` container value to `target` one, according to (its own) strategy. So, `source` is not modified; the `target` is. The implementation is responsible for setting origin information on all prism values copied from `source` to `target`.- Specified by:
merge
in interfaceItemMerger
- Throws:
ConfigurationException
SchemaException
-
createMarkedClone
- Throws:
SchemaException
-
mergeInternal
protected abstract void mergeInternal(@NotNull T target, @NotNull T source) throws ConfigurationException, SchemaException
-