Top Description Inners Constructors Methods
bsh

public Class ClassGeneratorImpl

extends ClassGenerator
Class Inheritance
Imports
java.io.*, java.util.*, java.lang.reflect.InvocationTargetException, .Method

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 ([email protected])

Nested and Inner Type Summary

Modifier and TypeClass and Description
pack-priv static class
ClassGeneratorImpl.ClassNodeFilter

A node filter that filters nodes for either a class body static initializer or instance initializer.

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private static void
debugClasses(String className, byte[] code)

public Class<T>
generateClass(String name, Modifiers modifiers, Class<T>[] interfaces, Class<T> superClass, BSHBlock block, boolean isInterface, CallStack callstack, Interpreter interpreter)

Implements abstract bsh.ClassGenerator.generateClass.

Parse the BSHBlock for the class definition and generate the class.
public static Class<T>
generateClassImpl(String name, Modifiers modifiers, Class<T>[] interfaces, Class<T> superClass, BSHBlock block, boolean isInterface, CallStack callstack, Interpreter interpreter)

Parse the BSHBlock for for the class definition and generate the class using ClassGenerator.

pack-priv static DelayedEvalBshMethod[]
getDeclaredMethods(BSHBlock body, CallStack callstack, Interpreter interpreter, String defaultPackage)

pack-priv static Variable[]
getDeclaredVariables(BSHBlock body, CallStack callstack, Interpreter interpreter, String defaultPackage)

private static Class<T>
getExistingGeneratedClass(BshClassManager bcm, String fqClassName, String bshStaticFieldName)

public Object
invokeSuperclassMethod(BshClassManager bcm, Object instance, String methodName, Object[] args)

Implements abstract bsh.ClassGenerator.invokeSuperclassMethod.

Invoke a super.method() style superclass method on an object instance.
public static Object
invokeSuperclassMethodImpl(BshClassManager bcm, Object instance, String methodName, Object[] args)

public void
setInstanceNameSpaceParent(Object instance, String className, NameSpace parent)

Implements abstract bsh.ClassGenerator.setInstanceNameSpaceParent.

Change the parent of the class instance namespace.
Inherited from bsh.ClassGenerator:
getClassGenerator

Constructor Detail

ClassGeneratorImplback to summary
public ClassGeneratorImpl()

Method Detail

debugClassesback to summary
private static void debugClasses(String className, byte[] code)
generateClassback to summary
public Class<T> generateClass(String name, Modifiers modifiers, Class<T>[] interfaces, Class<T> superClass, BSHBlock block, boolean isInterface, CallStack callstack, Interpreter interpreter) throws EvalError

Implements abstract bsh.ClassGenerator.generateClass.

Doc from bsh.ClassGenerator.generateClass.

Parse the BSHBlock for the class definition and generate the class.

generateClassImplback to summary
public static Class<T> generateClassImpl(String name, Modifiers modifiers, Class<T>[] interfaces, Class<T> superClass, BSHBlock block, boolean isInterface, CallStack callstack, Interpreter interpreter) throws EvalError

Parse the BSHBlock for for the class definition and generate the class using ClassGenerator.

getDeclaredMethodsback to summary
pack-priv static DelayedEvalBshMethod[] getDeclaredMethods(BSHBlock body, CallStack callstack, Interpreter interpreter, String defaultPackage) throws EvalError
getDeclaredVariablesback to summary
pack-priv static Variable[] getDeclaredVariables(BSHBlock body, CallStack callstack, Interpreter interpreter, String defaultPackage)
getExistingGeneratedClassback to summary
private static Class<T> getExistingGeneratedClass(BshClassManager bcm, String fqClassName, String bshStaticFieldName)
invokeSuperclassMethodback to summary
public Object invokeSuperclassMethod(BshClassManager bcm, Object instance, String methodName, Object[] args) throws UtilEvalError, ReflectError, InvocationTargetException

Implements abstract bsh.ClassGenerator.invokeSuperclassMethod.

Doc from bsh.ClassGenerator.invokeSuperclassMethod.

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.

invokeSuperclassMethodImplback to summary
public static Object invokeSuperclassMethodImpl(BshClassManager bcm, Object instance, String methodName, Object[] args) throws UtilEvalError, ReflectError, InvocationTargetException
setInstanceNameSpaceParentback to summary
public void setInstanceNameSpaceParent(Object instance, String className, NameSpace parent)

Implements abstract bsh.ClassGenerator.setInstanceNameSpaceParent.

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.

bsh back to summary

pack-priv Class ClassGeneratorImpl.ClassNodeFilter

extends Object
implements NodeFilter
Class Inheritance
All Implemented Interfaces
bsh.BSHBlock.NodeFilter

A node filter that filters nodes for either a class body static initializer or instance initializer. In the static case only static members are passed, etc.

Field Summary

Modifier and TypeField and Description
public static ClassGeneratorImpl.ClassNodeFilter
public static final int
public static ClassGeneratorImpl.ClassNodeFilter
public static ClassGeneratorImpl.ClassNodeFilter
pack-priv int
public static final int
public static final int

Constructor Summary

AccessConstructor and Description
private
ClassNodeFilter(int context)

Method Summary

Modifier and TypeMethod and Description
pack-priv boolean
public boolean
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

CLASSCLASSESback to summary
public static ClassGeneratorImpl.ClassNodeFilter CLASSCLASSES
CLASSESback to summary
public static final int CLASSES
CLASSINSTANCEback to summary
public static ClassGeneratorImpl.ClassNodeFilter CLASSINSTANCE
CLASSSTATICback to summary
public static ClassGeneratorImpl.ClassNodeFilter CLASSSTATIC
contextback to summary
pack-priv int context
INSTANCEback to summary
public static final int INSTANCE
STATICback to summary
public static final int STATIC

Constructor Detail

ClassNodeFilterback to summary
private ClassNodeFilter(int context)

Method Detail

isStaticback to summary
pack-priv boolean isStatic(SimpleNode node)
isVisibleback to summary
public boolean isVisible(SimpleNode node)

Implements bsh.BSHBlock.NodeFilter.isVisible.