Class VersionRange

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

public class VersionRange extends Object
Construct a version range from a specification.
Author:
Brett Porter
  • Method Details

    • getRecommendedVersion

      public ArtifactVersion getRecommendedVersion()
    • getRestrictions

      public List<Restriction> getRestrictions()
    • cloneOf

      @Deprecated public VersionRange cloneOf()
      Deprecated.
      VersionRange is immutable, cloning is not useful and even more an issue against the cache
      Returns:
      a clone
    • createFromVersionSpec

      public static VersionRange createFromVersionSpec(String spec) throws InvalidVersionSpecificationException

      Create a version range from a string representation

      Some spec examples are:
      • 1.0 Version 1.0 as a recommended version
      • [1.0] Version 1.0 explicitly only
      • [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(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:
      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 String toString()
      Overrides:
      toString in class Object
    • matchVersion

      public ArtifactVersion matchVersion(List<ArtifactVersion> versions)
    • containsVersion

      public boolean containsVersion(ArtifactVersion version)
    • hasRestrictions

      public boolean hasRestrictions()
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object