Interface CDOMergerBaseAware
- All Superinterfaces:
CDOMerger
- All Known Implementing Classes:
DefaultCDOMerger,DefaultCDOMerger.PerFeature,DefaultCDOMerger.PerFeature.ManyValued,DefaultCDOMerger.PerFeature.ManyValuedOld
CDOMerger with support for merge operations whose target and source change sets may have
different causal base revisions.
A base-aware merger receives separate revision providers for the target and source bases from which the respective change sets were produced, as well as a result base against which the merged change set is to be expressed. The causal providers define delta decoding, while the result provider defines the identity and coordinate system of returned goals. This is particularly important for re-merge scenarios where a revision or feature value may have been visible to one side but not to the other.
- Since:
- 4.30
- Author:
- Eike Stepper
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.eclipse.emf.cdo.transaction.CDOMerger
CDOMerger.ConflictException -
Method Summary
Modifier and TypeMethodDescriptionmerge(CDOChangeSet target, CDOChangeSet source, CDORevisionProvider targetBaseProvider, CDORevisionProvider sourceBaseProvider, CDORevisionProvider resultBaseProvider) Merges the given target and source change sets using their respective base revisions.
-
Method Details
-
merge
CDOChangeSetData merge(CDOChangeSet target, CDOChangeSet source, CDORevisionProvider targetBaseProvider, CDORevisionProvider sourceBaseProvider, CDORevisionProvider resultBaseProvider) throws CDOMerger.ConflictException Merges the given target and source change sets using their respective base revisions.targetBaseProviderandsourceBaseProviderdefine the causal base states in whose coordinate systems the target and source changes must be interpreted. They may represent different branch points.resultBaseProviderdefines the state against which the returnedCDOChangeSetDatais expressed.In particular, the absence of an object or feature value from one side's causal base does not by itself imply that the side removed it; the side may simply never have observed it. Implementations must not first rebase an endpoint snapshot to the result base if that would manufacture such a removal.
- Parameters:
target- the target change set.source- the source change set.targetBaseProvider- provides revisions from the base of the target change set.sourceBaseProvider- provides revisions from the base of the source change set.resultBaseProvider- provides revisions from the base against which the merge result is expressed.- Returns:
- the merged change set.
- Throws:
CDOMerger.ConflictException
-