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
`static class` `EObjectIndex.Side` An enumeration used in the API to specify sides.

### Method Summary

All Methods Instance Methods Abstract Methods
`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 Detail

#### 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.