Class SandboxClassLoader
- java.lang.Object
-
- java.lang.ClassLoader
-
- java.security.SecureClassLoader
-
- java.net.URLClassLoader
-
- org.robolectric.internal.bytecode.SandboxClassLoader
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
public class SandboxClassLoader extends java.net.URLClassLoaderClass loader that modifies the bytecode of Android classes to insert calls to Robolectric's shadow classes.
-
-
Constructor Summary
Constructors Constructor Description SandboxClassLoader(java.lang.ClassLoader erstwhileClassLoader, InstrumentationConfiguration config, ResourceProvider resourceProvider, ClassInstrumentor classInstrumentor)SandboxClassLoader(InstrumentationConfiguration config, ResourceProvider resourceProvider, ClassInstrumentor classInstrumentor)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected byte[]getByteCode(java.lang.String className)java.net.URLgetResource(java.lang.String name)java.lang.Class<?>loadClass(java.lang.String name, boolean resolve)protected java.lang.Class<?>maybeInstrumentClass(java.lang.String className)protected byte[]postProcessUninstrumentedClass(MutableClass mutableClass, byte[] origClassBytes)-
Methods inherited from class java.net.URLClassLoader
addURL, close, definePackage, findClass, findResource, findResources, getPermissions, getResourceAsStream, getURLs, newInstance, newInstance
-
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
-
-
-
Constructor Detail
-
SandboxClassLoader
@Inject public SandboxClassLoader(InstrumentationConfiguration config, ResourceProvider resourceProvider, ClassInstrumentor classInstrumentor)
-
SandboxClassLoader
public SandboxClassLoader(java.lang.ClassLoader erstwhileClassLoader, InstrumentationConfiguration config, ResourceProvider resourceProvider, ClassInstrumentor classInstrumentor)
-
-
Method Detail
-
getResource
public java.net.URL getResource(java.lang.String name)
- Overrides:
getResourcein classjava.lang.ClassLoader
-
loadClass
public java.lang.Class<?> loadClass(java.lang.String name, boolean resolve) throws java.lang.ClassNotFoundException- Overrides:
loadClassin classjava.lang.ClassLoader- Throws:
java.lang.ClassNotFoundException
-
maybeInstrumentClass
protected java.lang.Class<?> maybeInstrumentClass(java.lang.String className) throws java.lang.ClassNotFoundException- Throws:
java.lang.ClassNotFoundException
-
postProcessUninstrumentedClass
protected byte[] postProcessUninstrumentedClass(MutableClass mutableClass, byte[] origClassBytes)
-
getByteCode
protected byte[] getByteCode(java.lang.String className) throws java.lang.ClassNotFoundException- Throws:
java.lang.ClassNotFoundException
-
-