- All Known Implementing Classes:
If a reconcile step has an input
model it will compute the correct model for the next step in the chain and set the next steps
input model before
reconcile gets called on that next step. After the last step has
reconciled the reconcile result
array gets returned to the previous step. Each step in the chain adapts the result to its input
model and returns it to its previous step.
Example: Assume a strategy consists of steps A, B and C. And the main model is M. The strategy will set M to be A's input model. What will happen is:
- A.reconcile: A reconciles M
- A computes the model for B => MB
- B.reconcile: B reconciles MB
- B computes the model for C => MC
- C.reconcile: C reconciles MC
- C returns result RC to step B
- B adapts the RC to MB and merges with its own results
- B returns result RB to step A
- A adapts the result to M and merges with its own results
- A returns the result to the reconcile strategy
This interface must be implemented by clients.
Method SummaryModifier and TypeMethodDescriptionReturns the progress monitor used to report progress.
booleanReturns whether this is the first reconcile step or not.
booleanReturns whether this is the last reconcile step or not.Activates non-incremental reconciling.Activates incremental reconciling of the specified dirty region.
voidTells this reconcile step on which model it will work.
voidSets the step which is in front of this step in the pipe.
voidSets the progress monitor for this reconcile step.
isLastStepboolean isLastStep()Returns whether this is the last reconcile step or not.
trueiff this is the last reconcile step
isFirstStepboolean isFirstStep()Returns whether this is the first reconcile step or not.
trueiff this is the first reconcile step
(IReconcileStep step)Sets the step which is in front of this step in the pipe.
Note: This method must be called at most once per reconcile step.
step- the previous step
RuntimeException- if called more than once
reconcileActivates 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
dirtyRegion- the document region which has been changed
subRegion- the sub region in the dirty region which should be reconciled
- an array with reconcile results
reconcileActivates 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
partition- the document partition to be reconciled
- an array with reconcile results
(IProgressMonitor monitor)Sets the progress monitor for this reconcile step.
monitor- the progress monitor to be used
getProgressMonitorIProgressMonitor getProgressMonitor()Returns the progress monitor used to report progress.
- a progress monitor or
nullif no progress monitor is available
(IReconcilableModel inputModel)Tells this reconcile step on which model 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 model passed into this method.
inputModel- the model on which this step will work