org.drools.rule
Class MapBackedClassLoader

java.lang.Object
  extended by java.lang.ClassLoader
      extended by org.drools.rule.MapBackedClassLoader
All Implemented Interfaces:
java.io.Serializable, DroolsClassLoader

public class MapBackedClassLoader
extends java.lang.ClassLoader
implements DroolsClassLoader, java.io.Serializable

See Also:
Serialized Form

Constructor Summary
MapBackedClassLoader(java.lang.ClassLoader parentClassLoader)
           
MapBackedClassLoader(java.lang.ClassLoader parentClassLoader, java.util.Map store)
           
 
Method Summary
 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()
           
protected  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, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getPackage, getPackages, getParent, getResource, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, resolveClass, 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)
Specified by:
fastFindClass in interface DroolsClassLoader

loadClass

protected 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()