org.opencyc.javashell
Class MultiClassLoader

java.lang.Object
  |
  +--java.lang.ClassLoader
        |
        +--org.opencyc.javashell.MultiClassLoader
Direct Known Subclasses:
JarClassLoader

public abstract class MultiClassLoader
extends java.lang.ClassLoader

A simple test class loader capable of loading from multiple sources, such as local files or a URL.

This class is derived from an article by Chuck McManis http://www.javaworld.com/javaworld/jw-10-1996/indepth.src.html with large modifications.

Note that this has been updated to use the non-deprecated version of defineClass() -- JDM.

Simplified by siege on 4-27-01

Author:
Jack Harich - 8/18/97, John D. Mitchell - 99.03.04, Siege - 2001.04.26

Constructor Summary
MultiClassLoader()
           
 
Method Summary
protected  java.lang.String formatClassName(java.lang.String className)
           
 java.lang.Class loadClass(java.lang.String className)
          This is a simple version for external clients since they will always want the class resolved before it is returned to them.
 java.lang.Class loadClass(java.lang.String className, boolean resolveIt)
           
protected abstract  byte[] loadClassBytes(java.lang.String className)
           
 void setClassNameReplacementChar(char replacement)
          This optional call allows a class name such as "COM.test.Hello" to be changed to "COM_test_Hello", which is useful for storing classes from different packages in the same retrival directory.
 
Methods inherited from class java.lang.ClassLoader
defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, resolveClass, setSigners
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MultiClassLoader

public MultiClassLoader()
Method Detail

loadClass

public java.lang.Class loadClass(java.lang.String className)
                          throws java.lang.ClassNotFoundException
This is a simple version for external clients since they will always want the class resolved before it is returned to them.
Overrides:
loadClass in class java.lang.ClassLoader

loadClass

public java.lang.Class loadClass(java.lang.String className,
                                 boolean resolveIt)
                          throws java.lang.ClassNotFoundException
Overrides:
loadClass in class java.lang.ClassLoader

setClassNameReplacementChar

public void setClassNameReplacementChar(char replacement)
This optional call allows a class name such as "COM.test.Hello" to be changed to "COM_test_Hello", which is useful for storing classes from different packages in the same retrival directory. In the above example the char would be '_'.

loadClassBytes

protected abstract byte[] loadClassBytes(java.lang.String className)

formatClassName

protected java.lang.String formatClassName(java.lang.String className)