Package gnu.bytecode
Class ArrayClassLoader
- java.lang.Object
-
- java.lang.ClassLoader
-
- gnu.bytecode.ArrayClassLoader
-
public class ArrayClassLoader extends java.lang.ClassLoaderLoad classes from a set of byte arrays.
-
-
Constructor Summary
Constructors Constructor Description ArrayClassLoader()ArrayClassLoader(byte[][] classBytes)Load classes from the given byte arrays.ArrayClassLoader(java.lang.ClassLoader parent)ArrayClassLoader(java.lang.String[] classNames, byte[][] classBytes)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddClass(ClassType ctype)voidaddClass(java.lang.Class clas)voidaddClass(java.lang.String name, byte[] bytes)protected java.net.URLfindResource(java.lang.String name)static java.lang.PackagegetContextPackage(java.lang.String cname)java.io.InputStreamgetResourceAsStream(java.lang.String name)java.net.URLgetResourceContext()Get base URL to use for finding resources, or null if none is set.java.lang.ClassloadClass(java.lang.String name)Load named class.java.lang.ClassloadClass(java.lang.String name, boolean resolve)voidsetResourceContext(java.net.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(java.lang.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(java.lang.String[] classNames, byte[][] classBytes)
-
-
Method Detail
-
getResourceContext
public java.net.URL getResourceContext()
Get base URL to use for finding resources, or null if none is set.
-
setResourceContext
public void setResourceContext(java.net.URL context)
Set base URL to use for finding resources.
-
addClass
public void addClass(java.lang.Class clas)
-
addClass
public void addClass(java.lang.String name, byte[] bytes)
-
addClass
public void addClass(ClassType ctype)
-
getResourceAsStream
public java.io.InputStream getResourceAsStream(java.lang.String name)
- Overrides:
getResourceAsStreamin classjava.lang.ClassLoader
-
findResource
protected java.net.URL findResource(java.lang.String name)
- Overrides:
findResourcein 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
-
loadClass
public java.lang.Class loadClass(java.lang.String name) throws java.lang.ClassNotFoundExceptionLoad 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:
loadClassin classjava.lang.ClassLoader- Throws:
java.lang.ClassNotFoundException
-
getContextPackage
public static java.lang.Package getContextPackage(java.lang.String cname)
-
-