Package org.openjdk.jmc.common.version
Class JavaVersion
java.lang.Object
org.openjdk.jmc.common.version.JavaVersion
Parses the
java.version property and extracts the components to able to compare versions.
Handles Java 9 version 9.1.3.0-ea
(spec.feature.security.patch[-prebuildinfo]). Handles old Java versions
1.8.0_40-ea (major.minor.micro_update[-prebuildinfo]). Does not do any
interpretation of the numbers. Does not handle comparison between 9.1.1 and
1.9.2.0 (a version which should never exist).-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intConstant denoting an unparsable number. -
Constructor Summary
ConstructorsConstructorDescriptionJavaVersion(boolean isEarlyAccess, int... versionNumbers) Create an instance based on version numbers.JavaVersion(int... versionNumbers) Create an instance based on version numbers.JavaVersion(String version) Create an instance based on a Java version string as reported by a Java runtime. -
Method Summary
Modifier and TypeMethodDescriptionbooleanintinthashCode()booleanbooleanisGreaterOrEqualThan(JavaVersion otherVersion) Compare another version instance with this instance.booleanisGreaterOrEqualThanDisregardEa(JavaVersion otherVersion) Compare another version instance with this instance disregarding early access status.booleanisSameMajorVersion(JavaVersion otherVersion) Check if another version instance has the same major version as this instance.toString()
-
Field Details
-
UNKNOWN
public static final int UNKNOWNConstant denoting an unparsable number.- See Also:
-
-
Constructor Details
-
JavaVersion
Create an instance based on a Java version string as reported by a Java runtime.- Parameters:
version- Java version string
-
JavaVersion
public JavaVersion(int... versionNumbers) Create an instance based on version numbers.- Parameters:
versionNumbers- One or more numbers denoting a Java version. The first number is the major version, the second number is the minor version, the third number is the micro version, and the fourth number is the update version. If one or more numbers are omitted, then zeroes will be used for them.
-
JavaVersion
public JavaVersion(boolean isEarlyAccess, int... versionNumbers) Create an instance based on version numbers.- Parameters:
isEarlyAccess-trueif this version should indicate an early access build,falseotherwiseversionNumbers- One or more numbers denoting a Java version. The first number is the major version, the second number is the minor version, the third number is the micro version, and the fourth number is the update version. If one or more numbers are omitted, then zeroes will be used for them.
-
-
Method Details
-
hashCode
public int hashCode() -
equals
-
isGreaterOrEqualThan
Compare another version instance with this instance.- Parameters:
otherVersion- version to compare with- Returns:
trueif this instance is greater than or equal tootherVersion
-
isGreaterOrEqualThanDisregardEa
Compare another version instance with this instance disregarding early access status.- Parameters:
otherVersion- version to compare with- Returns:
trueif this instance is greater than or equal tootherVersion
-
isSameMajorVersion
Check if another version instance has the same major version as this instance.- Parameters:
otherVersion- version to compare with- Returns:
trueif this instance has the same major version number asotherVersion
-
getMajorVersion
public int getMajorVersion()- Returns:
- the major version number
-
toString
-
isEarlyAccess
public boolean isEarlyAccess()- Returns:
trueif this instance indicates an early access release
-