Package gnu.bytecode
Class ArrayClassLoader
- java.lang.Object
-
- java.lang.ClassLoader
-
- gnu.bytecode.ArrayClassLoader
-
public class ArrayClassLoader extends ClassLoader
Load classes from a set of byte arrays.
-
-
Constructor Summary
Constructors Constructor Description ArrayClassLoader()
ArrayClassLoader(byte[][] classBytes)
Load classes from the given byte arrays.ArrayClassLoader(ClassLoader parent)
ArrayClassLoader(String[] classNames, byte[][] classBytes)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addClass(ClassType ctype)
void
addClass(Class clas)
void
addClass(String name, byte[] bytes)
protected URL
findResource(String name)
static Package
getContextPackage(String cname)
InputStream
getResourceAsStream(String name)
URL
getResourceContext()
Get base URL to use for finding resources, or null if none is set.Class
loadClass(String name)
Load named class.Class
loadClass(String name, boolean resolve)
void
setResourceContext(URL context)
Set base URL to use for finding resources.-
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResource, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
-
-
-
Constructor Detail
-
ArrayClassLoader
public ArrayClassLoader()
-
ArrayClassLoader
public ArrayClassLoader(ClassLoader parent)
-
ArrayClassLoader
public ArrayClassLoader(byte[][] classBytes)
Load classes from the given byte arrays. By convention, the classes we manage are named"lambda"+<INTEGER>
.
-
ArrayClassLoader
public ArrayClassLoader(String[] classNames, byte[][] classBytes)
-
-
Method Detail
-
getResourceContext
public URL getResourceContext()
Get base URL to use for finding resources, or null if none is set.
-
setResourceContext
public void setResourceContext(URL context)
Set base URL to use for finding resources.
-
addClass
public void addClass(Class clas)
-
addClass
public void addClass(String name, byte[] bytes)
-
addClass
public void addClass(ClassType ctype)
-
getResourceAsStream
public InputStream getResourceAsStream(String name)
- Overrides:
getResourceAsStream
in classClassLoader
-
findResource
protected URL findResource(String name)
- Overrides:
findResource
in classClassLoader
-
loadClass
public Class loadClass(String name, boolean resolve) throws ClassNotFoundException
- Overrides:
loadClass
in classClassLoader
- Throws:
ClassNotFoundException
-
loadClass
public Class loadClass(String name) throws ClassNotFoundException
Load named class. Note we deliberately don't follow the Java2 delegation model, in order to allow classes to be overridden and replaced. Specifically, we depend on this for the "session class-loader".- Overrides:
loadClass
in classClassLoader
- Throws:
ClassNotFoundException
-
-