Package gnu.bytecode

Class ArrayClassLoader


  • public class ArrayClassLoader
    extends java.lang.ClassLoader
    Load classes from a set of byte arrays.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addClass​(ClassType ctype)  
      void addClass​(java.lang.Class clas)  
      void addClass​(java.lang.String name, byte[] bytes)  
      protected java.net.URL findResource​(java.lang.String name)  
      static java.lang.Package getContextPackage​(java.lang.String cname)  
      java.io.InputStream getResourceAsStream​(java.lang.String name)  
      java.net.URL getResourceContext()
      Get base URL to use for finding resources, or null if none is set.
      java.lang.Class loadClass​(java.lang.String name)
      Load named class.
      java.lang.Class loadClass​(java.lang.String name, boolean resolve)  
      void setResourceContext​(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
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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:
        getResourceAsStream in class java.lang.ClassLoader
      • findResource

        protected java.net.URL findResource​(java.lang.String name)
        Overrides:
        findResource in class java.lang.ClassLoader
      • loadClass

        public java.lang.Class loadClass​(java.lang.String name,
                                         boolean resolve)
                                  throws java.lang.ClassNotFoundException
        Overrides:
        loadClass in class java.lang.ClassLoader
        Throws:
        java.lang.ClassNotFoundException
      • loadClass

        public java.lang.Class loadClass​(java.lang.String name)
                                  throws java.lang.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 class java.lang.ClassLoader
        Throws:
        java.lang.ClassNotFoundException
      • getContextPackage

        public static java.lang.Package getContextPackage​(java.lang.String cname)