org.apache.maven.artifact.versioning

## Class VersionRange

- java.lang.Object
- - org.apache.maven.artifact.versioning.VersionRange

-     public class VersionRange
      extends java.lang.Object

  Construct a version range from a specification.
  Version:
    $Id: VersionRange.java 640549 2008-03-24 20:05:11Z bentmann $
  Author:
    Brett Porter

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `VersionRange` | `cloneOf()`
    `boolean` | `containsVersion(ArtifactVersion version)`
    `static VersionRange` | `createFromVersion(java.lang.String version)`
    `static VersionRange` | `createFromVersionSpec(java.lang.String spec)` Create a version range from a string representation Some spec examples are `1.0` Version 1.0 `[1.0,2.0)` Versions 1.0 (included) to 2.0 (not included) `[1.0,2.0]` Versions 1.0 to 2.0 (both included) `[1.5,)` Versions 1.5 and higher `(,1.0],[1.2,)` Versions up to 1.0 (included) and 1.2 or higher
    `boolean` | `equals(java.lang.Object obj)`
    `ArtifactVersion` | `getRecommendedVersion()`
    `java.util.List` | `getRestrictions()`
    `ArtifactVersion` | `getSelectedVersion(Artifact artifact)`
    `int` | `hashCode()`
    `boolean` | `hasRestrictions()`
    `boolean` | `isSelectedVersionKnown(Artifact artifact)`
    `ArtifactVersion` | `matchVersion(java.util.List versions)`
    `VersionRange` | `restrict(VersionRange restriction)` Creates and returns a new `VersionRange` that is a restriction of this version range and the specified version range.
    `java.lang.String` | `toString()`

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

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

- - ### Method Detail

    - #### getRecommendedVersion

          public ArtifactVersion getRecommendedVersion()

    - #### getRestrictions

          public java.util.List getRestrictions()

    - #### cloneOf

          public VersionRange cloneOf()

    - #### createFromVersionSpec

          public static VersionRange createFromVersionSpec(java.lang.String spec)
                                                    throws InvalidVersionSpecificationException

      Create a version range from a string representation Some spec examples are
      - `1.0` Version 1.0
      - `[1.0,2.0)` Versions 1.0 (included) to 2.0 (not included)
      - `[1.0,2.0]` Versions 1.0 to 2.0 (both included)
      - `[1.5,)` Versions 1.5 and higher
      - `(,1.0],[1.2,)` Versions up to 1.0 (included) and 1.2 or higher
      Parameters:
        `spec` - string representation of a version or version range
      Returns:
        a new `VersionRange` object that represents the spec
      Throws:
        `InvalidVersionSpecificationException`

    - #### createFromVersion

          public static VersionRange createFromVersion(java.lang.String version)

    - #### restrict

          public VersionRange restrict(VersionRange restriction)

      Creates and returns a new `VersionRange` that is a restriction of this version range and the specified version range.

      Note: Precedence is given to the recommended version from this version range over the recommended version from the specified version range.

      Parameters:
        `restriction` - the `VersionRange` that will be used to restrict this version range.
      Returns:
        the `VersionRange` that is a restriction of this version range and the specified version range.

        The restrictions of the returned version range will be an intersection of the restrictions of this version range and the specified version range if both version ranges have restrictions. Otherwise, the restrictions on the returned range will be empty.

        The recommended version of the returned version range will be the recommended version of this version range, provided that ranges falls within the intersected restrictions. If the restrictions are empty, this version range's recommended version is used if it is not `null`. If it is `null`, the specified version range's recommended version is used (provided it is non-`null`). If no recommended version can be obtained, the returned version range's recommended version is set to `null`.

      Throws:
        `java.lang.NullPointerException` - if the specified `VersionRange` is `null`.

    - #### getSelectedVersion

          public ArtifactVersion getSelectedVersion(Artifact artifact)
                                             throws OverConstrainedVersionException

      Throws:
        `OverConstrainedVersionException`

    - #### isSelectedVersionKnown

          public boolean isSelectedVersionKnown(Artifact artifact)
                                         throws OverConstrainedVersionException

      Throws:
        `OverConstrainedVersionException`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### matchVersion

          public ArtifactVersion matchVersion(java.util.List versions)

    - #### containsVersion

          public boolean containsVersion(ArtifactVersion version)

    - #### hasRestrictions

          public boolean hasRestrictions()

    - #### equals

          public boolean equals(java.lang.Object obj)

      Overrides:
        `equals` in class `java.lang.Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `java.lang.Object`