Interface Driver

All Superinterfaces:
java.lang.AutoCloseable, java.io.Closeable
All Known Implementing Classes:
DefaultDriver, DriverAbst, DynamicDriver, HybridDriver, NativeDriver

public interface Driver
extends java.io.Closeable
  • Nested Class Summary

    Nested Classes
    Modifier and Type Interface Description
    static class  Driver.Factory  
    static class  Driver.InitializeException  
    static class  Driver.InstantiateException  
  • Method Summary

    Modifier and Type Method Description
    <T> T allocateInstance​(java.lang.Class<?> cls)  
    void close()  
    java.lang.ClassLoader convertToBuiltinClassLoader​(java.lang.ClassLoader classLoader)  
    java.lang.Class<?> defineHookClass​(java.lang.Class<?> clientClass, byte[] byteCode)  
    java.lang.Class<?> getBuiltinClassLoaderClass()  
    java.lang.Class<?> getClassByName​(java.lang.String className, java.lang.Boolean initialize, java.lang.ClassLoader classLoader, java.lang.Class<?> caller)  
    java.lang.Class<?> getClassLoaderDelegateClass()  
    java.lang.invoke.MethodHandles.Lookup getConsulter​(java.lang.Class<?> cls)  
    <T> java.lang.reflect.Constructor<T>[] getDeclaredConstructors​(java.lang.Class<T> cls)  
    java.lang.reflect.Field[] getDeclaredFields​(java.lang.Class<?> cls)  
    java.lang.reflect.Method[] getDeclaredMethods​(java.lang.Class<?> cls)  
    <T> T getFieldValue​(java.lang.Object target, java.lang.reflect.Field field)  
    CleanableSupplier<java.util.Collection<java.lang.Class<?>>> getLoadedClassesRetriever​(java.lang.ClassLoader classLoader)  
    java.lang.Package getPackage​(java.lang.ClassLoader classLoader, java.lang.String packageName)  
    java.util.Collection<java.net.URL> getResources​(java.lang.String resourceRelativePath, boolean findFirst, java.lang.ClassLoader... classLoaders)  
    java.util.Collection<java.net.URL> getResources​(java.lang.String resourceRelativePath, boolean findFirst, java.util.Collection<java.lang.ClassLoader> classLoaders)  
    <D extends Driver>
    D
    init()  
    <T> T invoke​(java.lang.Object target, java.lang.reflect.Method method, java.lang.Object[] params)  
    boolean isBuiltinClassLoader​(java.lang.ClassLoader classLoader)  
    boolean isClassLoaderDelegate​(java.lang.ClassLoader classLoader)  
    <T> T newInstance​(java.lang.reflect.Constructor<T> ctor, java.lang.Object[] params)  
    java.util.Map<java.lang.String,​?> retrieveLoadedPackages​(java.lang.ClassLoader classLoader)  
    void setAccessible​(java.lang.reflect.AccessibleObject object, boolean flag)  
    void setFieldValue​(java.lang.Object target, java.lang.reflect.Field field, java.lang.Object value)  
    <T> T throwException​(java.lang.String message, java.lang.Object... placeHolderReplacements)  
    <T> T throwException​(java.lang.Throwable exception)  
  • Method Details

    • init

      <D extends Driver> D init()
    • allocateInstance

      <T> T allocateInstance​(java.lang.Class<?> cls)
    • convertToBuiltinClassLoader

      java.lang.ClassLoader convertToBuiltinClassLoader​(java.lang.ClassLoader classLoader)
    • defineHookClass

      java.lang.Class<?> defineHookClass​(java.lang.Class<?> clientClass, byte[] byteCode)
    • getBuiltinClassLoaderClass

      java.lang.Class<?> getBuiltinClassLoaderClass()
    • getClassLoaderDelegateClass

      java.lang.Class<?> getClassLoaderDelegateClass()
    • getClassByName

      java.lang.Class<?> getClassByName​(java.lang.String className, java.lang.Boolean initialize, java.lang.ClassLoader classLoader, java.lang.Class<?> caller)
    • getConsulter

      java.lang.invoke.MethodHandles.Lookup getConsulter​(java.lang.Class<?> cls)
    • getDeclaredConstructors

      <T> java.lang.reflect.Constructor<T>[] getDeclaredConstructors​(java.lang.Class<T> cls)
    • getDeclaredFields

      java.lang.reflect.Field[] getDeclaredFields​(java.lang.Class<?> cls)
    • getDeclaredMethods

      java.lang.reflect.Method[] getDeclaredMethods​(java.lang.Class<?> cls)
    • getFieldValue

      <T> T getFieldValue​(java.lang.Object target, java.lang.reflect.Field field)
    • getPackage

      java.lang.Package getPackage​(java.lang.ClassLoader classLoader, java.lang.String packageName)
    • getResources

      java.util.Collection<java.net.URL> getResources​(java.lang.String resourceRelativePath, boolean findFirst, java.lang.ClassLoader... classLoaders)
    • getResources

      java.util.Collection<java.net.URL> getResources​(java.lang.String resourceRelativePath, boolean findFirst, java.util.Collection<java.lang.ClassLoader> classLoaders)
    • invoke

      <T> T invoke​(java.lang.Object target, java.lang.reflect.Method method, java.lang.Object[] params)
    • isBuiltinClassLoader

      boolean isBuiltinClassLoader​(java.lang.ClassLoader classLoader)
    • isClassLoaderDelegate

      boolean isClassLoaderDelegate​(java.lang.ClassLoader classLoader)
    • newInstance

      <T> T newInstance​(java.lang.reflect.Constructor<T> ctor, java.lang.Object[] params)
    • getLoadedClassesRetriever

      CleanableSupplier<java.util.Collection<java.lang.Class<?>>> getLoadedClassesRetriever​(java.lang.ClassLoader classLoader)
    • retrieveLoadedPackages

      java.util.Map<java.lang.String,​?> retrieveLoadedPackages​(java.lang.ClassLoader classLoader)
    • setAccessible

      void setAccessible​(java.lang.reflect.AccessibleObject object, boolean flag)
    • setFieldValue

      void setFieldValue​(java.lang.Object target, java.lang.reflect.Field field, java.lang.Object value)
    • throwException

      <T> T throwException​(java.lang.String message, java.lang.Object... placeHolderReplacements)
    • throwException

      <T> T throwException​(java.lang.Throwable exception)
    • close

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