Package bsh
Class ClassGenerator
java.lang.Object
bsh.ClassGenerator
- Direct Known Subclasses:
ClassGeneratorImpl
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract ClassgenerateClass(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 ClassGeneratorabstract ObjectinvokeSuperclassMethod(BshClassManager bcm, Object instance, String methodName, Object[] args) Invoke a super.method() style superclass method on an object instance.abstract voidsetInstanceNameSpaceParent(Object instance, String className, NameSpace parent) Change the parent of the class instance namespace.
-
Constructor Details
-
ClassGenerator
public ClassGenerator()
-
-
Method Details
-
getClassGenerator
- 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:
UtilEvalErrorbsh.ReflectErrorInvocationTargetException
-
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.
-