de.qfs.lib.util
Class ArchiveClassLoader
java.lang.Object
|
+--java.lang.ClassLoader
|
+--de.qfs.lib.util.ArchiveClassLoader
- public class ArchiveClassLoader
- extends java.lang.ClassLoader
An ArchiveClassLoader loads classes from a single source, a ZipFile or a
directory. Referenced classes will be loaded from the source, if possible,
or loaded via the system ClassLoader otherwise.
- Version:
- $Revision: 1.5 $
- Author:
- Gregor Schmid
Field Summary |
protected java.util.Hashtable |
classes
Cache for loaded classes. |
protected java.io.File |
dir
The directory holding the classes. |
protected java.util.zip.ZipFile |
zip
The ZipFile holding the classes. |
Constructor Summary |
ArchiveClassLoader(java.io.File dir)
Create a new ArchiveClassLoader that loads classes from a directory. |
ArchiveClassLoader(java.util.zip.ZipFile zip)
Create a new ArchiveClassLoader that loads classes from a ZipFile. |
Method Summary |
java.io.InputStream |
getResourceAsStream(java.lang.String name)
Find a resource in the classpath and open a stream for it. |
java.lang.Class |
loadClass(java.lang.String name)
Load and resolve a class. |
protected java.lang.Class |
loadClass(java.lang.String name,
boolean resolve)
Load a class and maybe resolve it. |
protected java.lang.Class |
makeSystemClass(java.lang.String name,
boolean resolve)
Get a system class and maybe resolve it. |
Methods inherited from class java.lang.ClassLoader |
defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getPackage, getPackages, getParent, getResource, 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 |
classes
protected java.util.Hashtable classes
- Cache for loaded classes.
zip
protected java.util.zip.ZipFile zip
- The ZipFile holding the classes.
dir
protected java.io.File dir
- The directory holding the classes.
ArchiveClassLoader
public ArchiveClassLoader(java.util.zip.ZipFile zip)
- Create a new ArchiveClassLoader that loads classes from a ZipFile.
- Parameters:
zip
- The ZipFile to read the classes from.
ArchiveClassLoader
public ArchiveClassLoader(java.io.File dir)
- Create a new ArchiveClassLoader that loads classes from a directory.
- Parameters:
dir
- The directory to read the classes from.
loadClass
public java.lang.Class loadClass(java.lang.String name)
throws java.lang.ClassNotFoundException
- Load and resolve a class.
- Overrides:
loadClass
in class java.lang.ClassLoader
- Parameters:
name
- The class' name.- Returns:
- The loaded class.
- Throws:
java.lang.ClassNotFoundException
- If no such class exists or some
IO problem occurs.
getResourceAsStream
public java.io.InputStream getResourceAsStream(java.lang.String name)
- Find a resource in the classpath and open a stream for it.
- Overrides:
getResourceAsStream
in class java.lang.ClassLoader
- Parameters:
name
- The name of the resource.- Returns:
- The stream.
loadClass
protected java.lang.Class loadClass(java.lang.String name,
boolean resolve)
throws java.lang.ClassNotFoundException
- Load a class and maybe resolve it.
- Overrides:
loadClass
in class java.lang.ClassLoader
- Parameters:
name
- The class' name.resolve
- Whether to resolve the class.- Returns:
- The loaded class.
- Throws:
java.lang.ClassNotFoundException
- If no such class exists or some
IO problem occurs.
makeSystemClass
protected java.lang.Class makeSystemClass(java.lang.String name,
boolean resolve)
throws java.lang.ClassNotFoundException
- Get a system class and maybe resolve it.
- Parameters:
name
- The class' name.resolve
- Whether to resolve the class.- Returns:
- The system class found.
- Throws:
java.lang.ClassNotFoundException
- If no such class exists or some
IO problem occurs.