Package org.tmatesoft.svn.core

## Class SVNMergeRange

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

- All Implemented Interfaces:
    `java.lang.Comparable`

      public class SVNMergeRange
      extends java.lang.Object
      implements java.lang.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

    All Methods Instance Methods Concrete Methods
    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​(java.lang.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​(java.lang.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.
    `java.lang.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 Detail

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

    - #### 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​(java.lang.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 `java.lang.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​(java.lang.Object obj)

      Says if this object is equal to `obj` or not.

      Identical to `this.compareTo(obj) == 0`.
      Overrides:
        `equals` in class `java.lang.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 java.lang.String toString()

      Return a string representation of this object.
      Overrides:
        `toString` in class `java.lang.Object`
      Returns:
        this object as a string