## bsh
Class ClassGeneratorImpl

    java.lang.Object
      bsh.ClassGenerator
          bsh.ClassGeneratorImpl

public class ClassGeneratorImpl
extends ClassGenerator

Author:
  Pat Niemeyer (pat@pat.net)

Constructor Summary
`ClassGeneratorImpl()`

Method Summary
`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 java.lang.Class` `generateClassImpl(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 for the class definition and generate the class using ClassGenerator.
`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.
`static java.lang.Object` `invokeSuperclassMethodImpl(BshClassManager bcm, java.lang.Object instance, java.lang.String methodName, java.lang.Object[] args)`
`void` `setInstanceNameSpaceParent(java.lang.Object instance, java.lang.String className, NameSpace parent)` Change the parent of the class instance namespace.

Methods inherited from class bsh.ClassGenerator
`getClassGenerator`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### ClassGeneratorImpl

    public ClassGeneratorImpl()

Method Detail

### generateClass

    public 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

  Description copied from class: `ClassGenerator`
  Parse the BSHBlock for the class definition and generate the class.

  Specified by:
    `generateClass` in class `ClassGenerator`
  Throws:
    `EvalError`

### invokeSuperclassMethod

    public 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

  Description copied from class: `ClassGenerator`
  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.

  Specified by:
    `invokeSuperclassMethod` in class `ClassGenerator`
  Throws:
    `UtilEvalError`
    `bsh.ReflectError`
    `java.lang.reflect.InvocationTargetException`

### setInstanceNameSpaceParent

    public 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.

  Specified by:
    `setInstanceNameSpaceParent` in class `ClassGenerator`

### generateClassImpl

    public static java.lang.Class generateClassImpl(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 for the class definition and generate the class using ClassGenerator.

  Throws:
    `EvalError`

### invokeSuperclassMethodImpl

    public static java.lang.Object invokeSuperclassMethodImpl(BshClassManager bcm,
                                                              java.lang.Object instance,
                                                              java.lang.String methodName,
                                                              java.lang.Object[] args)
                                                       throws UtilEvalError,
                                                              bsh.ReflectError,
                                                              java.lang.reflect.InvocationTargetException

  Throws:
    `UtilEvalError`
    `bsh.ReflectError`
    `java.lang.reflect.InvocationTargetException`