Package org.eclipse.emf.spi.cdo

# Class DefaultCDOMerger.PerFeature

java.lang.Object
org.eclipse.emf.spi.cdo.DefaultCDOMerger
org.eclipse.emf.spi.cdo.DefaultCDOMerger.PerFeature

All Implemented Interfaces:
  `CDOMerger`, `CDOMergerBaseAware`

Direct Known Subclasses:
  `DefaultCDOMerger.PerFeature.ManyValued`

Enclosing class:
  `DefaultCDOMerger`

public static class DefaultCDOMerger.PerFeature extends DefaultCDOMerger
If the meaning of this type isn't clear, there really should be more of a description here...

Author:
  Eike Stepper

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`DefaultCDOMerger.PerFeature.ManyValued`
Per-feature merger whose many-valued path performs a semantic three-way list merge.
`static class`
`DefaultCDOMerger.PerFeature.ManyValuedOld`
Deprecated.
Instantiate `DefaultCDOMerger.PerFeature.ManyValued`.

## Nested classes/interfaces inherited from class org.eclipse.emf.spi.cdo.DefaultCDOMerger

`DefaultCDOMerger.ChangedInSourceAndDetachedInTargetConflict, DefaultCDOMerger.ChangedInSourceAndTargetConflict, DefaultCDOMerger.ChangedInTargetAndDetachedInSourceConflict, DefaultCDOMerger.Conflict, DefaultCDOMerger.PerFeature, DefaultCDOMerger.ResolutionPreference`

## Nested classes/interfaces inherited from interface org.eclipse.emf.cdo.transaction.CDOMerger

`CDOMerger.ConflictException`

## Constructor Summary

Constructors
Constructor
Description
`PerFeature()`
`PerFeature(DefaultCDOMerger.ResolutionPreference resolutionPreference)`

## Method Summary

Modifier and Type
Method
Description
`protected CDOFeatureDelta`
`changedInSource(CDOFeatureDelta featureDelta)`
`protected CDOFeatureDelta`
`changedInSource(CDOFeatureDelta featureDelta, CDORevision resultBaseRevision, CDORevision targetBaseRevision, CDORevision sourceBaseRevision)`
Re-encodes a source-only feature change relative to the actual result base.
`protected Object`
`changedInSource(CDORevisionDelta delta, CDORevision resultBaseRevision, CDORevision targetBaseRevision, CDORevision sourceBaseRevision, CDORevision sourceEndRevision)`
Resolves a one-sided source change as a goal relative to the actual result base.
`protected CDOFeatureDelta`
`changedInSourceAndTarget(CDOFeatureDelta targetFeatureDelta, CDOFeatureDelta sourceFeatureDelta)`
`protected CDOFeatureDelta`
`changedInSourceAndTarget(CDOFeatureDelta targetFeatureDelta, CDOFeatureDelta sourceFeatureDelta, CDORevision ancestorRevision)`
Resolves concurrent changes of one feature with an optional full common-ancestor revision.
`protected CDOFeatureDelta`
`changedInSourceAndTarget(CDOFeatureDelta targetFeatureDelta, CDOFeatureDelta sourceFeatureDelta, CDORevision resultBaseRevision, CDORevision targetBaseRevision, CDORevision sourceBaseRevision)`
Resolves concurrent feature changes with explicit result/target/source base revisions.
`protected Object`
`changedInSourceAndTarget(CDORevisionDelta targetDelta, CDORevisionDelta sourceDelta)`
`protected Object`
`changedInSourceAndTarget(CDORevisionDelta targetDelta, CDORevisionDelta sourceDelta, CDORevision ancestorRevision)`
Resolves concurrent revision changes with an optional full common-ancestor revision.
`protected Object`
`changedInSourceAndTarget(CDORevisionDelta targetDelta, CDORevisionDelta sourceDelta, CDORevision resultBaseRevision, CDORevision targetBaseRevision, CDORevision sourceBaseRevision)`
Resolves concurrent revision changes with explicit asymmetric branch/remerge base revisions.
`protected CDOFeatureDelta`
`changedInSourceAndTargetManyValued(EStructuralFeature feature, CDOFeatureDelta targetFeatureDelta, CDOFeatureDelta sourceFeatureDelta)`
`protected CDOFeatureDelta`
`changedInSourceAndTargetSingleValued(EStructuralFeature feature, CDOFeatureDelta targetFeatureDelta, CDOFeatureDelta sourceFeatureDelta)`
`protected CDOFeatureDelta`
`changedInTarget(CDOFeatureDelta featureDelta)`
`protected CDOFeatureDelta`
`changedInTarget(CDOFeatureDelta featureDelta, CDORevision resultBaseRevision, CDORevision targetBaseRevision, CDORevision sourceBaseRevision)`
Re-encodes a target-only feature change relative to the actual result base.
`protected Object`
`changedInTarget(CDORevisionDelta delta, CDORevision resultBaseRevision, CDORevision targetBaseRevision, CDORevision sourceBaseRevision, CDORevision targetEndRevision)`
Resolves a one-sided target change as a goal relative to the actual result base.

### Methods inherited from class org.eclipse.emf.spi.cdo.DefaultCDOMerger

`addedInSource, addedInSourceAndTarget, addedInTarget, changedInSource, changedInSourceAndDetachedInTarget, changedInSourceAndDetachedInTarget, changedInTarget, changedInTargetAndDetachedInSource, changedInTargetAndDetachedInSource, detachedInSource, detachedInSourceAndTarget, detachedInTarget, getConflicts, getListOrdering, getResolutionPreference, getResult, getSourceMap, getTargetMap, merge, merge, merge, merge, merge, merge`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### PerFeature

public PerFeature()

### PerFeature

public PerFeature(DefaultCDOMerger.ResolutionPreference resolutionPreference)

Since:
  4.2

## Method Details

### changedInTarget

protected Object changedInTarget(CDORevisionDelta delta, CDORevision resultBaseRevision, CDORevision targetBaseRevision, CDORevision sourceBaseRevision, CDORevision targetEndRevision)
Description copied from class: `DefaultCDOMerger`
Resolves a one-sided target change as a goal relative to the actual result base.

The base implementation treats the selected target endpoint as the complete object-level goal. `DefaultCDOMerger.PerFeature` refines this behavior so unchanged features stay unobserved and many-valued changes retain occurrence semantics.

Overrides:
  `changedInTarget` in class `DefaultCDOMerger`

### changedInSource

protected Object changedInSource(CDORevisionDelta delta, CDORevision resultBaseRevision, CDORevision targetBaseRevision, CDORevision sourceBaseRevision, CDORevision sourceEndRevision)
Description copied from class: `DefaultCDOMerger`
Resolves a one-sided source change as a goal relative to the actual result base.

The base implementation treats the selected source endpoint as the complete object-level goal. `DefaultCDOMerger.PerFeature` refines this behavior so unchanged features stay unobserved and many-valued changes retain occurrence semantics.

Overrides:
  `changedInSource` in class `DefaultCDOMerger`

### changedInSourceAndTarget

protected Object changedInSourceAndTarget(CDORevisionDelta targetDelta, CDORevisionDelta sourceDelta)

Overrides:
  `changedInSourceAndTarget` in class `DefaultCDOMerger`

### changedInSourceAndTarget

protected Object changedInSourceAndTarget(CDORevisionDelta targetDelta, CDORevisionDelta sourceDelta, CDORevision ancestorRevision)
Description copied from class: `DefaultCDOMerger`
Resolves concurrent revision changes with an optional full common-ancestor revision. Subclasses that need only deltas retain the established two-argument hook; semantic many-valued merging overrides this overload.

Overrides:
  `changedInSourceAndTarget` in class `DefaultCDOMerger`

### changedInSourceAndTarget

protected Object changedInSourceAndTarget(CDORevisionDelta targetDelta, CDORevisionDelta sourceDelta, CDORevision resultBaseRevision, CDORevision targetBaseRevision, CDORevision sourceBaseRevision)
Description copied from class: `DefaultCDOMerger`
Resolves concurrent revision changes with explicit asymmetric branch/remerge base revisions.

Overrides:
  `changedInSourceAndTarget` in class `DefaultCDOMerger`

### changedInTarget

protected CDOFeatureDelta changedInTarget(CDOFeatureDelta featureDelta)

Returns:
  the result feature delta, or `null` to ignore the change.

### changedInSource

protected CDOFeatureDelta changedInSource(CDOFeatureDelta featureDelta)

Returns:
  the result feature delta, or `null` to ignore the change.

### changedInTarget

protected CDOFeatureDelta changedInTarget(CDOFeatureDelta featureDelta, CDORevision resultBaseRevision, CDORevision targetBaseRevision, CDORevision sourceBaseRevision)
Re-encodes a target-only feature change relative to the actual result base. Single-valued deltas are absolute and therefore already base-independent; many-valued subclasses override this hook.

Since:
  4.30

### changedInSource

protected CDOFeatureDelta changedInSource(CDOFeatureDelta featureDelta, CDORevision resultBaseRevision, CDORevision targetBaseRevision, CDORevision sourceBaseRevision)
Re-encodes a source-only feature change relative to the actual result base. Single-valued deltas are absolute and therefore already base-independent; many-valued subclasses override this hook.

Since:
  4.30

### changedInSourceAndTarget

protected CDOFeatureDelta changedInSourceAndTarget(CDOFeatureDelta targetFeatureDelta, CDOFeatureDelta sourceFeatureDelta)

Returns:
  the result feature delta, or `null` to indicate an unresolved conflict.

### changedInSourceAndTarget

protected CDOFeatureDelta changedInSourceAndTarget(CDOFeatureDelta targetFeatureDelta, CDOFeatureDelta sourceFeatureDelta, CDORevision ancestorRevision)
Resolves concurrent changes of one feature with an optional full common-ancestor revision. The default delegates to the established delta-only hook so existing extenders retain their behavior.

Since:
  4.30

### changedInSourceAndTarget

protected CDOFeatureDelta changedInSourceAndTarget(CDOFeatureDelta targetFeatureDelta, CDOFeatureDelta sourceFeatureDelta, CDORevision resultBaseRevision, CDORevision targetBaseRevision, CDORevision sourceBaseRevision)
Resolves concurrent feature changes with explicit result/target/source base revisions. The default preserves the existing common-ancestor hook for extenders that do not need asymmetric list visibility.

Since:
  4.30

### changedInSourceAndTargetManyValued

protected CDOFeatureDelta changedInSourceAndTargetManyValued(EStructuralFeature feature, CDOFeatureDelta targetFeatureDelta, CDOFeatureDelta sourceFeatureDelta)

Returns:
  the result feature delta, or `null` to indicate an unresolved conflict.

### changedInSourceAndTargetSingleValued

protected CDOFeatureDelta changedInSourceAndTargetSingleValued(EStructuralFeature feature, CDOFeatureDelta targetFeatureDelta, CDOFeatureDelta sourceFeatureDelta)

Returns:
  the result feature delta, or `null` to indicate an unresolved conflict.