Package org.tmatesoft.svn.core

# Class SVNMergeRange

java.lang.Object
org.tmatesoft.svn.core.SVNMergeRange

All Implemented Interfaces:
  `Comparable`

public class SVNMergeRange extends Object implements Comparable
The SVNMergeRange class represents a range of merged revisions.

Since:
  1.2
Version:
  1.3
Author:
  TMate Software Ltd.

## Constructor Summary

Constructors
Constructor
Description
`SVNMergeRange(long startRevision, long endRevision, boolean isInheritable)`
Constructs a new `SVNMergeRange` object.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`canCombine(SVNMergeRange range, boolean considerInheritance)`
Tells whether this range can me combined with the given `range` depending on inheritance or not.
`SVNMergeRange`
`combine(SVNMergeRange range, boolean considerInheritance)`
Combines this merge range and the given `range` into a single one.
`int`
`compareTo(Object o)`
Compares this object to another one.
`boolean`
`contains(SVNMergeRange range, boolean considerInheritance)`
Says whether this range contains the specified `range` depending on inheritance or not.
`SVNMergeRange`
`dup()`
Makes an exact copy of this object.
`boolean`
`equals(Object obj)`
Says if this object is equal to `obj` or not.
`long`
`getEndRevision()`
Returns the end revision of this merge range.
`long`
`getStartRevision()`
Returns the start revision of this merge range.
`boolean`
`intersects(SVNMergeRange range, boolean considerInheritance)`
Says whether this range intersects the specified `range` depending on inheritance or not.
`boolean`
`isInheritable()`
Tells whether this merge range should be inherited by treewise descendants of the path to which the range applies.
`void`
`setEndRevision(long endRevision)`
Sets the end revision of this merge range.
`void`
`setInheritable(boolean isInheritable)`
Sets whether this merge range is inheritable or not.
`void`
`setStartRevision(long startRevision)`
Sets the start revision of this merge range.
`SVNMergeRange`
`swapEndPoints()`
Swaps the start revision and the end revision of this merge range object.
`String`
`toString()`
Return a string representation of this object.

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

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

## Constructor Details

### SVNMergeRange

public SVNMergeRange(long startRevision, long endRevision, boolean isInheritable)
Constructs a new `SVNMergeRange` object.

Parameters:
  `startRevision` - start revision of this merge range
  `endRevision` - end revision of this merge range
  `isInheritable` - whether this range is inheritable or not

## Method Details

### getEndRevision

public long getEndRevision()
Returns the end revision of this merge range.

Returns:
  end revision

### getStartRevision

public long getStartRevision()
Returns the start revision of this merge range.

Returns:
  start revision

### setEndRevision

public void setEndRevision(long endRevision)
Sets the end revision of this merge range. This method is used by `SVNKit` internals and is not intended for API users.

Parameters:
  `endRevision` - merge range end revision

### setStartRevision

public void setStartRevision(long startRevision)
Sets the start revision of this merge range. This method is used by `SVNKit` internals and is not intended for API users.

Parameters:
  `startRevision` - merge range start revision

### compareTo

public int compareTo(Object o)
Compares this object to another one.

Note: merge range `inheritance` is not taken into account when comparing two `SVNMergeRange` objects.

Specified by:
  `compareTo` in interface `Comparable`
Parameters:
  `o` - object to compare to
Returns:
  `0` if `o` is exactly this object or `o.getStartRevision() == this.getStartRevision() && o.getEndRevision() == this.getEndRevision()`; `-1` if either `this.getStartRevision() < o.getStartRevision()` or `this.getStartRevision() == o.getStartRevision() && this.getEndRevision() < o.getEndRevision()`; `1` if either `this.getStartRevision() > o.getStartRevision()` or `this.getStartRevision() == o.getStartRevision() && this.getEndRevision() > o.getEndRevision()`

### equals

public boolean equals(Object obj)
Says if this object is equal to `obj` or not.

Identical to `this.compareTo(obj) == 0`.

Overrides:
  `equals` in class `Object`
Parameters:
  `obj` - object ot compare to
Returns:
  true if equal; otherwise false

### combine

public SVNMergeRange combine(SVNMergeRange range, boolean considerInheritance)
Combines this merge range and the given `range` into a single one.

Combining may only occur if `canCombine(SVNMergeRange, boolean)` returns true for the specified parameters.

Note: combining changes the state of this object.

Parameters:
  `range` - range to combine with this range
  `considerInheritance` - whether inheritance information should be taken into account
Returns:
  if combining occurs, returns this object which is now a combination of the two ranges; otherwise returns `range`

### canCombine

public boolean canCombine(SVNMergeRange range, boolean considerInheritance)
Tells whether this range can me combined with the given `range` depending on inheritance or not.

Combining may occur only when two ranges intersect each other what may be checked by the following case: `range1.getStartRevision() <= range2.getEndRevision() && range2.getStartRevision() <= range1.getEndRevision()`. If this condition evaluates to true, then the ranges intersect.

Parameters:
  `range` - range to combine with this range
  `considerInheritance` - whether inheritance information should be taken into account or not
Returns:
  true when the ranges intersect, `considerInheritance` is not set, or if set, both ranges have the same inheritance; otherwise false

### contains

public boolean contains(SVNMergeRange range, boolean considerInheritance)
Says whether this range contains the specified `range` depending on inheritance or not.

Parameters:
  `range` - range to check
  `considerInheritance` - whether inheritance information should be taken into account or not
Returns:
  true if this range contains the specified `range`; otherwise false

### intersects

public boolean intersects(SVNMergeRange range, boolean considerInheritance)
Says whether this range intersects the specified `range` depending on inheritance or not.

Parameters:
  `range` - range to check
  `considerInheritance` - whether inheritance information should be taken into account or not
Returns:
  true if this range intersects the specified `range`; otherwise false

### swapEndPoints

public SVNMergeRange swapEndPoints()
Swaps the start revision and the end revision of this merge range object.

Returns:
  this object itself

### isInheritable

public boolean isInheritable()
Tells whether this merge range should be inherited by treewise descendants of the path to which the range applies.

Returns:
  true if inheritable; otherwise false

### setInheritable

public void setInheritable(boolean isInheritable)
Sets whether this merge range is inheritable or not. This method is used by `SVNKit` internals and is not intended for API users.

Parameters:
  `isInheritable` - whether this range is inheritable or not

### dup

public SVNMergeRange dup()
Makes an exact copy of this object.

Returns:
  exact copy of this object

### toString

public String toString()
Return a string representation of this object.

Overrides:
  `toString` in class `Object`
Returns:
  this object as a string