Package io.github.toolfactory.jvm
Class DriverAbst
java.lang.Object
io.github.toolfactory.jvm.DriverAbst
- All Implemented Interfaces:
Driver
,Closeable
,AutoCloseable
- Direct Known Subclasses:
DefaultDriver
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.github.toolfactory.jvm.Driver
Driver.Factory, Driver.InitializeException, Driver.InstantiateException
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected ThrowingBiConsumer<AccessibleObject,
Boolean, Throwable> protected ThrowingFunction<Class<?>,
Object, Throwable> protected ThrowingQuadFunction<String,
Boolean, ClassLoader, Class<?>, Class<?>, Throwable> protected ThrowingFunction<ClassLoader,
ClassLoader, Throwable> protected ThrowingBiFunction<Constructor<?>,
Object[], Object, Throwable> protected ThrowingFunction<Class<?>,
MethodHandles.Lookup, Throwable> protected ThrowingFunction<Class<?>,
Constructor<?>[], Throwable> protected ThrowingFunction<Class<?>,
Field[], Throwable> protected ThrowingFunction<Class<?>,
Method[], Throwable> protected ThrowExceptionFunction
protected BiFunction<Object,
Field, Object> protected TriConsumer<Object,
Field, Object> protected ThrowingBiFunction<Class<?>,
byte[], Class<?>, Throwable> protected Function<ClassLoader,
CleanableSupplier<Collection<Class<?>>>> protected Function<ClassLoader,
Map<String, ?>> protected ThrowingBiFunction<ClassLoader,
String, Package, Throwable> protected GetResourcesFunction
protected ThrowingBiConsumer<Thread,
Throwable, Throwable> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription<T> T
allocateInstance
(Class<?> cls) void
close()
convertToBuiltinClassLoader
(ClassLoader classLoader) Class<?>
defineHookClass
(Class<?> clientClass, byte[] byteCode) protected SetAccessibleFunction
getAccessibleSetter
(Map<Object, Object> initializationContext) protected abstract Class<? extends AllocateInstanceFunction>
protected AllocateInstanceFunction
getAllocateInstanceInvoker
(Map<Object, Object> initializationContext) Class<?>
protected BuiltinClassLoaderClassSupplier
getBuiltinClassLoaderClassSupplier
(Map<Object, Object> initializationContext) protected abstract Class<? extends BuiltinClassLoaderClassSupplier>
Class<?>
getClassByName
(String className, Boolean initialize, ClassLoader classLoader, Class<?> caller) protected GetClassByNameFunction
getClassByNameRetriever
(Map<Object, Object> initializationContext) Class<?>
protected ClassLoaderDelegateClassSupplier
getClassLoaderDelegateClassSupplier
(Map<Object, Object> initializationContext) protected abstract Class<? extends ClassLoaderDelegateClassSupplier>
protected ConvertToBuiltinClassLoaderFunction
getClassLoaderToBuiltinClassLoaderConverter
(Map<Object, Object> initializationContext) protected abstract Class<? extends ConstructorInvokeFunction>
protected ConstructorInvokeFunction
getConstructorInvoker
(Map<Object, Object> initializationContext) getConsulter
(Class<?> cls) protected ConsulterSupplyFunction
getConsulterRetriever
(Map<Object, Object> initializationContext) protected abstract Class<? extends ConsulterSupplyFunction>
protected abstract Class<? extends ConvertToBuiltinClassLoaderFunction>
<T> Constructor<T>[]
getDeclaredConstructors
(Class<T> cls) protected GetDeclaredConstructorsFunction
getDeclaredConstructorsRetriever
(Map<Object, Object> initializationContext) Field[]
getDeclaredFields
(Class<?> cls) protected GetDeclaredFieldsFunction
getDeclaredFieldsRetriever
(Map<Object, Object> initializationContext) Method[]
getDeclaredMethods
(Class<?> cls) protected GetDeclaredMethodsFunction
getDeclaredMethodsRetriever
(Map<Object, Object> initializationContext) protected DeepConsulterSupplyFunction
getDeepConsulterRetriever
(Map<Object, Object> initializationContext) protected abstract Class<? extends DeepConsulterSupplyFunction>
protected abstract Class<? extends DefineHookClassFunction>
protected ThrowExceptionFunction
getExceptionThrower
(Map<Object, Object> initializationContext) <T> T
getFieldValue
(Object target, Field field) protected GetFieldValueFunction
getFieldValueRetriever
(Map<Object, Object> initializationContext) protected SetFieldValueFunction
getFieldValueSetter
(Map<Object, Object> initializationContext) protected abstract Class<? extends GetClassByNameFunction>
protected abstract Class<? extends GetDeclaredConstructorsFunction>
protected abstract Class<? extends GetDeclaredFieldsFunction>
protected abstract Class<? extends GetDeclaredMethodsFunction>
protected abstract Class<? extends GetFieldValueFunction>
protected abstract Class<? extends GetLoadedClassesRetrieverFunction>
protected abstract Class<? extends GetLoadedPackagesFunction>
protected abstract Class<? extends GetPackageFunction>
protected abstract Class<? extends GetResourcesFunction>
protected DefineHookClassFunction
getHookClassDefiner
(Map<Object, Object> initializationContext) getLoadedClassesRetriever
(ClassLoader classLoader) protected GetLoadedClassesRetrieverFunction
getLoadedClassesRetrieverFunction
(Map<Object, Object> initializationContext) protected GetLoadedPackagesFunction
getLoadedPackagesRetriever
(Map<Object, Object> initializationContext) protected abstract Class<? extends MethodInvokeFunction>
protected MethodInvokeFunction
getMethodInvoker
(Map<Object, Object> initializationContext) protected SetAccessibleFunction
getOrBuildAccessibleSetter
(Map<Object, Object> initializationContext) protected AllocateInstanceFunction
getOrBuildAllocateInstanceInvoker
(Map<Object, Object> initializationContext) protected BuiltinClassLoaderClassSupplier
getOrBuildBuiltinClassLoaderClassSupplier
(Map<Object, Object> initializationContext) protected GetClassByNameFunction
getOrBuildClassByNameRetriever
(Map<Object, Object> initializationContext) protected ClassLoaderDelegateClassSupplier
getOrBuildClassLoaderDelegateClassSupplier
(Map<Object, Object> initializationContext) protected ConvertToBuiltinClassLoaderFunction
getOrBuildClassLoaderToBuiltinClassLoaderConverter
(Map<Object, Object> initializationContext) protected ConstructorInvokeFunction
getOrBuildConstructorInvoker
(Map<Object, Object> initializationContext) protected ConsulterSupplyFunction
getOrBuildConsulterRetriever
(Map<Object, Object> initializationContext) protected GetDeclaredConstructorsFunction
getOrBuildDeclaredConstructorsRetriever
(Map<Object, Object> initializationContext) protected GetDeclaredFieldsFunction
getOrBuildDeclaredFieldsRetriever
(Map<Object, Object> initializationContext) protected GetDeclaredMethodsFunction
getOrBuildDeclaredMethodsRetriever
(Map<Object, Object> initializationContext) protected DeepConsulterSupplyFunction
getOrBuildDeepConsulterRetriever
(Map<Object, Object> initializationContext) protected ThrowExceptionFunction
getOrBuildExceptionThrower
(Map<Object, Object> initializationContext) protected GetFieldValueFunction
getOrBuildFieldValueRetriever
(Map<Object, Object> initializationContext) protected SetFieldValueFunction
getOrBuildFieldValueSetter
(Map<Object, Object> initializationContext) protected DefineHookClassFunction
getOrBuildHookClassDefiner
(Map<Object, Object> initializationContext) protected GetLoadedClassesRetrieverFunction
getOrBuildLoadedClassesRetrieverFunction
(Map<Object, Object> initializationContext) protected GetLoadedPackagesFunction
getOrBuildLoadedPackagesRetriever
(Map<Object, Object> initializationContext) protected MethodInvokeFunction
getOrBuildMethodInvoker
(Map<Object, Object> initializationContext) protected GetPackageFunction
getOrBuildPackageRetriever
(Map<Object, Object> initializationContext) protected GetResourcesFunction
getOrBuildResourcesRetriever
(Map<Object, Object> initializationContext) protected StopThreadFunction
getOrBuildThreadStopper
(Map<Object, Object> initializationContext) getPackage
(ClassLoader classLoader, String packageName) protected GetPackageFunction
getPackageRetriever
(Map<Object, Object> initializationContext) getResources
(String resourceRelativePath, boolean findFirst, ClassLoader... classLoaders) getResources
(String resourceRelativePath, boolean findFirst, Collection<ClassLoader> classLoaders) protected GetResourcesFunction
getResourcesRetriever
(Map<Object, Object> initializationContext) protected abstract Class<? extends SetAccessibleFunction>
protected abstract Class<? extends SetFieldValueFunction>
protected abstract Class<? extends StopThreadFunction>
protected StopThreadFunction
getThreadStopper
(Map<Object, Object> initializationContext) protected abstract Class<? extends ThrowExceptionFunction>
<D extends Driver>
Dinit()
<T> T
boolean
isBuiltinClassLoader
(ClassLoader classLoader) boolean
isClassLoaderDelegate
(ClassLoader classLoader) <T> T
newInstance
(Constructor<T> ctor, Object[] params) protected void
protected ObjectProvider
putNewObjectProviderIfAbsent
(Map<Object, Object> context) protected <D extends Driver>
DretrieveLoadedPackages
(ClassLoader classLoader) void
setAccessible
(AccessibleObject object, boolean flag) void
setFieldValue
(Object target, Field field, Object value) void
Deprecated.<T> T
throwException
(String message, Object... placeHolderReplacements) <T> T
throwException
(Throwable exception)
-
Field Details
-
exceptionThrower
-
allocateInstanceInvoker
-
fieldValueRetriever
-
fieldValueSetter
-
hookClassDefiner
-
consulterRetriever
-
declaredFieldsRetriever
-
declaredMethodsRetriever
-
declaredConstructorsRetriever
-
accessibleSetter
-
constructorInvoker
-
packageRetriever
-
methodInvoker
-
classByNameRetriever
protected ThrowingQuadFunction<String,Boolean, classByNameRetrieverClassLoader, Class<?>, Class<?>, Throwable> -
resourcesRetriver
-
builtinClassLoaderClassSupplier
-
classLoaderDelegateClassSupplier
-
loadedClassesRetrieverSupplier
protected Function<ClassLoader,CleanableSupplier<Collection<Class<?>>>> loadedClassesRetrieverSupplier -
loadedPackagesRetriever
-
classLoaderToBuiltinClassLoaderConverter
protected ThrowingFunction<ClassLoader,ClassLoader, classLoaderToBuiltinClassLoaderConverterThrowable> -
threadStopper
-
-
Constructor Details
-
DriverAbst
public DriverAbst()
-
-
Method Details
-
init
-
refresh
-
functionsToMap
-
putNewObjectProviderIfAbsent
-
getThrowExceptionFunctionClass
-
getAllocateInstanceFunctionClass
-
getGetFieldValueFunctionClass
-
getSetFieldValueFunctionClass
-
getDefineHookClassFunctionClass
-
getConsulterSupplyFunctionClass
-
getGetDeclaredFieldsFunctionClass
-
getGetDeclaredMethodsFunctionClass
-
getGetDeclaredConstructorsFunctionClass
protected abstract Class<? extends GetDeclaredConstructorsFunction> getGetDeclaredConstructorsFunctionClass() -
getSetAccessibleFunctionClass
-
getConstructorInvokeFunctionClass
-
getMethodInvokeFunctionClass
-
getGetPackageFunctionClass
-
getGetClassByNameFunctionClass
-
getGetResourcesFunctionClass
-
getBuiltinClassLoaderClassSupplierClass
protected abstract Class<? extends BuiltinClassLoaderClassSupplier> getBuiltinClassLoaderClassSupplierClass() -
getClassLoaderDelegateClassSupplierClass
protected abstract Class<? extends ClassLoaderDelegateClassSupplier> getClassLoaderDelegateClassSupplierClass() -
getDeepConsulterSupplyFunctionClass
protected abstract Class<? extends DeepConsulterSupplyFunction> getDeepConsulterSupplyFunctionClass() -
getGetLoadedClassesRetrieverFunctionClass
protected abstract Class<? extends GetLoadedClassesRetrieverFunction> getGetLoadedClassesRetrieverFunctionClass() -
getGetLoadedPackagesFunctionClass
-
getConvertToBuiltinClassLoaderFunctionClass
protected abstract Class<? extends ConvertToBuiltinClassLoaderFunction> getConvertToBuiltinClassLoaderFunctionClass() -
getStopThreadFunctionClass
-
getOrBuildExceptionThrower
protected ThrowExceptionFunction getOrBuildExceptionThrower(Map<Object, Object> initializationContext) -
getOrBuildAllocateInstanceInvoker
protected AllocateInstanceFunction getOrBuildAllocateInstanceInvoker(Map<Object, Object> initializationContext) -
getOrBuildFieldValueRetriever
protected GetFieldValueFunction getOrBuildFieldValueRetriever(Map<Object, Object> initializationContext) -
getOrBuildFieldValueSetter
protected SetFieldValueFunction getOrBuildFieldValueSetter(Map<Object, Object> initializationContext) -
getOrBuildHookClassDefiner
protected DefineHookClassFunction getOrBuildHookClassDefiner(Map<Object, Object> initializationContext) -
getOrBuildConsulterRetriever
protected ConsulterSupplyFunction getOrBuildConsulterRetriever(Map<Object, Object> initializationContext) -
getOrBuildDeclaredFieldsRetriever
protected GetDeclaredFieldsFunction getOrBuildDeclaredFieldsRetriever(Map<Object, Object> initializationContext) -
getOrBuildDeclaredMethodsRetriever
protected GetDeclaredMethodsFunction getOrBuildDeclaredMethodsRetriever(Map<Object, Object> initializationContext) -
getOrBuildDeclaredConstructorsRetriever
protected GetDeclaredConstructorsFunction getOrBuildDeclaredConstructorsRetriever(Map<Object, Object> initializationContext) -
getOrBuildAccessibleSetter
protected SetAccessibleFunction getOrBuildAccessibleSetter(Map<Object, Object> initializationContext) -
getOrBuildConstructorInvoker
protected ConstructorInvokeFunction getOrBuildConstructorInvoker(Map<Object, Object> initializationContext) -
getOrBuildMethodInvoker
-
getOrBuildPackageRetriever
-
getOrBuildClassByNameRetriever
protected GetClassByNameFunction getOrBuildClassByNameRetriever(Map<Object, Object> initializationContext) -
getOrBuildResourcesRetriever
protected GetResourcesFunction getOrBuildResourcesRetriever(Map<Object, Object> initializationContext) -
getOrBuildBuiltinClassLoaderClassSupplier
protected BuiltinClassLoaderClassSupplier getOrBuildBuiltinClassLoaderClassSupplier(Map<Object, Object> initializationContext) -
getOrBuildClassLoaderDelegateClassSupplier
protected ClassLoaderDelegateClassSupplier getOrBuildClassLoaderDelegateClassSupplier(Map<Object, Object> initializationContext) -
getOrBuildDeepConsulterRetriever
protected DeepConsulterSupplyFunction getOrBuildDeepConsulterRetriever(Map<Object, Object> initializationContext) -
getOrBuildLoadedClassesRetrieverFunction
protected GetLoadedClassesRetrieverFunction getOrBuildLoadedClassesRetrieverFunction(Map<Object, Object> initializationContext) -
getOrBuildLoadedPackagesRetriever
protected GetLoadedPackagesFunction getOrBuildLoadedPackagesRetriever(Map<Object, Object> initializationContext) -
getOrBuildClassLoaderToBuiltinClassLoaderConverter
protected ConvertToBuiltinClassLoaderFunction getOrBuildClassLoaderToBuiltinClassLoaderConverter(Map<Object, Object> initializationContext) -
getOrBuildThreadStopper
-
getExceptionThrower
-
getAllocateInstanceInvoker
protected AllocateInstanceFunction getAllocateInstanceInvoker(Map<Object, Object> initializationContext) -
getFieldValueRetriever
-
getFieldValueSetter
-
getHookClassDefiner
-
getConsulterRetriever
-
getDeclaredFieldsRetriever
protected GetDeclaredFieldsFunction getDeclaredFieldsRetriever(Map<Object, Object> initializationContext) -
getDeclaredMethodsRetriever
protected GetDeclaredMethodsFunction getDeclaredMethodsRetriever(Map<Object, Object> initializationContext) -
getDeclaredConstructorsRetriever
protected GetDeclaredConstructorsFunction getDeclaredConstructorsRetriever(Map<Object, Object> initializationContext) -
getAccessibleSetter
-
getConstructorInvoker
-
getMethodInvoker
-
getPackageRetriever
-
getClassByNameRetriever
-
getResourcesRetriever
-
getBuiltinClassLoaderClassSupplier
protected BuiltinClassLoaderClassSupplier getBuiltinClassLoaderClassSupplier(Map<Object, Object> initializationContext) -
getClassLoaderDelegateClassSupplier
protected ClassLoaderDelegateClassSupplier getClassLoaderDelegateClassSupplier(Map<Object, Object> initializationContext) -
getDeepConsulterRetriever
protected DeepConsulterSupplyFunction getDeepConsulterRetriever(Map<Object, Object> initializationContext) -
getLoadedClassesRetrieverFunction
protected GetLoadedClassesRetrieverFunction getLoadedClassesRetrieverFunction(Map<Object, Object> initializationContext) -
getLoadedPackagesRetriever
protected GetLoadedPackagesFunction getLoadedPackagesRetriever(Map<Object, Object> initializationContext) -
getClassLoaderToBuiltinClassLoaderConverter
protected ConvertToBuiltinClassLoaderFunction getClassLoaderToBuiltinClassLoaderConverter(Map<Object, Object> initializationContext) -
getThreadStopper
-
putIfNotNull
-
throwException
- Specified by:
throwException
in interfaceDriver
-
throwException
- Specified by:
throwException
in interfaceDriver
-
setAccessible
- Specified by:
setAccessible
in interfaceDriver
-
defineHookClass
- Specified by:
defineHookClass
in interfaceDriver
-
getPackage
- Specified by:
getPackage
in interfaceDriver
-
getLoadedClassesRetriever
- Specified by:
getLoadedClassesRetriever
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
-
getClassByName
public Class<?> getClassByName(String className, Boolean initialize, ClassLoader classLoader, Class<?> caller) - Specified by:
getClassByName
in interfaceDriver
-
getResources
public Collection<URL> getResources(String resourceRelativePath, boolean findFirst, ClassLoader... classLoaders) - Specified by:
getResources
in interfaceDriver
-
getResources
public Collection<URL> getResources(String resourceRelativePath, boolean findFirst, Collection<ClassLoader> classLoaders) - Specified by:
getResources
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
-
stop
Deprecated. -
convertToBuiltinClassLoader
- Specified by:
convertToBuiltinClassLoader
in interfaceDriver
-
close
public void close()
-