Package org.eclipse.emf.compare.merge
Class ConflictMerger
- java.lang.Object
-
- org.eclipse.emf.compare.merge.AbstractMerger
-
- org.eclipse.emf.compare.merge.ConflictMerger
-
- All Implemented Interfaces:
IMergeCriterionAware,IMergeOptionAware,IMerger,IMerger2
- Direct Known Subclasses:
AdditiveConflictMerger
public class ConflictMerger extends AbstractMerger
This specific implementation ofAbstractMergerwill be used to merge real conflicts.- Since:
- 3.1
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.eclipse.emf.compare.merge.IMerger
IMerger.Registry, IMerger.Registry2, IMerger.RegistryImpl
-
-
Field Summary
-
Fields inherited from class org.eclipse.emf.compare.merge.AbstractMerger
mergeOptions, SUB_DIFF_AWARE_OPTION
-
-
Constructor Summary
Constructors Constructor Description ConflictMerger()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanapply(IMergeCriterion criterion)Default implementation of apply for mergers that extends this class.voidcopyLeftToRight(Diff target, Monitor monitor)Executes the copy from left to right.voidcopyRightToLeft(Diff target, Monitor monitor)Executes the copy from right to left.Set<Diff>getDirectMergeDependencies(Diff diff, boolean rightToLeft)Retrieves the set of directly required diffs needed in order to merge the current one.Set<Diff>getDirectResultingMerges(Diff diff, boolean rightToLeft)Returns all differences that will be merged because of our merging the giventargetdifference.protected DelegatingMergergetMergerDelegate(Diff diff)Find the best merger for diff and wrap it in a delegate that will take the current merge criterion into account.booleanisMergerFor(Diff target)Check if the merger is a good candidate to merge the given difference.-
Methods inherited from class org.eclipse.emf.compare.merge.AbstractMerger
accept, addAt, copyDiff, createCopy, getDirectResultingRejections, getImpliedMerges, getLogicallyResultingMerges, getMergeOptions, getMergerDelegate, getRanking, getRegistry, isAccepting, isAdd, isInTerminalState, isSet, isUnset, mergeDiff, reject, setMergeOptions, setRanking, setRegistry
-
-
-
-
Method Detail
-
isMergerFor
public boolean isMergerFor(Diff target)
Check if the merger is a good candidate to merge the given difference.- Parameters:
target- The given target difference.- Returns:
- True if it is the good candidate, false otherwise.
- See Also:
IMerger.isMergerFor(org.eclipse.emf.compare.Diff)
-
apply
public boolean apply(IMergeCriterion criterion)
Description copied from class:AbstractMergerDefault implementation of apply for mergers that extends this class. Will acceptnullor AdditiveMergeCriterion.INSTANCE.- Specified by:
applyin interfaceIMergeCriterionAware- Overrides:
applyin classAbstractMerger- Parameters:
criterion- The merge criterion- Returns:
trueif the given criterion is null or is AdditiveMergeCriterion.INSTANCE.
-
copyLeftToRight
public void copyLeftToRight(Diff target, Monitor monitor)
Executes the copy from left to right.- Specified by:
copyLeftToRightin interfaceIMerger- Overrides:
copyLeftToRightin classAbstractMerger- Parameters:
target- The difference to handle.monitor- Monitor.- See Also:
IMerger.copyLeftToRight(org.eclipse.emf.compare.Diff, org.eclipse.emf.common.util.Monitor)
-
copyRightToLeft
public void copyRightToLeft(Diff target, Monitor monitor)
Executes the copy from right to left.- Specified by:
copyRightToLeftin interfaceIMerger- Overrides:
copyRightToLeftin classAbstractMerger- Parameters:
target- The difference to handle.monitor- Monitor.- See Also:
IMerger.copyRightToLeft(org.eclipse.emf.compare.Diff, org.eclipse.emf.common.util.Monitor)
-
getDirectMergeDependencies
public Set<Diff> getDirectMergeDependencies(Diff diff, boolean rightToLeft)
Description copied from class:AbstractMergerRetrieves the set of directly required diffs needed in order to merge the current one. This may includes the diff'srequirementsor any other diff that we need to merge before the given one.- Specified by:
getDirectMergeDependenciesin interfaceIMerger2- Overrides:
getDirectMergeDependenciesin classAbstractMerger- Parameters:
diff- The diff which direct requirements we need.rightToLeft- The direction in which we're considering a merge.- Returns:
- The set of directly required diffs in order to merge the current one.
-
getDirectResultingMerges
public Set<Diff> getDirectResultingMerges(Diff diff, boolean rightToLeft)
Description copied from class:AbstractMergerReturns all differences that will be merged because of our merging the giventargetdifference. This may include the diff'simplications, the diff'sequivalences, the diff'srefinementsor any other diff that we need to merge together with the given diff.- Specified by:
getDirectResultingMergesin interfaceIMerger2- Overrides:
getDirectResultingMergesin classAbstractMerger- Parameters:
diff- The difference we're considering merging.rightToLeft- The direction in which we're considering a merge.- Returns:
- The Set of all differences that will be merged because we've merged
target.
-
getMergerDelegate
protected DelegatingMerger getMergerDelegate(Diff diff)
Description copied from class:AbstractMergerFind the best merger for diff and wrap it in a delegate that will take the current merge criterion into account. The current merge criterion should be stored in the merger's mergeOptions map using IMergeCriterion.OPTION_MERGE_CRITERION as a key.- Overrides:
getMergerDelegatein classAbstractMerger- Parameters:
diff- The diff- Returns:
- the best merger to use for merging the diff
-
-