Package org.eclipse.emf.compare.merge

# Class AdditiveResourceAttachmentChangeMerger

java.lang.Object
org.eclipse.emf.compare.merge.AbstractMerger
org.eclipse.emf.compare.merge.ResourceAttachmentChangeMerger
org.eclipse.emf.compare.merge.AdditiveResourceAttachmentChangeMerger

All Implemented Interfaces:
  `IMergeCriterionAware`, `IMergeOptionAware`, `IMerger`, `IMerger2`

public class AdditiveResourceAttachmentChangeMerger extends ResourceAttachmentChangeMerger
This specific implementation of `AbstractMerger` will be used to merge resource attachment changes in an additive merge context.

Since:
  3.4

## 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
`AdditiveResourceAttachmentChangeMerger()`
The constructor specify the context where this merger can be used.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`apply(IMergeCriterion criterion)`
Default implementation of apply for mergers that extends this class.
`void`
`copyRightToLeft(Diff target, Monitor monitor)`
Executes the copy from right to left.
`Set<Diff>`
`getDirectMergeDependencies(Diff diff, boolean mergeRightToLeft)`
Retrieves the set of directly required diffs needed in order to merge the current one.
`Set<Diff>`
`getDirectResultingMerges(Diff diff, boolean mergeRightToLeft)`
Returns all differences that will be merged because of our merging the given `target` difference.

### Methods inherited from class org.eclipse.emf.compare.merge.ResourceAttachmentChangeMerger

`accept, addInTarget, computeTargetURI, deleteFormerResourceIfNecessary, deleteResource, findInsertionIndex, findOrCreateTargetResource, getMatchResource, isMergerFor, move, mustDelete, reject, removeFromTarget`

### Methods inherited from class org.eclipse.emf.compare.merge.AbstractMerger

`addAt, copyDiff, copyLeftToRight, createCopy, getDirectResultingRejections, getImpliedMerges, getLogicallyResultingMerges, getMergeOptions, getMergerDelegate, getMergerDelegate, getRanking, getRegistry, isAccepting, isAdd, isInTerminalState, isSet, isUnset, mergeDiff, setMergeOptions, setRanking, setRegistry`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### AdditiveResourceAttachmentChangeMerger

public AdditiveResourceAttachmentChangeMerger()
The constructor specify the context where this merger can be used.

## Method Details

### apply

public boolean apply(IMergeCriterion criterion)
Description copied from class: `AbstractMerger`
Default implementation of apply for mergers that extends this class. Will accept `null` or AdditiveMergeCriterion.INSTANCE.

Specified by:
  `apply` in interface `IMergeCriterionAware`
Overrides:
  `apply` in class `ResourceAttachmentChangeMerger`
Parameters:
  `criterion` - The merge criterion
Returns:
  `true` if the given criterion is null or is AdditiveMergeCriterion.INSTANCE.

### copyRightToLeft

public void copyRightToLeft(Diff target, Monitor monitor)
Description copied from class: `AbstractMerger`
Executes the copy from right to left.

Specified by:
  `copyRightToLeft` in interface `IMerger`
Overrides:
  `copyRightToLeft` in class `AbstractMerger`
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 mergeRightToLeft)
Description copied from class: `AbstractMerger`
Retrieves the set of directly required diffs needed in order to merge the current one. This may includes the diff's `requirements` or any other diff that we need to merge before the given one.

Specified by:
  `getDirectMergeDependencies` in interface `IMerger2`
Overrides:
  `getDirectMergeDependencies` in class `AbstractMerger`
Parameters:
  `diff` - The diff which direct requirements we need.
  `mergeRightToLeft` - 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 mergeRightToLeft)
Description copied from class: `AbstractMerger`
Returns all differences that will be merged because of our merging the given `target` difference. This may include the diff's `implications`, the diff's `equivalences`, the diff's `refinements` or any other diff that we need to merge together with the given diff.

Specified by:
  `getDirectResultingMerges` in interface `IMerger2`
Overrides:
  `getDirectResultingMerges` in class `AbstractMerger`
Parameters:
  `diff` - The difference we're considering merging.
  `mergeRightToLeft` - The direction in which we're considering a merge.
Returns:
  The Set of all differences that will be merged because we've merged `target`.