# Interface IReconcilingStrategy

All Known Implementing Classes:
  `SpellingReconcileStrategy`

public interface IReconcilingStrategy
A reconciling strategy is used by an reconciler to reconcile a model based on text of a particular content type. It provides methods for incremental as well as non-incremental reconciling.

If a reconcile strategy consists of several steps between which model transformation is desired the each step should implement `IReconcileStep`.

In order to provide backward compatibility for clients of `IReconcilingStrategy`, extension interfaces are used to provide a means of evolution. The following extension interfaces exist:

- `IReconcilingStrategyExtension` since version 2.0 introducing the following functions:
  - usage of a progress monitor
  - initial reconciling step: if a reconciler runs as periodic activity in the background, this methods offers the reconciler a chance for initializing its strategies and achieving a reconciled state before the periodic activity starts.

This interface must be implemented by clients. Implementers should be registered with a reconciler in order get involved in the reconciling process.

## Method Summary

Modifier and Type
Method
Description
`void`
`reconcile(IRegion partition)`
Activates non-incremental reconciling.
`void`
`reconcile(DirtyRegion dirtyRegion, IRegion subRegion)`
Activates incremental reconciling of the specified dirty region.
`void`
`setDocument(IDocument document)`
Tells this reconciling strategy on which document it will work.

## Method Details

### setDocument

void setDocument(IDocument document)
Tells this reconciling strategy on which document it will work. This method will be called before any other method and can be called multiple times. The regions passed to the other methods always refer to the most recent document passed into this method.

Parameters:
  `document` - the document on which this strategy will work

### reconcile

void reconcile(DirtyRegion dirtyRegion, IRegion subRegion)
Activates incremental reconciling of the specified dirty region. As a dirty region might span multiple content types, the segment of the dirty region which should be investigated is also provided to this reconciling strategy. The given regions refer to the document passed into the most recent call of `setDocument(IDocument)`.

Parameters:
  `dirtyRegion` - the document region which has been changed
  `subRegion` - the sub region in the dirty region which should be reconciled

### reconcile

void reconcile(IRegion partition)
Activates non-incremental reconciling. The reconciling strategy is just told that there are changes and that it should reconcile the given partition of the document most recently passed into `setDocument(IDocument)`.

Parameters:
  `partition` - the document partition to be reconciled