# 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 Diff

`KIND_MASK`

### Fields inherited from interface IDiff

`ADD, CHANGE, NO_CHANGE, REMOVE`

### Fields inherited from interface IThreeWayDiff

`CONFLICTING, DIRECTION_MASK, INCOMING, OUTGOING`

## Constructor Summary

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

## Method Summary

Modifier and Type
Method
Description
`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 Diff

`getKind, getPath, getStatus, hashCode`

### Methods inherited from class Object

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

### Methods inherited from interface IDiff

`getKind, getPath`

## Constructor Details

### 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 Details

### 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`