Class DefaultDriver

java.lang.Object
io.github.toolfactory.jvm.DefaultDriver
All Implemented Interfaces:
Driver, java.io.Closeable, java.lang.AutoCloseable
Direct Known Subclasses:
HybridDriver, NativeDriver

public class DefaultDriver
extends java.lang.Object
implements Driver
  • Constructor Details

    • DefaultDriver

      public DefaultDriver()
  • Method Details

    • initExceptionThrower

      protected ThrowExceptionFunction initExceptionThrower​(ObjectProvider functionProvider, java.util.Map<java.lang.Object,​java.lang.Object> initializationContext)
    • initAllocateInstanceInvoker

      protected AllocateInstanceFunction initAllocateInstanceInvoker​(ObjectProvider functionProvider, java.util.Map<java.lang.Object,​java.lang.Object> initializationContext)
    • initFieldValueRetriever

      protected GetFieldValueFunction initFieldValueRetriever​(ObjectProvider functionProvider, java.util.Map<java.lang.Object,​java.lang.Object> initializationContext)
    • initFieldValueSetter

      protected SetFieldValueFunction initFieldValueSetter​(ObjectProvider functionProvider, java.util.Map<java.lang.Object,​java.lang.Object> initializationContext)
    • initHookClassDefiner

      protected DefineHookClassFunction initHookClassDefiner​(ObjectProvider functionProvider, java.util.Map<java.lang.Object,​java.lang.Object> initializationContext)
    • initConsulterRetriever

      protected ConsulterSupplyFunction<?> initConsulterRetriever​(ObjectProvider functionProvider, java.util.Map<java.lang.Object,​java.lang.Object> initializationContext)
    • initDeclaredFieldsRetriever

      protected GetDeclaredFieldsFunction initDeclaredFieldsRetriever​(ObjectProvider functionProvider, java.util.Map<java.lang.Object,​java.lang.Object> initializationContext)
    • initDeclaredMethodsRetriever

      protected GetDeclaredMethodsFunction initDeclaredMethodsRetriever​(ObjectProvider functionProvider, java.util.Map<java.lang.Object,​java.lang.Object> initializationContext)
    • initDeclaredConstructorsRetriever

      protected GetDeclaredConstructorsFunction initDeclaredConstructorsRetriever​(ObjectProvider functionProvider, java.util.Map<java.lang.Object,​java.lang.Object> initializationContext)
    • initAccessibleSetter

      protected SetAccessibleFunction<?> initAccessibleSetter​(ObjectProvider functionProvider, java.util.Map<java.lang.Object,​java.lang.Object> initializationContext)
    • initConstructorInvoker

      protected java.lang.invoke.MethodHandle initConstructorInvoker​(ObjectProvider functionProvider, java.util.Map<java.lang.Object,​java.lang.Object> initializationContext)
    • initMethodInvoker

      protected java.lang.invoke.MethodHandle initMethodInvoker​(ObjectProvider functionProvider, java.util.Map<java.lang.Object,​java.lang.Object> initializationContext)
    • initPackageRetriever

      protected GetPackageFunction initPackageRetriever​(ObjectProvider functionProvider, java.util.Map<java.lang.Object,​java.lang.Object> initializationContext)
    • initBuiltinClassLoaderClass

      protected java.lang.Class<?> initBuiltinClassLoaderClass​(ObjectProvider functionProvider, java.util.Map<java.lang.Object,​java.lang.Object> initializationContext)
    • initClassLoaderDelegateClass

      protected java.lang.Class<?> initClassLoaderDelegateClass​(ObjectProvider functionProvider, java.util.Map<java.lang.Object,​java.lang.Object> initializationContext)
    • replaceConsulterWithDeepConsulter

      protected DeepConsulterSupplyFunction<?> replaceConsulterWithDeepConsulter​(ObjectProvider functionProvider, java.util.Map<java.lang.Object,​java.lang.Object> initializationContext)
    • initLoadedClassesRetriever

      protected GetLoadedClassesFunction initLoadedClassesRetriever​(ObjectProvider functionProvider, java.util.Map<java.lang.Object,​java.lang.Object> initializationContext)
    • initLoadedPackagesRetriever

      protected GetLoadedPackagesFunction initLoadedPackagesRetriever​(ObjectProvider functionProvider, java.util.Map<java.lang.Object,​java.lang.Object> initializationContext)
    • throwException

      public <T> T throwException​(java.lang.Object exceptionOrMessage, java.lang.Object... placeHolderReplacements)
      Specified by:
      throwException in interface Driver
    • setAccessible

      public void setAccessible​(java.lang.reflect.AccessibleObject object, boolean flag)
      Specified by:
      setAccessible in interface Driver
    • defineHookClass

      public java.lang.Class<?> defineHookClass​(java.lang.Class<?> clientClass, byte[] byteCode)
      Specified by:
      defineHookClass in interface Driver
    • getPackage

      public java.lang.Package getPackage​(java.lang.ClassLoader classLoader, java.lang.String packageName)
      Specified by:
      getPackage in interface Driver
    • retrieveLoadedClasses

      public java.util.Collection<java.lang.Class<?>> retrieveLoadedClasses​(java.lang.ClassLoader classLoader)
      Specified by:
      retrieveLoadedClasses in interface Driver
    • retrieveLoadedPackages

      public java.util.Map<java.lang.String,​?> retrieveLoadedPackages​(java.lang.ClassLoader classLoader)
      Specified by:
      retrieveLoadedPackages in interface Driver
    • getFieldValue

      public <T> T getFieldValue​(java.lang.Object target, java.lang.reflect.Field field)
      Specified by:
      getFieldValue in interface Driver
    • setFieldValue

      public void setFieldValue​(java.lang.Object target, java.lang.reflect.Field field, java.lang.Object value)
      Specified by:
      setFieldValue in interface Driver
    • allocateInstance

      public <T> T allocateInstance​(java.lang.Class<?> cls)
      Specified by:
      allocateInstance in interface Driver
    • isBuiltinClassLoader

      public boolean isBuiltinClassLoader​(java.lang.ClassLoader classLoader)
      Specified by:
      isBuiltinClassLoader in interface Driver
    • isClassLoaderDelegate

      public boolean isClassLoaderDelegate​(java.lang.ClassLoader classLoader)
      Specified by:
      isClassLoaderDelegate in interface Driver
    • getBuiltinClassLoaderClass

      public java.lang.Class<?> getBuiltinClassLoaderClass()
      Specified by:
      getBuiltinClassLoaderClass in interface Driver
    • getClassLoaderDelegateClass

      public java.lang.Class<?> getClassLoaderDelegateClass()
      Specified by:
      getClassLoaderDelegateClass in interface Driver
    • getConsulter

      public java.lang.invoke.MethodHandles.Lookup getConsulter​(java.lang.Class<?> cls)
      Specified by:
      getConsulter in interface Driver
    • invoke

      public <T> T invoke​(java.lang.reflect.Method method, java.lang.Object target, java.lang.Object[] params)
      Specified by:
      invoke in interface Driver
    • newInstance

      public <T> T newInstance​(java.lang.reflect.Constructor<T> ctor, java.lang.Object[] params)
      Specified by:
      newInstance in interface Driver
    • getDeclaredFields

      public java.lang.reflect.Field[] getDeclaredFields​(java.lang.Class<?> cls)
      Specified by:
      getDeclaredFields in interface Driver
    • getDeclaredConstructors

      public <T> java.lang.reflect.Constructor<T>[] getDeclaredConstructors​(java.lang.Class<T> cls)
      Specified by:
      getDeclaredConstructors in interface Driver
    • getDeclaredMethods

      public java.lang.reflect.Method[] getDeclaredMethods​(java.lang.Class<?> cls)
      Specified by:
      getDeclaredMethods in interface Driver
    • close

      public void close()
      Specified by:
      close in interface java.lang.AutoCloseable
      Specified by:
      close in interface java.io.Closeable
      Specified by:
      close in interface Driver