|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.lang.ClassLoader
com.futureshocked.classloader.DebuggerClassLoader
public class DebuggerClassLoader
ClassLoader that allows for easy debugging of classes.
Field Summary | |
---|---|
protected java.lang.ClassLoader |
cl
The parent ClassLoader for this object - very important! |
protected ClassTransforms |
ct
ClassTransforms object that contains all InterceptedMethod
objects. |
protected boolean |
verbose
true if debugging information should be printed. |
Constructor Summary | |
---|---|
DebuggerClassLoader(java.lang.ClassLoader cl)
Simple constructor that makes an empty ClassTransforms and sets
verbose to false. |
|
DebuggerClassLoader(java.lang.ClassLoader cl,
ClassTransforms ct,
boolean verbose)
Full constructor that allows all instance variables to be set. |
Method Summary | |
---|---|
private java.lang.Class |
defineClass(java.lang.String name,
boolean modify)
Defines a class, after using DebuggerClassVisitor if appropriate. |
java.lang.Class<?> |
loadClass(java.lang.String name,
boolean resolve)
Loads the requested class if it's not currently loaded, or returns the already loaded instance if appropriate. This method declaration is Java 1.5 specific... |
private java.lang.Class |
useSystemDefine(java.lang.String className,
byte[] bytecode)
A hack to use reflection to modify java system classes. This is almost certainly a BAD IDEA, and should be used with caution. |
Methods inherited from class java.lang.ClassLoader |
---|
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getPackage, getPackages, getParent, getResource, getResourceAsStream, 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 |
Field Detail |
---|
protected final java.lang.ClassLoader cl
protected ClassTransforms ct
ClassTransforms
object that contains all InterceptedMethod
objects.
protected boolean verbose
Constructor Detail |
---|
public DebuggerClassLoader(java.lang.ClassLoader cl)
ClassTransforms
and sets
verbose to false.
cl
- The parent ClassLoader for this object - do not set
to null!public DebuggerClassLoader(java.lang.ClassLoader cl, ClassTransforms ct, boolean verbose)
cl
- The parent ClassLoader for this object - do not set
to null!ct
- ClassTransforms
that holds all InterceptedMethod
objectsverbose
- true if debugging information should be displayed.Method Detail |
---|
public java.lang.Class<?> loadClass(java.lang.String name, boolean resolve) throws java.lang.ClassNotFoundException
loadClass
in class java.lang.ClassLoader
name
- The name of the class to be loaded.resolve
- ignored currently
java.lang.ClassNotFoundException
private java.lang.Class defineClass(java.lang.String name, boolean modify) throws java.lang.ClassNotFoundException
DebuggerClassVisitor
if appropriate.
name
- The name of the class to load and define.modify
- true if we are going to transform this class.
java.lang.ClassNotFoundException
private java.lang.Class useSystemDefine(java.lang.String className, byte[] bytecode)
className
- Name of class to be loaded.bytecode
- The bytecode representing the class.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |