org.gjt.sp.jedit.bsh

## Class ClassGenerator

- java.lang.Object
- - org.gjt.sp.jedit.bsh.ClassGenerator

Direct Known Subclasses:
  ClassGeneratorImpl

    public abstract class ClassGenerator
    extends java.lang.Object

### Constructor Summary

Constructors
Constructor and Description
`ClassGenerator()`

### Method Summary

Methods
`abstract java.lang.Class` `generateClass(java.lang.String name, Modifiers modifiers, java.lang.Class[] interfaces, java.lang.Class superClass, org.gjt.sp.jedit.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,
                                org.gjt.sp.jedit.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,
                                                            org.gjt.sp.jedit.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`
  `org.gjt.sp.jedit.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.