Class Version

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

    @Immutable
    public class Version
    extends java.lang.Object
    implements java.lang.Comparable<Version>
    Version composed of maximum four fields (major, minor, patch and build ID numbers) and optionally a qualifier.

    Examples: 1.0, 1.0.0, 1.2.3, 1.2-beta1, 1.2.1-beta-1, 1.2.3.4567

    IMPORTANT NOTE

    Qualifier is ignored when comparing objects (methods equals(Object), hashCode() and compareTo(Version)).

       assertThat(Version.parse("1.2")).isEqualTo(Version.parse("1.2-beta1"));
       assertThat(Version.parse("1.2").compareTo(Version.parse("1.2-beta1"))).isZero();
     
    Since:
    5.5
    • Method Detail

      • major

        public int major()
      • minor

        public int minor()
      • patch

        public int patch()
      • buildNumber

        public long buildNumber()
        Build number if the fourth field, for example 12345 for "6.3.0.12345". If absent, then value is zero.
        Since:
        6.3
      • qualifier

        public java.lang.String qualifier()
        Returns:
        non-null suffix. Empty if absent, else the suffix without the first character "-"
      • parse

        public static Version parse​(java.lang.String text)
        Convert a String to a Version. Supported formats:
        • 1
        • 1.2
        • 1.2.3
        • 1-beta-1
        • 1.2-beta-1
        • 1.2.3-beta-1
        • 1.2.3.4567
        • 1.2.3.4567-beta-1
        Note that the optional qualifier is the part after the first "-".
        Throws:
        java.lang.IllegalArgumentException - if parameter is badly formatted, for example if it defines 5 integer-sequences.
      • create

        public static Version create​(int major,
                                     int minor)
      • create

        public static Version create​(int major,
                                     int minor,
                                     int patch)
      • create

        @Deprecated
        public static Version create​(int major,
                                     int minor,
                                     int patch,
                                     java.lang.String qualifier)
        Deprecated.
        in 6.3 to avoid ambiguity with build number (see buildNumber()
      • isGreaterThanOrEqual

        public boolean isGreaterThanOrEqual​(Version than)
      • equals

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

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

        public int compareTo​(Version other)
        Specified by:
        compareTo in interface java.lang.Comparable<Version>
      • toString

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