public class ClassFileVersion extends Object implements Comparable<ClassFileVersion>
Modifier and Type | Class and Description |
---|---|
protected static class |
ClassFileVersion.VersionExtractor
A simple visitor that extracts the class file version of a class file.
|
protected static interface |
ClassFileVersion.VersionLocator
A locator for the executing VM's Java version.
|
Modifier and Type | Field and Description |
---|---|
protected static int |
BASE_VERSION
Returns the minimal version number that is legal.
|
static ClassFileVersion |
JAVA_V1
The class file version of Java 1.
|
static ClassFileVersion |
JAVA_V10
The class file version of Java 10 (preliminary).
|
static ClassFileVersion |
JAVA_V2
The class file version of Java 2.
|
static ClassFileVersion |
JAVA_V3
The class file version of Java 3.
|
static ClassFileVersion |
JAVA_V4
The class file version of Java 4.
|
static ClassFileVersion |
JAVA_V5
The class file version of Java 5.
|
static ClassFileVersion |
JAVA_V6
The class file version of Java 6.
|
static ClassFileVersion |
JAVA_V7
The class file version of Java 7.
|
static ClassFileVersion |
JAVA_V8
The class file version of Java 8.
|
static ClassFileVersion |
JAVA_V9
The class file version of Java 9.
|
Modifier | Constructor and Description |
---|---|
protected |
ClassFileVersion(int versionNumber)
Creates a wrapper for a given minor-major release of the Java class file file.
|
Modifier and Type | Method and Description |
---|---|
int |
compareTo(ClassFileVersion other) |
int |
getJavaVersion()
Returns the Java runtime version number of this class file version.
|
int |
getMajorVersion()
Returns the major version this instance represents.
|
int |
getMinorMajorVersion()
Returns the minor-major release number of this class file version.
|
int |
getMinorVersion()
Returns the minor version this instance represents.
|
boolean |
isAtLeast(ClassFileVersion classFileVersion)
Checks if this class file version is at least as new as the provided version.
|
boolean |
isAtMost(ClassFileVersion classFileVersion)
Checks if this class file version is at most as new as the provided version.
|
boolean |
isGreaterThan(ClassFileVersion classFileVersion)
Checks if this class file version is newer than the provided version.
|
boolean |
isLessThan(ClassFileVersion classFileVersion)
Checks if this class file version is older than the provided version.
|
static ClassFileVersion |
of(Class<?> type)
Extracts a class' class version.
|
static ClassFileVersion |
of(Class<?> type,
ClassFileLocator classFileLocator)
Extracts a class' class version.
|
static ClassFileVersion |
of(TypeDescription typeDescription,
ClassFileLocator classFileLocator)
Extracts a class' class version.
|
static ClassFileVersion |
ofJavaVersion(int javaVersion)
Creates a class file version for a given major release of Java.
|
static ClassFileVersion |
ofJavaVersionString(String javaVersionString)
Returns the Java class file by its representation by a version string in accordance to the formats known to javac.
|
static ClassFileVersion |
ofMinorMajor(int versionNumber)
Creates a wrapper for a given minor-major release of the Java class file file.
|
static ClassFileVersion |
ofThisVm()
Finds the highest class file version that is compatible to the current JVM version.
|
static ClassFileVersion |
ofThisVm(ClassFileVersion fallback)
Finds the highest class file version that is compatible to the current JVM version.
|
protected static final int BASE_VERSION
public static final ClassFileVersion JAVA_V1
public static final ClassFileVersion JAVA_V2
public static final ClassFileVersion JAVA_V3
public static final ClassFileVersion JAVA_V4
public static final ClassFileVersion JAVA_V5
public static final ClassFileVersion JAVA_V6
public static final ClassFileVersion JAVA_V7
public static final ClassFileVersion JAVA_V8
public static final ClassFileVersion JAVA_V9
public static final ClassFileVersion JAVA_V10
protected ClassFileVersion(int versionNumber)
versionNumber
- The minor-major release number.public static ClassFileVersion ofMinorMajor(int versionNumber)
versionNumber
- The minor-major release number.public static ClassFileVersion ofJavaVersionString(String javaVersionString)
javaVersionString
- The Java version string.public static ClassFileVersion ofJavaVersion(int javaVersion)
javaVersion
- The Java version.public static ClassFileVersion ofThisVm()
java.version
property which is provided by System.getProperty(String)
. If the system
property is not available, an IllegalStateException
is thrown.public static ClassFileVersion ofThisVm(ClassFileVersion fallback)
java.version
property which is provided by System.getProperty(String)
. If the system
property is not available, the fallback
version is returned.fallback
- The version to fallback to if locating a class file version is not possible.public static ClassFileVersion of(Class<?> type) throws IOException
ClassLoader
of the class.type
- The type for which to locate a class file version.IOException
- If an error occurs while reading the class file.public static ClassFileVersion of(Class<?> type, ClassFileLocator classFileLocator) throws IOException
type
- The type for which to locate a class file version.classFileLocator
- The class file locator to query for a class file.IOException
- If an error occurs while reading the class file.public static ClassFileVersion of(TypeDescription typeDescription, ClassFileLocator classFileLocator) throws IOException
typeDescription
- The type for which to locate a class file version.classFileLocator
- The class file locator to query for a class file.IOException
- If an error occurs while reading the class file.public int getMinorMajorVersion()
public int getMajorVersion()
public int getMinorVersion()
public int getJavaVersion()
public boolean isAtLeast(ClassFileVersion classFileVersion)
classFileVersion
- The version to check against.true
if this version is at least of the given version.public boolean isGreaterThan(ClassFileVersion classFileVersion)
classFileVersion
- The version to check against.true
if this version is newer than the provided version.public boolean isAtMost(ClassFileVersion classFileVersion)
classFileVersion
- The version to check against.true
if this version is as most as new as the provided version.public boolean isLessThan(ClassFileVersion classFileVersion)
classFileVersion
- The version to check against.true
if this version is older than the provided version.public int compareTo(ClassFileVersion other)
compareTo
in interface Comparable<ClassFileVersion>
Copyright © 2014–2018. All rights reserved.