public final class PredefinedClassesSupport extends Object
| Modifier and Type | Class and Description |
|---|---|
static class |
PredefinedClassesSupport.Options |
static class |
PredefinedClassesSupport.TestingBackdoor |
| Modifier and Type | Field and Description |
|---|---|
static String |
ENABLE_BYTECODES_OPTION |
| Constructor and Description |
|---|
PredefinedClassesSupport() |
| Modifier and Type | Method and Description |
|---|---|
static boolean |
hasBytecodeClasses() |
static String |
hash(byte[] classData,
int offset,
int length) |
static boolean |
isPredefined(Class<?> clazz) |
static void |
loadClass(ClassLoader classLoader,
ProtectionDomain protectionDomain,
Class<?> clazz) |
static Class<?> |
loadClass(ClassLoader classLoader,
String expectedName,
byte[] data,
int offset,
int length,
ProtectionDomain protectionDomain) |
static boolean |
loadClassIfNotLoaded(ClassLoader classLoader,
ProtectionDomain protectionDomain,
Class<?> clazz)
Load the class if it has not already been loaded.
|
static void |
registerClass(Class<?> clazz)
Register a class that cannot be loaded via a byte array of its class data, only with
PredefinedClassesSupport.loadClass(ClassLoader, ProtectionDomain, Class) or PredefinedClassesSupport.loadClassIfNotLoaded(java.lang.ClassLoader, java.security.ProtectionDomain, java.lang.Class<?>). |
static void |
registerClass(String hash,
Class<?> clazz) |
static boolean |
supportsBytecodes() |
static void |
throwIfUnresolvable(Class<?> clazz,
ClassLoader classLoader) |
static RuntimeException |
throwNoBytecodeClasses() |
public static final String ENABLE_BYTECODES_OPTION
public static boolean supportsBytecodes()
public static boolean hasBytecodeClasses()
public static RuntimeException throwNoBytecodeClasses()
public static String hash(byte[] classData, int offset, int length)
public static void registerClass(Class<?> clazz)
PredefinedClassesSupport.loadClass(ClassLoader, ProtectionDomain, Class) or PredefinedClassesSupport.loadClassIfNotLoaded(java.lang.ClassLoader, java.security.ProtectionDomain, java.lang.Class<?>).public static boolean isPredefined(Class<?> clazz)
public static Class<?> loadClass(ClassLoader classLoader, String expectedName, byte[] data, int offset, int length, ProtectionDomain protectionDomain)
public static void loadClass(ClassLoader classLoader, ProtectionDomain protectionDomain, Class<?> clazz)
public static boolean loadClassIfNotLoaded(ClassLoader classLoader, ProtectionDomain protectionDomain, Class<?> clazz)
true if the class has been
loaded as a result of this call, false otherwise. Throws if an error occurred.public static void throwIfUnresolvable(Class<?> clazz, ClassLoader classLoader)