Class RuntimeVersion

  • All Implemented Interfaces:
    RuntimeVersionType, java.lang.Comparable<RuntimeVersionType>

    public final class RuntimeVersion
    extends java.lang.Object
    implements RuntimeVersionType
    A (slightly reduced) version number for Java runtimes. This version represents a subset of the possible data present in Java runtime versions. Specifically, this version number represents just the semantic versioning information, plus a build number.
    See Also:
    "https://openjdk.java.net/jeps/223"
    • Method Detail

      • major

        public java.math.BigInteger major()
        Specified by:
        major in interface RuntimeVersionType
        Returns:
        The major version
      • minor

        public java.math.BigInteger minor()
        Specified by:
        minor in interface RuntimeVersionType
        Returns:
        The minor version
      • patch

        public java.math.BigInteger patch()
        Specified by:
        patch in interface RuntimeVersionType
        Returns:
        The patch version
      • build

        public java.util.Optional<java.math.BigInteger> build()
        Specified by:
        build in interface RuntimeVersionType
        Returns:
        The build number, if any
      • withMajor

        public final RuntimeVersion withMajor​(java.math.BigInteger value)
        Copy the current immutable object by setting a value for the major attribute. An equals check used to prevent copying of the same value by returning this.
        Parameters:
        value - A new value for major
        Returns:
        A modified copy of the this object
      • withMinor

        public final RuntimeVersion withMinor​(java.math.BigInteger value)
        Copy the current immutable object by setting a value for the minor attribute. An equals check used to prevent copying of the same value by returning this.
        Parameters:
        value - A new value for minor
        Returns:
        A modified copy of the this object
      • withPatch

        public final RuntimeVersion withPatch​(java.math.BigInteger value)
        Copy the current immutable object by setting a value for the patch attribute. An equals check used to prevent copying of the same value by returning this.
        Parameters:
        value - A new value for patch
        Returns:
        A modified copy of the this object
      • withBuild

        public final RuntimeVersion withBuild​(java.math.BigInteger value)
        Copy the current immutable object by setting a present value for the optional build attribute.
        Parameters:
        value - The value for build
        Returns:
        A modified copy of this object
      • withBuild

        public final RuntimeVersion withBuild​(java.util.Optional<? extends java.math.BigInteger> optional)
        Copy the current immutable object by setting an optional value for the build attribute. An equality check is used on inner nullable value to prevent copying of the same value by returning this.
        Parameters:
        optional - A value for build
        Returns:
        A modified copy of this object
      • equals

        public boolean equals​(java.lang.Object another)
        This instance is equal to all instances of RuntimeVersion that have equal attribute values.
        Overrides:
        equals in class java.lang.Object
        Returns:
        true if this is equal to another instance
      • hashCode

        public int hashCode()
        Computes a hash code from attributes: major, minor, patch, build.
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        hashCode value
      • toString

        public java.lang.String toString()
        Prints the immutable value RuntimeVersion with attribute values.
        Overrides:
        toString in class java.lang.Object
        Returns:
        A string representation of the value
      • copyOf

        public static RuntimeVersion copyOf​(RuntimeVersionType instance)
        Creates an immutable copy of a RuntimeVersionType value. Uses accessors to get values to initialize the new immutable instance. If an instance is already immutable, it is returned as is.
        Parameters:
        instance - The instance to copy
        Returns:
        A copied immutable RuntimeVersion instance
      • builder

        public static RuntimeVersion.Builder builder()
        Creates a builder for RuntimeVersion.
         RuntimeVersion.builder()
            .setMajor(java.math.BigInteger) // required major
            .setMinor(java.math.BigInteger) // required minor
            .setPatch(java.math.BigInteger) // required patch
            .setBuild(java.math.BigInteger) // optional build
            .build();
         
        Returns:
        A new RuntimeVersion builder