Class BaseItemMerger<T extends Item<?,?>>
- java.lang.Object
-
- com.evolveum.midpoint.schema.merger.BaseItemMerger<T>
-
- All Implemented Interfaces:
ItemMerger
- Direct Known Subclasses:
GenericItemMerger
,LimitationsMerger
,ObjectTypeDefinitionMerger
public abstract class BaseItemMerger<T extends Item<?,?>> extends Object implements ItemMerger
Provides common functionality for the majority for (non-trivial) item mergers.
-
-
Field Summary
Fields Modifier and Type Field Description protected @Nullable OriginMarker
originMarker
Marks any values inherited from "source" to "target" with appropriate (presumably source-related) origin.static @NotNull ParameterizedEquivalenceStrategy
VALUE_COMPARISON_STRATEGY
We ignore value metadata when comparing (because inherited values do have them)
-
Constructor Summary
Constructors Modifier Constructor Description protected
BaseItemMerger(@Nullable OriginMarker originMarker)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected <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 Detail
-
VALUE_COMPARISON_STRATEGY
@NotNull public static final @NotNull ParameterizedEquivalenceStrategy VALUE_COMPARISON_STRATEGY
We ignore value metadata when comparing (because inherited values do have them)
-
originMarker
@Nullable protected final @Nullable OriginMarker originMarker
Marks any values inherited from "source" to "target" with appropriate (presumably source-related) origin.
-
-
Constructor Detail
-
BaseItemMerger
protected BaseItemMerger(@Nullable @Nullable OriginMarker originMarker)
-
-
Method Detail
-
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
protected <C extends Containerable> C createMarkedClone(C sourceValue) throws SchemaException
- Throws:
SchemaException
-
mergeInternal
protected abstract void mergeInternal(@NotNull T target, @NotNull T source) throws ConfigurationException, SchemaException
-
-