org.eclipse.emf.compare.match

## Interface IMatchEngine

All Known Implementing Classes:
  DefaultMatchEngine

    public interface IMatchEngine

This class defines the general contract of a Matching engine. We expect subclasses to have a public, no-argument default constructor for instantiation.

We generally expect that a call to `#match(IComparisonScope)` will return us every single `matches` that can be determined from the given `context`. This includes all three of :

- Elements that are present on all three sides of the comparison scope,
- Elements that are present on only two sides,
- Elements that are only present on a single side.

Clients can subclass the `default implementation` when all that is needed is to change the matching strategy.

See Also:
  `DefaultMatchEngine`

### Nested Class Summary

Nested Classes
`static interface` `IMatchEngine.Factory` Wrapper describing the given match engine.

### Method Summary

All Methods Instance Methods Abstract Methods
`Comparison` `match(IComparisonScope scope, Monitor monitor)` This is the entry point of a Comparison process.

### Method Detail

#### match

    Comparison match(IComparisonScope scope,
                     Monitor monitor)

This is the entry point of a Comparison process. It is expected to use the provided scope in order to determine all objects that need to be matched.

The returned Comparison should include both matched an unmatched objects. It is not the match engine's responsibility to determine differences between objects, only to match them together.

Parameters:
  `scope` - The comparison scope that should be used by this engine to determine the objects to match.
  `monitor` - The monitor to report progress or to check for cancellation
Returns:
  An initialized `Comparison` model with all matches determined.