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_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) |
boolean |
equals(Object other) |
static ClassFileVersion |
forCurrentJavaVersion()
Finds the highest class file version that is compatible to the current JVM version by parsing the java.version
property which is provided by
System.getProperty(String) or by querying available APIs. |
static ClassFileVersion |
forCurrentJavaVersion(ClassFileVersion fallback)
Finds the highest class file version that is compatible to the current JVM version by parsing the java.version
property which is provided by
System.getProperty(String) or by querying available APIs. |
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.
|
int |
hashCode() |
boolean |
isAtLeast(ClassFileVersion classFileVersion)
Checks if this class file version is at least of the provided version.
|
boolean |
isLessThan(ClassFileVersion classFileVersion)
Checks if this class file version is less 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 |
ofMinorMajor(int versionNumber)
Creates a wrapper for a given minor-major release of the Java class file file.
|
String |
toString() |
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
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 ofJavaVersion(int javaVersion)
javaVersion
- The Java version.public static ClassFileVersion forCurrentJavaVersion()
System.getProperty(String)
or by querying available APIs. If
neither is possible, an IllegalStateException
is thrown.public static ClassFileVersion forCurrentJavaVersion(ClassFileVersion fallback)
System.getProperty(String)
or by querying available APIs. If this
is not possible, 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 isLessThan(ClassFileVersion classFileVersion)
classFileVersion
- The version to check against.true
if this version is less than the given version.public int compareTo(ClassFileVersion other)
compareTo
in interface Comparable<ClassFileVersion>
Copyright © 2014–2016. All rights reserved.