com.adventnet.utilities.classloader
Class MultiClassLoader

java.lang.Object
  |
  +--java.lang.ClassLoader
        |
        +--com.adventnet.utilities.classloader.MultiClassLoader
Direct Known Subclasses:
FileClassLoader

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. Must be subclassed and the abstract method loadClassBytes() implemented to provide the preferred source. This class is derived from an article by Chuck McManis http://www.javaworld.com/javaworld/jw-10-1996/indepth.src.html with large modifications.


Inner classes inherited from class java.lang.ClassLoader
java.lang.ClassLoader.NativeLibrary
 
Field Summary
protected  boolean monitorOn
           
protected  boolean sourceMonitorOn
           
 
Fields inherited from class java.lang.ClassLoader
nocerts
 
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)
           
protected  void monitor(java.lang.String text)
           
protected static void print(java.lang.String text)
           
 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
, addClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findNative, findResource, findResources, findSystemClass, getBootstrapClassPath, getCallerClassLoader, getGetClassLoaderPerm, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, isAncestor, loadLibrary, resolveClass, setSigners
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

monitorOn

protected boolean monitorOn

sourceMonitorOn

protected boolean sourceMonitorOn
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)

monitor

protected void monitor(java.lang.String text)

print

protected static void print(java.lang.String text)