Class Version

  • All Implemented Interfaces:
    java.lang.Comparable<Version>

    public class Version
    extends java.lang.Object
    implements java.lang.Comparable<Version>
    Implements a package version.
    Since:
    2.0
    • Field Detail

      • EMPTY

        public static final Version EMPTY
        The empty version
    • Method Detail

      • create

        @NotNull
        public static @NotNull Version create​(@Nullable
                                              @Nullable java.lang.String str)
        Creates a new version from the given string.
        Parameters:
        str - the version string.
        Returns:
        the new version or EMPTY if str is an empty string.
        Since:
        2.2.4
      • create

        @NotNull
        public static @NotNull Version create​(@Nullable
                                              @Nullable java.lang.String[] segments)
        Creates a new version from version segments
        Parameters:
        segments - version segments
        Returns:
        the new version or EMPTY if segments is empty.
        Since:
        2.2.4
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • getNormalizedSegments

        public java.lang.String[] getNormalizedSegments()
        Returns all segments.
        Returns:
        all segments.
      • compareTo

        public int compareTo​(Version o)
        Compares this version to the given one. The comparison complies with the ordering used by Apache Maven. A version usually consists out of three numerical parts separated by dot - major version, minor version and patch level, and can be followed by a dash and a qualifier like SNAPSHOT. Version numbers can also consist of fewer or more parts (numerical, string, ....).
         Some examples:
         "1" < "2"
         "1.0" < "2"
         "2.0.1" < "2.1"
         "2.1" < "2.1.1"
         "2.9" < "2.11"
         "2.1-SNAPSHOT" < "2.1"
         "2.1-RC1" < "2.1"
         "2.1-RC1" < "2.1-SNAPSHOT"
         
        Please note that this comparison does not use the exact segmentation presented in getNormalizedSegments(), but applies the maven comparison algorithm to the string representation toString().
        Specified by:
        compareTo in interface java.lang.Comparable<Version>
        Parameters:
        o - the other version, not null
        Returns:
        a negative integer, zero, or a positive integer as this version is less than, equal to, or greater than the specified version.
        See Also:
        Maven version order specification, Semantic Versioning 1.0.0
      • osgiCompareTo

        @Deprecated
        public int osgiCompareTo​(Version o)
        Deprecated.
        since 3.1.32. use compareTo(Version). See JCRVLT-146
        Same as with compareTo(Version).
        Parameters:
        o - the other version
        Returns:
        a negative integer, zero, or a positive integer as this version is less than, equal to, or greater than the specified version.
      • isSnapshot

        public boolean isSnapshot()
        Returns:
        true in case this version indicates a SNAPSHOT (i.e. mutable) version
        Since:
        3.6.10