Package com.evolveum.midpoint.schema.merger
package com.evolveum.midpoint.schema.merger
Supports merging of (usually) configuration beans.
For example, resource inheritance and object type inheritance is implemented here.
Other uses will be considered in the future.
== How to Use
=== Implementors
When you want to create a new merger, you need to just extend
BaseMergeOperation
and implement the merging logic. In most cases, it involves providing the appropriate root-level
ItemMerger
to the constructor:
BaseMergeOperation(com.evolveum.midpoint.prism.Containerable, com.evolveum.midpoint.prism.Containerable, GenericItemMerger)
Only in rare cases you will need to implement the merging logic yourself, like in
LimitationsMerger
or
ObjectTypeDefinitionMerger
.
Some of the mergers operate at the level of objects, for example:
- ResourceMergeOperation
(for resources)
- ObjectTemplateMergeOperation
(for object templates)
Others are at the level of containerables, like:
- CorrelatorMergeOperation
(for correlator definitions)
- SimulationDefinitionMergeOperation
(for simulation definitions)
=== Users
After instantiating appropriate BaseMergeOperation
, you just call its
BaseMergeOperation.execute()
method. Just look for the usages in midPoint code
for inspiration.
== Limitations
The architecture of this package is not finished yet. It is more-or-less an experiment for now.-
ClassDescriptionBaseMergeOperation<C extends Containerable>Implements the actual merging of two objects (
Containerable
) of the same type.Ignores the value in the source object.Does no actual data movement; just requires that the value does exist in the target object.Deprecated.