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

# Interface EObjectIndex

All Known Implementing Classes:
  `ByTypeIndex`, `ProximityIndex`

public interface EObjectIndex
An EObjectIndex has for responsability to store/remove EObjects and return the closest EObject from another one (each one being registered with a different Side.

## Nested Class Summary

Nested Classes
Modifier and Type
Interface
Description
`static enum`
`EObjectIndex.Side`
An enumeration used in the API to specify sides.

## Method Summary

Modifier and Type
Method
Description
`Map<EObjectIndex.Side,EObject>`
`findClosests(Comparison inProgress, EObject eObj, EObjectIndex.Side side)`
Return the closest EObjects found in other sides than the one given.
`Iterable<EObject>`
`getValuesStillThere(EObjectIndex.Side side)`
return the list of EObjects of a given side still available in the index.
`void`
`index(EObject eObj, EObjectIndex.Side side)`
Register an Object in the index with the given side.
`void`
`remove(EObject eObj, EObjectIndex.Side side)`
Remove an object from the index.

## Method Details

### getValuesStillThere

Iterable<EObject> getValuesStillThere(EObjectIndex.Side side)
return the list of EObjects of a given side still available in the index.

Parameters:
  `side` - the side we are looking for.
Returns:
  the list of EObjects of a given side still available in the index.

### findClosests

Map<EObjectIndex.Side,EObject> findClosests(Comparison inProgress, EObject eObj, EObjectIndex.Side side)
Return the closest EObjects found in other sides than the one given.

Parameters:
  `inProgress` - the comparison currently being computed. It will not be changed directly but only queried to know if some element has already been matched or not.
  `eObj` - the base EObject used to lookup similar ones.
  `side` - the side of the passed EObject.
Returns:
  a map of Side, EObjects, returning all the found objects (and the passed one) which are the closests.

### remove

void remove(EObject eObj, EObjectIndex.Side side)
Remove an object from the index.

Parameters:
  `eObj` - object to remove.
  `side` - Side in which this object was.

### index

void index(EObject eObj, EObjectIndex.Side side)
Register an Object in the index with the given side.

Parameters:
  `eObj` - the `EObject` to register.
  `side` - the side in which it should be registered.