ClassGeneratorImpl (BeanShell 2.0b6)
Date: 2016-09-25

bsh

## Class ClassGeneratorImpl

- java.lang.Object
- - bsh.ClassGenerator
  - - bsh.ClassGeneratorImpl

-     public class ClassGeneratorImpl
      extends ClassGenerator

  This class is an implementation of the ClassGenerator interface which contains generally bsh related code. The actual bytecode generation is done by ClassGeneratorUtil.
  Author:
    Pat Niemeyer (pat@pat.net)

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ClassGeneratorImpl()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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)` If necessary, parse the BSHBlock for for the class definition and generate the class using ClassGeneratorUtil.
    `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

      If necessary, parse the BSHBlock for for the class definition and generate the class using ClassGeneratorUtil. This method also initializes the static block namespace and sets it in the class.
      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`

? 2000-2005 pat@pat.net :-)