bsh
Class ClassGenerator
java.lang.Object
bsh.ClassGenerator
- Direct Known Subclasses:
- ClassGeneratorImpl
- public abstract class ClassGenerator
- extends Object
Method Summary |
abstract Class |
generateClass(String name,
Modifiers modifiers,
Class[] interfaces,
Class superClass,
bsh.BSHBlock block,
boolean isInterface,
CallStack callstack,
Interpreter interpreter)
Parse the BSHBlock for the class definition and generate the class. |
static ClassGenerator |
getClassGenerator()
|
abstract Object |
invokeSuperclassMethod(BshClassManager bcm,
Object instance,
String methodName,
Object[] args)
Invoke a super.method() style superclass method on an object instance. |
abstract void |
setInstanceNameSpaceParent(Object instance,
String className,
NameSpace parent)
Change the parent of the class instance namespace. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ClassGenerator
public ClassGenerator()
getClassGenerator
public static ClassGenerator getClassGenerator()
throws UtilEvalError
- Throws:
UtilEvalError
generateClass
public abstract Class generateClass(String name,
Modifiers modifiers,
Class[] interfaces,
Class superClass,
bsh.BSHBlock block,
boolean isInterface,
CallStack callstack,
Interpreter interpreter)
throws EvalError
- Parse the BSHBlock for the class definition and generate the class.
- Throws:
EvalError
invokeSuperclassMethod
public abstract Object invokeSuperclassMethod(BshClassManager bcm,
Object instance,
String methodName,
Object[] args)
throws UtilEvalError,
bsh.ReflectError,
InvocationTargetException
- Invoke a super.method() style superclass method on an object instance.
This is not a normal function of the Java reflection API and is
provided by generated class accessor methods.
- Throws:
UtilEvalError
bsh.ReflectError
InvocationTargetException
setInstanceNameSpaceParent
public abstract void setInstanceNameSpaceParent(Object instance,
String className,
NameSpace parent)
- Change the parent of the class instance namespace.
This is currently used for inner class support.
Note: This method will likely be removed in the future.
© 2000 pat@pat.net :-)