Package org.eclipse.team.core.diff.provider

## Class ThreeWayDiff

- java.lang.Object
- - org.eclipse.team.core.diff.provider.Diff
  - - org.eclipse.team.core.diff.provider.ThreeWayDiff

All Implemented Interfaces:
  `IDiff`, `IThreeWayDiff`

    public class ThreeWayDiff
    extends Diff
    implements IThreeWayDiff

Implementation of `IThreeWayDiff`.

Since:
  3.2
Restriction:
  This class is not intended to be subclassed by clients.

### Field Summary

### Fields inherited from class org.eclipse.team.core.diff.provider.Diff

`KIND_MASK`

### Fields inherited from interface org.eclipse.team.core.diff.IDiff

`ADD, CHANGE, NO_CHANGE, REMOVE`

### Fields inherited from interface org.eclipse.team.core.diff.IThreeWayDiff

`CONFLICTING, DIRECTION_MASK, INCOMING, OUTGOING`

### Constructor Summary

Constructors
`ThreeWayDiff​(ITwoWayDiff localChange, ITwoWayDiff remoteChange)` Create a three-way delta from the two changes.

### Method Summary

All Methods Instance Methods Concrete Methods
`boolean` `equals​(Object obj)`
`int` `getDirection()` Return the direction of this three-way delta.
`ITwoWayDiff` `getLocalChange()` Return the local change associated with this delta.
`ITwoWayDiff` `getRemoteChange()` Return the remote change associated with this delta.
`String` `toDiffString()` Return a string that describes the difference represented by this node.

### Methods inherited from class org.eclipse.team.core.diff.provider.Diff

`getKind, getPath, getStatus, hashCode`

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

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

### Methods inherited from interface org.eclipse.team.core.diff.IDiff

`getKind, getPath`

### Constructor Detail

#### ThreeWayDiff

    public ThreeWayDiff​(ITwoWayDiff localChange,
                        ITwoWayDiff remoteChange)

Create a three-way delta from the two changes. At least one change must be provided (i.e. either change may be `null` but at least one must be non-`null`).

Parameters:
  `localChange` - the local change in the model object or `null` if there is no local change
  `remoteChange` - the remote change in the model object or `null` if there is no local change

### Method Detail

#### getLocalChange

    public ITwoWayDiff getLocalChange()

Description copied from interface: `IThreeWayDiff`
Return the local change associated with this delta. If there is no local change, either a delta with kind `IDiff.NO_CHANGE` is returned or `null` may be returned.

Specified by:
  `getLocalChange` in interface `IThreeWayDiff`
Returns:
  the local change associated with this delta or `null`

#### getRemoteChange

    public ITwoWayDiff getRemoteChange()

Description copied from interface: `IThreeWayDiff`
Return the remote change associated with this delta. If there is no remote change, either a delta with kind `IDiff.NO_CHANGE` is returned or `null` may be returned.

Specified by:
  `getRemoteChange` in interface `IThreeWayDiff`
Returns:
  the remote change associated with this delta or `null`

#### getDirection

    public int getDirection()

Description copied from interface: `IThreeWayDiff`
Return the direction of this three-way delta.

Specified by:
  `getDirection` in interface `IThreeWayDiff`
Returns:
  the direction of this three-way delta
See Also:
  `IThreeWayDiff.INCOMING`, `IThreeWayDiff.OUTGOING`, `IThreeWayDiff.CONFLICTING`

#### toDiffString

    public String toDiffString()

Description copied from interface: `IDiff`
Return a string that describes the difference represented by this node.

Specified by:
  `toDiffString` in interface `IDiff`
Overrides:
  `toDiffString` in class `Diff`
Returns:
  a string that describes the difference represented by this node

#### equals

    public boolean equals​(Object obj)

Overrides:
  `equals` in class `Diff`