Class MapBackedClassLoader


  • public class MapBackedClassLoader
    extends java.lang.ClassLoader
    • Constructor Summary

      Constructors 
      Constructor Description
      MapBackedClassLoader​(java.lang.ClassLoader parentClassLoader)  
      MapBackedClassLoader​(java.lang.ClassLoader parentClassLoader, java.util.Map store)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addClass​(java.lang.String className, byte[] bytes)  
      void addResource​(java.lang.String className, byte[] bytes)  
      java.lang.Class fastFindClass​(java.lang.String name)  
      protected java.lang.Class findClass​(java.lang.String name)  
      java.io.InputStream getResourceAsStream​(java.lang.String name)  
      java.util.Map getStore()  
      java.lang.Class loadClass​(java.lang.String name, boolean resolve)
      Javadocs recommend that this method not be overloaded.
      • Methods inherited from class java.lang.ClassLoader

        clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResource, findResources, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResource, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, 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

      • MapBackedClassLoader

        public MapBackedClassLoader​(java.lang.ClassLoader parentClassLoader)
      • MapBackedClassLoader

        public MapBackedClassLoader​(java.lang.ClassLoader parentClassLoader,
                                    java.util.Map store)
    • Method Detail

      • addResource

        public void addResource​(java.lang.String className,
                                byte[] bytes)
      • addClass

        public void addClass​(java.lang.String className,
                             byte[] bytes)
      • fastFindClass

        public java.lang.Class fastFindClass​(java.lang.String name)
      • loadClass

        public java.lang.Class loadClass​(java.lang.String name,
                                         boolean resolve)
                                  throws java.lang.ClassNotFoundException
        Javadocs recommend that this method not be overloaded. We overload this so that we can prioritise the fastFindClass over method calls to parent.loadClass(name, false); and c = findBootstrapClass0(name); which the default implementation would first - hence why we call it "fastFindClass" instead of standard findClass, this indicates that we give it a higher priority than normal.
        Overrides:
        loadClass in class java.lang.ClassLoader
        Throws:
        java.lang.ClassNotFoundException
      • findClass

        protected java.lang.Class findClass​(java.lang.String name)
                                     throws java.lang.ClassNotFoundException
        Overrides:
        findClass in class java.lang.ClassLoader
        Throws:
        java.lang.ClassNotFoundException
      • getResourceAsStream

        public java.io.InputStream getResourceAsStream​(java.lang.String name)
        Overrides:
        getResourceAsStream in class java.lang.ClassLoader
      • getStore

        public java.util.Map getStore()