bsh
Class ClassGenerator
java.lang.Object
bsh.ClassGenerator
- Direct Known Subclasses:
- ClassGeneratorImpl
- public abstract class ClassGenerator
- extends java.lang.Object
Method Summary |
abstract java.lang.Class |
generateClass(java.lang.String name,
Modifiers modifiers,
java.lang.Class[] interfaces,
java.lang.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 java.lang.Object |
invokeSuperclassMethod(BshClassManager bcm,
java.lang.Object instance,
java.lang.String methodName,
java.lang.Object[] args)
Invoke a super.method() style superclass method on an object instance. |
abstract void |
setInstanceNameSpaceParent(java.lang.Object instance,
java.lang.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 java.lang.Class generateClass(java.lang.String name,
Modifiers modifiers,
java.lang.Class[] interfaces,
java.lang.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 java.lang.Object invokeSuperclassMethod(BshClassManager bcm,
java.lang.Object instance,
java.lang.String methodName,
java.lang.Object[] args)
throws UtilEvalError,
bsh.ReflectError,
java.lang.reflect.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
java.lang.reflect.InvocationTargetException
setInstanceNameSpaceParent
public abstract void setInstanceNameSpaceParent(java.lang.Object instance,
java.lang.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.