# Package org.eclipse.emf.compare.merge

Interface Summary
IBatchMerger: This interface describes the general contract of what EMF Compare expects in order to "copy all" diffs from a given Comparison or list.
IDiffRelationshipComputer: A computer to retrieve the dependent diffs, resulting merges and resulting rejections for a diff.
IMergeCriterion: Criterion for describing a merge operation.
IMergeCriterionAware: This interface is used to select mergers according to some criterion.
IMergeOptionAware: Handles a list of merge options.
IMerger: Mergers are used by EMF Compare to merge specific differences from one side to the other.
IMerger.Registry: This will hold all registered mergers.
IMerger.Registry2: Registry that can provide its mergers sorted by rank descending.
IMerger2: This adds the ability for `mergers` to define their own sub-set of "required" differences.
ResourceChangeAdapter.IResourceChangeParticipant: A participant in a Resource content change, useful to indicate whether an empty resource must actually be deleted or not, and which other resources need to be deleted/undeleted along.

Class Summary
AbstractMerger: Abstract implementation of an `IMerger`.
AdditiveConflictMerger: This specific implementation of `AbstractMerger` will be used to merge conflicts in an additive merge context.
AdditiveMergeCriterion: Merge Criterion that indicates we want to perform an 'Additive' merge.
AdditiveReferenceChangeMerger: This specific implementation of `AbstractMerger` will be used to merge reference changes in an additive merge context.
AdditiveResourceAttachmentChangeMerger: This specific implementation of `AbstractMerger` will be used to merge resource attachment changes in an additive merge context.
AttributeChangeMerger: This specific implementation of `AbstractMerger` will be used to merge attribute changes.
BatchMerger: This implementation of an `IBatchMerger` leaves some choice to the client as to what should be merged.
CachingDiffRelationshipComputer: A computer implementation to cache the relationship of diffs.
ComputeDiffsToMerge: This class computes the diffs to merge for a given diff in the correct order, taking into account the merger's indications about required and consequent diffs.
ConflictMerger: This specific implementation of `AbstractMerger` will be used to merge real conflicts.
DelegatingMerger: Wrapper of mergers that makes sure that a given `IMergeCriterion` is passed to the wrapped merger before calling its merge method, and that the former value of criterion used by the wrapped merger is restored afterwards.
DiffRelationshipComputer: A computer implementation to calculate the relationship of differences in EMF Compare.
FeatureMapChangeMerger: This specific implementation of `AbstractMerger` will be used to merge attribute changes.
IMerger.RegistryImpl: A default implementation of an `IMerger.Registry`.
PseudoConflictMerger: A simple merger for pseudo conflict.
ReferenceChangeMerger: This specific implementation of `AbstractMerger` will be used to merge reference changes.
ResourceAttachmentChangeMerger: This specific implementation of `AbstractMerger` will be used to merge resource attachment changes.
ResourceChangeAdapter: This adapter is supposed to be installed on a `Comparison`'s `ResourceSet`s and their `Resource`s to react to content changes.
ResourceLocationChangeMerger: Deprecated. `ResourceLocationChange`s have been replaced by `ResourceAttachmentChange`s of kind Move.

Exception Summary
MergeBlockedByConflictException: Exception that indicates that a merge cannot be performed because it would lead to involuntarily resolving a conflict.