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 and Description
    `SVNMergeRange(long startRevision, long endRevision, boolean isInheritable)` Constructs a new `SVNMergeRange` object.

  - ### Method Summary

    Methods
    Modifier and Type | Method and 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

Copyright © 2004-2009 TMate Software Ltd. All Rights Reserved.