public class EMFCompareEditingDomain extends Object implements ICompareEditingDomain, IDisposable
Constructor and Description |
---|
EMFCompareEditingDomain(Notifier left,
Notifier right,
Notifier ancestor,
ICompareCommandStack commandStack)
Creates a new instance with the given notifiers to be listen to when something will be changed.
|
Modifier and Type | Method and Description |
---|---|
static ICompareEditingDomain |
create(Notifier left,
Notifier right,
Notifier ancestor)
Creates a new compare editing domain on the given notifier with an appropriate
ICompareCommandStack set up on it. |
static ICompareEditingDomain |
create(Notifier left,
Notifier right,
Notifier ancestor,
CommandStack commandStack)
Equivalent to
create(left, right, ancestor, commandStack, null) . |
static ICompareEditingDomain |
create(Notifier left,
Notifier right,
Notifier ancestor,
CommandStack leftCommandStack,
CommandStack rightCommandStack)
Creates a new compare editing domain on the given notifier with an appropriate
ICompareCommandStack set up on it. |
ICompareCopyCommand |
createCopyAllNonConflictingCommand(Comparison comparison,
boolean leftToRight,
IMerger.Registry mergerRegistry,
IMergeAllNonConflictingRunnable runnable)
Creates a command that will merge all non-conflicting differences in the given direction.
|
Command |
createCopyCommand(List<? extends Diff> differences,
boolean leftToRight,
IMerger.Registry mergerRegistry)
Creates a new command that will merge the given differences in from right to left or left to right by
using the mergers defined in the given merger registry.
|
ICompareCopyCommand |
createCopyCommand(List<? extends Diff> differences,
boolean leftToRight,
IMerger.Registry mergerRegistry,
IMergeRunnable runnable)
Creates a new command that will execute the given
IMergeRunnable that is expected to merge the
given differences in from right to left or left to right by using the mergers defined in the given
merger registry. |
void |
dispose() |
ChangeRecorder |
getChangeRecorder()
Returns the associated
ChangeRecorder . |
ICompareCommandStack |
getCommandStack()
Returns the associated
ICompareCommandStack . |
public EMFCompareEditingDomain(Notifier left, Notifier right, Notifier ancestor, ICompareCommandStack commandStack)
left
- the left root notifier of the comparison (i.e. the
IComparisonScope.getLeft()
right
- the right root notifier of the comparison (i.e. the
IComparisonScope.getRight()
ancestor
- the ancestor root notifier of the comparison (i.e. the
IComparisonScope.getOrigin()
commandStack
- the command stack to be used to track execution of commands.public static ICompareEditingDomain create(Notifier left, Notifier right, Notifier ancestor)
ICompareCommandStack
set up on it.left
- the left notifier. Should not be null
.right
- the right notifier. Should not be null
.ancestor
- the ancestor notifier. May be null
.public static ICompareEditingDomain create(Notifier left, Notifier right, Notifier ancestor, CommandStack commandStack)
create(left, right, ancestor, commandStack, null)
.left
- the left notifier. Should not be null
.right
- the right notifier. Should not be null
.ancestor
- the ancestor notifier. May be null
.commandStack
- a command stack to which merge command will be delegated to.public static ICompareEditingDomain create(Notifier left, Notifier right, Notifier ancestor, CommandStack leftCommandStack, CommandStack rightCommandStack)
ICompareCommandStack
set up on it.left
- the left notifier. Should not be null
.right
- the right notifier. Should not be null
.ancestor
- the ancestor notifier. May be null
.leftCommandStack
- a command stack to which merge to left command will be delegated to.rightCommandStack
- a command stack to which merge to irght command will be delegated to.public void dispose()
dispose
in interface IDisposable
org.eclipse.emf.compare.domain.ICompareEditingDomain#dispose()
public ICompareCommandStack getCommandStack()
ICompareCommandStack
.getCommandStack
in interface ICompareEditingDomain
ICompareCommandStack
.ICompareEditingDomain.getCommandStack()
public Command createCopyCommand(List<? extends Diff> differences, boolean leftToRight, IMerger.Registry mergerRegistry)
createCopyCommand
in interface ICompareEditingDomain
differences
- the differences to merge.leftToRight
- whether the merge has to be merge from left to right or right to left.mergerRegistry
- the merger registry to query to get the appropriate mergers for each difference to be
merged.org.eclipse.emf.compare.domain.ICompareEditingDomain#createCopyCommand(org.eclipse.emf.compare.Diff,
boolean, org.eclipse.emf.compare.merge.IMerger.Registry)
public ICompareCopyCommand createCopyCommand(List<? extends Diff> differences, boolean leftToRight, IMerger.Registry mergerRegistry, IMergeRunnable runnable)
IMergeRunnable
that is expected to merge the
given differences in from right to left or left to right by using the mergers defined in the given
merger registry.createCopyCommand
in interface ICompareEditingDomain
differences
- the differences to merge.leftToRight
- whether the merge has to be merge from left to right or right to left.mergerRegistry
- the merger registry to query to get the appropriate mergers for each difference to be
merged.runnable
- the runnable that will implement the mergeorg.eclipse.emf.compare.domain.ICompareEditingDomain#createCopyCommand(java.util.List, boolean,
org.eclipse.emf.compare.merge.IMerger.Registry,
org.eclipse.emf.compare.command.ICompareCopyCommand.IMergeRunnable)
public ICompareCopyCommand createCopyAllNonConflictingCommand(Comparison comparison, boolean leftToRight, IMerger.Registry mergerRegistry, IMergeAllNonConflictingRunnable runnable)
A "non-conflicting" difference is any difference that is not in a real conflict with another and that does not, directly or indirectly, depend on the merge of a difference that is in conflict itself.
Note that only the differences originating from the "source" side of the chosen merge direction will be considered.
comparison
- The comparison which differences to merge.leftToRight
- The direction in which we should merge the differences.mergerRegistry
- The registry to query for specific mergers for each difference.runnable
- the runnable to execute for the actual merge operation.public ChangeRecorder getChangeRecorder()
ChangeRecorder
.getChangeRecorder
in interface ICompareEditingDomain
ChangeRecorder
.ICompareEditingDomain.getChangeRecorder()
Copyright (c) 2006, 2014 Obeo and others. All rights reserved.