Package org.eclipse.emf.compare.match.eobject

# Interface IEObjectMatcher

All Known Implementing Classes:
  `IdentifierEObjectMatcher`, `ProximityEObjectMatcher`

public interface IEObjectMatcher
An `IEObjectMatcher` will be used by the default implementation of the `DefaultMatchEngine` in order to determine the mappings between three lists of EObjects coming from the left, right and origin sides.

Do take note that the match engine expects `IEObjectMatcher`s to return both matching and unmatching EObjects.

A default implementation of this interface, matching EObjects through their identifier, can also be subclassed by clients. Sett `IdentifierEObjectMatcher`.

See Also:
  - `IdentifierEObjectMatcher`

## Method Summary

Modifier and Type
Method
Description
`void`
`createMatches(Comparison comparison, Iterator<? extends EObject> leftEObjects, Iterator<? extends EObject> rightEObjects, Iterator<? extends EObject> originEObjects, Monitor monitor)`
This will be called by the match engine to determine matches between EObjects.

## Method Details

### createMatches

void createMatches(Comparison comparison, Iterator<? extends EObject> leftEObjects, Iterator<? extends EObject> rightEObjects, Iterator<? extends EObject> originEObjects, Monitor monitor)
This will be called by the match engine to determine matches between EObjects.

The implementation should update the given comparison object by adding the Matches it detect. These matches should include both matching and unmatchings EObjects (i.e. EObjects that can be matched in all three lists, EObjects that cna be matched in only two of the three lists, and EObjects that can only be found in one of the three.

Parameters:
  `comparison` - the comparison to update.
  `leftEObjects` - An iterator over the EObjects that could be found in the left side.
  `rightEObjects` - An iterator over the EObjects that could be found in the right side.
  `originEObjects` - And iterator over the EObject that may be considered ancestors of the couples that can be detected in the left and right sides.
  `monitor` - The monitor to report progress or to check for cancellation