Package 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
Modifier and Type
Field
Description
`static final 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 final int`
`CHANGE`
Two-way change constant indicating two-way change (same as `RIGHT`)
`static final int`
`CONFLICT`
Three-way change constant indicating a change in both right and left.
`static final int`
`ERROR`
Constant indicating an unknown change kind.
`protected int`
`kind`
the kind of change: NOCHANGE, CHANGE, LEFT, RIGHT, ANCESTOR, CONFLICT, ERROR
`static final int`
`LEFT`
Three-way change constant indicating a change in left.
`protected int`
`leftLength`
`protected int`
`leftStart`
`static final int`
`NOCHANGE`
Two-way change constant indicating no change.
`static final int`
`RIGHT`
Three-way change constant indicating a change in right.
`protected int`
`rightLength`
`protected int`
`rightStart`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`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

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

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

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

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