bsh

Class ClassGenerator

Known Direct Subclasses:
ClassGeneratorImpl

public abstract class ClassGenerator
extends java.lang.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.

Method Details

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.

getClassGenerator

public static ClassGenerator getClassGenerator()
            throws UtilEvalError

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.

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-2005 pat@pat.net :-)