bsh
Class ClassGenerator

java.lang.Object
  extended bybsh.ClassGenerator
Direct Known Subclasses:
ClassGeneratorImpl

public abstract class ClassGenerator
extends java.lang.Object


Constructor Summary
ClassGenerator()
           
 
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
 

Constructor Detail

ClassGenerator

public ClassGenerator()
Method Detail

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.