Package io.github.toolfactory.jvm
Class DefaultDriver
java.lang.Object
io.github.toolfactory.jvm.DefaultDriver
- All Implemented Interfaces:
Driver
,Closeable
,AutoCloseable
- Direct Known Subclasses:
HybridDriver
public class DefaultDriver extends Object implements Driver
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.github.toolfactory.jvm.Driver
Driver.Factory, Driver.InitializeException, Driver.InstantiateException
-
Field Summary
-
Constructor Summary
Constructors Constructor Description DefaultDriver()
-
Method Summary
Modifier and Type Method Description <T> T
allocateInstance(Class<?> cls)
void
close()
Class<?>
defineHookClass(Class<?> clientClass, byte[] byteCode)
Class<?>
getBuiltinClassLoaderClass()
Class<?>
getClassLoaderDelegateClass()
MethodHandles.Lookup
getConsulter(Class<?> cls)
<T> Constructor<T>[]
getDeclaredConstructors(Class<T> cls)
Field[]
getDeclaredFields(Class<?> cls)
Method[]
getDeclaredMethods(Class<?> cls)
<T> T
getFieldValue(Object target, Field field)
Package
getPackage(ClassLoader classLoader, String packageName)
protected void
initAccessibleSetter(ObjectProvider functionProvider, Map<Object,Object> initializationContext)
protected void
initAllocateInstanceInvoker(ObjectProvider functionProvider, Map<Object,Object> initializationContext)
protected void
initBuiltinClassLoaderClass(ObjectProvider functionProvider, Map<Object,Object> initializationContext)
protected void
initClassLoaderDelegateClass(ObjectProvider functionProvider, Map<Object,Object> initializationContext)
protected void
initConstructorInvoker(ObjectProvider functionProvider, Map<Object,Object> initializationContext)
protected void
initConsulterRetriever(ObjectProvider functionProvider, Map<Object,Object> initializationContext)
protected void
initDeclaredConstructorsRetriever(ObjectProvider functionProvider, Map<Object,Object> initializationContext)
protected void
initDeclaredFieldsRetriever(ObjectProvider functionProvider, Map<Object,Object> initializationContext)
protected void
initDeclaredMethodsRetriever(ObjectProvider functionProvider, Map<Object,Object> initializationContext)
protected void
initExceptionThrower(ObjectProvider functionProvider, Map<Object,Object> initializationContext)
protected void
initFieldValueRetriever(ObjectProvider functionProvider, Map<Object,Object> initializationContext)
protected void
initFieldValueSetter(ObjectProvider functionProvider, Map<Object,Object> initializationContext)
protected void
initHookClassDefiner(ObjectProvider functionProvider, Map<Object,Object> initializationContext)
protected void
initLoadedClassesRetriever(ObjectProvider functionProvider, Map<Object,Object> initializationContext)
protected void
initLoadedPackagesRetriever(ObjectProvider functionProvider, Map<Object,Object> initializationContext)
protected void
initMethodInvoker(ObjectProvider functionProvider, Map<Object,Object> initializationContext)
protected void
initPackageRetriever(ObjectProvider functionProvider, Map<Object,Object> initializationContext)
<T> T
invoke(Method method, Object target, Object[] params)
boolean
isBuiltinClassLoader(ClassLoader classLoader)
boolean
isClassLoaderDelegate(ClassLoader classLoader)
<T> T
newInstance(Constructor<T> ctor, Object[] params)
protected void
replaceConsulterWithDeepConsulter(ObjectProvider functionProvider, Map<Object,Object> initializationContext)
Collection<Class<?>>
retrieveLoadedClasses(ClassLoader classLoader)
Map<String,?>
retrieveLoadedPackages(ClassLoader classLoader)
void
setAccessible(AccessibleObject object, boolean flag)
void
setFieldValue(Object target, Field field, Object value)
<T> T
throwException(Object exceptionOrMessage, Object... placeHolderReplacements)
-
Field Details
-
exceptionThrower
-
allocateInstanceInvoker
-
fieldValueRetriever
-
fieldValueSetter
-
hookClassDefiner
-
consulterRetriever
-
declaredFieldsRetriever
-
declaredMethodsRetriever
-
declaredConstructorsRetriever
-
accessibleSetter
-
constructorInvoker
-
packageRetriever
-
methodInvoker
-
builtinClassLoaderClass
-
classLoaderDelegateClass
-
loadedClassesRetriever
-
loadedPackagesRetriever
-
-
Constructor Details
-
DefaultDriver
public DefaultDriver()
-
-
Method Details
-
initExceptionThrower
protected void initExceptionThrower(ObjectProvider functionProvider, Map<Object,Object> initializationContext) -
initLoadedPackagesRetriever
protected void initLoadedPackagesRetriever(ObjectProvider functionProvider, Map<Object,Object> initializationContext) -
initLoadedClassesRetriever
protected void initLoadedClassesRetriever(ObjectProvider functionProvider, Map<Object,Object> initializationContext) -
replaceConsulterWithDeepConsulter
protected void replaceConsulterWithDeepConsulter(ObjectProvider functionProvider, Map<Object,Object> initializationContext) -
initClassLoaderDelegateClass
protected void initClassLoaderDelegateClass(ObjectProvider functionProvider, Map<Object,Object> initializationContext) -
initBuiltinClassLoaderClass
protected void initBuiltinClassLoaderClass(ObjectProvider functionProvider, Map<Object,Object> initializationContext) -
initPackageRetriever
protected void initPackageRetriever(ObjectProvider functionProvider, Map<Object,Object> initializationContext) -
initFieldValueSetter
protected void initFieldValueSetter(ObjectProvider functionProvider, Map<Object,Object> initializationContext) -
initFieldValueRetriever
protected void initFieldValueRetriever(ObjectProvider functionProvider, Map<Object,Object> initializationContext) -
initAllocateInstanceInvoker
protected void initAllocateInstanceInvoker(ObjectProvider functionProvider, Map<Object,Object> initializationContext) -
initMethodInvoker
protected void initMethodInvoker(ObjectProvider functionProvider, Map<Object,Object> initializationContext) -
initConstructorInvoker
protected void initConstructorInvoker(ObjectProvider functionProvider, Map<Object,Object> initializationContext) -
initAccessibleSetter
protected void initAccessibleSetter(ObjectProvider functionProvider, Map<Object,Object> initializationContext) -
initDeclaredConstructorsRetriever
protected void initDeclaredConstructorsRetriever(ObjectProvider functionProvider, Map<Object,Object> initializationContext) -
initDeclaredMethodsRetriever
protected void initDeclaredMethodsRetriever(ObjectProvider functionProvider, Map<Object,Object> initializationContext) -
initDeclaredFieldsRetriever
protected void initDeclaredFieldsRetriever(ObjectProvider functionProvider, Map<Object,Object> initializationContext) -
initHookClassDefiner
protected void initHookClassDefiner(ObjectProvider functionProvider, Map<Object,Object> initializationContext) -
initConsulterRetriever
protected void initConsulterRetriever(ObjectProvider functionProvider, Map<Object,Object> initializationContext) -
throwException
- Specified by:
throwException
in interfaceDriver
-
setAccessible
- Specified by:
setAccessible
in interfaceDriver
-
defineHookClass
- Specified by:
defineHookClass
in interfaceDriver
-
getPackage
- Specified by:
getPackage
in interfaceDriver
-
retrieveLoadedClasses
- Specified by:
retrieveLoadedClasses
in interfaceDriver
-
retrieveLoadedPackages
- Specified by:
retrieveLoadedPackages
in interfaceDriver
-
getFieldValue
- Specified by:
getFieldValue
in interfaceDriver
-
setFieldValue
- Specified by:
setFieldValue
in interfaceDriver
-
allocateInstance
- Specified by:
allocateInstance
in interfaceDriver
-
isBuiltinClassLoader
- Specified by:
isBuiltinClassLoader
in interfaceDriver
-
isClassLoaderDelegate
- Specified by:
isClassLoaderDelegate
in interfaceDriver
-
getBuiltinClassLoaderClass
- Specified by:
getBuiltinClassLoaderClass
in interfaceDriver
-
getClassLoaderDelegateClass
- Specified by:
getClassLoaderDelegateClass
in interfaceDriver
-
getConsulter
- Specified by:
getConsulter
in interfaceDriver
-
invoke
-
newInstance
- Specified by:
newInstance
in interfaceDriver
-
getDeclaredFields
- Specified by:
getDeclaredFields
in interfaceDriver
-
getDeclaredConstructors
- Specified by:
getDeclaredConstructors
in interfaceDriver
-
getDeclaredMethods
- Specified by:
getDeclaredMethods
in interfaceDriver
-
close
public void close()
-