org.eclipse.compare.rangedifferencer

## Class RangeDifference

- java.lang.Object
- - org.eclipse.compare.rangedifferencer.RangeDifference

    public class RangeDifference
    extends Object

Description of a change between two or three ranges of comparable entities.

`RangeDifference` objects are the elements of a compare result returned from the `RangeDifferencer` `find*` methods. Clients use these objects as they are returned from the differencer. This class is not intended to be instantiated outside of the Compare framework.

Note: A range in the `RangeDifference` object is given as a start index and length in terms of comparable entities. However, these entity indices and counts are not necessarily character positions. For example, if an entity represents a line in a document, the start index would be a line number and the count would be in lines.

See Also:
  `RangeDifferencer`
Restriction:
  This class is not intended to be instantiated by clients.

### Field Summary

Fields
`static int` `ANCESTOR` Three-way change constant indicating the same change in both right and left, that is only the ancestor is different.
`protected int` `ancestorLength`
`protected int` `ancestorStart`
`static int` `CHANGE` Two-way change constant indicating two-way change (same as `RIGHT`)
`static int` `CONFLICT` Three-way change constant indicating a change in both right and left.
`static int` `ERROR` Constant indicating an unknown change kind.
`protected int` `kind` the kind of change: NOCHANGE, CHANGE, LEFT, RIGHT, ANCESTOR, CONFLICT, ERROR
`static int` `LEFT` Three-way change constant indicating a change in left.
`protected int` `leftLength`
`protected int` `leftStart`
`static int` `NOCHANGE` Two-way change constant indicating no change.
`static int` `RIGHT` Three-way change constant indicating a change in right.
`protected int` `rightLength`
`protected int` `rightStart`

### Constructor Summary

Constructors
`protected` `RangeDifference(int changeKind)` Creates a new range difference with the given change kind.
`protected` `RangeDifference(int kind, int rightStart, int rightLength, int leftStart, int leftLength)` Creates a new `RangeDifference` with the given change kind and left and right ranges.
`protected` `RangeDifference(int kind, int rightStart, int rightLength, int leftStart, int leftLength, int ancestorStart, int ancestorLength)` Creates a new `RangeDifference` with the given change kind and left, right, and ancestor ranges.

### Method Summary

All Methods Instance Methods Concrete Methods
`int` `ancestorEnd()` Returns the end index of the entity range on the ancestor side.
`int` `ancestorLength()` Returns the number of entities on the ancestor side.
`int` `ancestorStart()` Returns the start index of the entity range on the ancestor side.
`boolean` `equals(Object obj)`
`int` `hashCode()`
`int` `kind()` Returns the kind of difference.
`int` `leftEnd()` Returns the end index of the entity range on the left side.
`int` `leftLength()` Returns the number of entities on the left side.
`int` `leftStart()` Returns the start index of the entity range on the left side.
`int` `maxLength()` Returns the maximum number of entities in the left, right, and ancestor sides of this range.
`int` `rightEnd()` Returns the end index of the entity range on the right side.
`int` `rightLength()` Returns the number of entities on the right side.
`int` `rightStart()` Returns the start index of the entity range on the right side.
`String` `toString()`

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

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

### Field Detail

#### NOCHANGE

    public static final int NOCHANGE

Two-way change constant indicating no change.

See Also:
  Constant Field Values

#### CHANGE

    public static final int CHANGE

Two-way change constant indicating two-way change (same as `RIGHT`)

See Also:
  Constant Field Values

#### CONFLICT

    public static final int CONFLICT

Three-way change constant indicating a change in both right and left.

See Also:
  Constant Field Values

#### RIGHT

    public static final int RIGHT

Three-way change constant indicating a change in right.

See Also:
  Constant Field Values

#### LEFT

    public static final int LEFT

Three-way change constant indicating a change in left.

See Also:
  Constant Field Values

#### ANCESTOR

    public static final int ANCESTOR

Three-way change constant indicating the same change in both right and left, that is only the ancestor is different.

See Also:
  Constant Field Values

#### ERROR

    public static final int ERROR

Constant indicating an unknown change kind.

See Also:
  Constant Field Values

#### kind

    protected int kind

the kind of change: NOCHANGE, CHANGE, LEFT, RIGHT, ANCESTOR, CONFLICT, ERROR

Since:
  org.eclipse.compare.core 3.5

#### leftStart

    protected int leftStart

Since:
  org.eclipse.compare.core 3.5

#### leftLength

    protected int leftLength

Since:
  org.eclipse.compare.core 3.5

#### rightStart

    protected int rightStart

Since:
  org.eclipse.compare.core 3.5

#### rightLength

    protected int rightLength

Since:
  org.eclipse.compare.core 3.5

#### ancestorStart

    protected int ancestorStart

Since:
  org.eclipse.compare.core 3.5

#### ancestorLength

    protected int ancestorLength

Since:
  org.eclipse.compare.core 3.5

### Constructor Detail

#### RangeDifference

    protected RangeDifference(int changeKind)

Creates a new range difference with the given change kind.

Parameters:
  `changeKind` - the kind of change
Since:
  org.eclipse.compare.core 3.5

#### RangeDifference

    protected RangeDifference(int kind,
                              int rightStart,
                              int rightLength,
                              int leftStart,
                              int leftLength)

Creates a new `RangeDifference` with the given change kind and left and right ranges.

Parameters:
  `kind` - the kind of change
  `rightStart` - start index of entity on right side
  `rightLength` - number of entities on right side
  `leftStart` - start index of entity on left side
  `leftLength` - number of entities on left side
Since:
  org.eclipse.compare.core 3.5

#### RangeDifference

    protected RangeDifference(int kind,
                              int rightStart,
                              int rightLength,
                              int leftStart,
                              int leftLength,
                              int ancestorStart,
                              int ancestorLength)

Creates a new `RangeDifference` with the given change kind and left, right, and ancestor ranges.

Parameters:
  `kind` - the kind of change
  `rightStart` - start index of entity on right side
  `rightLength` - number of entities on right side
  `leftStart` - start index of entity on left side
  `leftLength` - number of entities on left side
  `ancestorStart` - start index of entity on ancestor side
  `ancestorLength` - number of entities on ancestor side
Since:
  org.eclipse.compare.core 3.5

### Method Detail

#### kind

    public int kind()

Returns the kind of difference.

Returns:
  the kind of difference, one of `NOCHANGE`, `CHANGE`, `LEFT`, `RIGHT`, `ANCESTOR`, `CONFLICT`, `ERROR`

#### ancestorStart

    public int ancestorStart()

Returns the start index of the entity range on the ancestor side.

Returns:
  the start index of the entity range on the ancestor side

#### ancestorLength

    public int ancestorLength()

Returns the number of entities on the ancestor side.

Returns:
  the number of entities on the ancestor side

#### ancestorEnd

    public int ancestorEnd()

Returns the end index of the entity range on the ancestor side.

Returns:
  the end index of the entity range on the ancestor side

#### rightStart

    public int rightStart()

Returns the start index of the entity range on the right side.

Returns:
  the start index of the entity range on the right side

#### rightLength

    public int rightLength()

Returns the number of entities on the right side.

Returns:
  the number of entities on the right side

#### rightEnd

    public int rightEnd()

Returns the end index of the entity range on the right side.

Returns:
  the end index of the entity range on the right side

#### leftStart

    public int leftStart()

Returns the start index of the entity range on the left side.

Returns:
  the start index of the entity range on the left side

#### leftLength

    public int leftLength()

Returns the number of entities on the left side.

Returns:
  the number of entities on the left side

#### leftEnd

    public int leftEnd()

Returns the end index of the entity range on the left side.

Returns:
  the end index of the entity range on the left side

#### maxLength

    public int maxLength()

Returns the maximum number of entities in the left, right, and ancestor sides of this range.

Returns:
  the maximum number of entities in the left, right, and ancestor sides of this range

#### equals

    public boolean equals(Object obj)

Overrides:
  `equals` in class `Object`

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `Object`

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`