Package bsh

Class ClassGenerator


  • public final class ClassGenerator
    extends java.lang.Object
    • Constructor Summary

      Constructors 
      Constructor Description
      ClassGenerator()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method 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)
      Parse the BSHBlock for for the class definition and generate the class using ClassGenerator.
      static ClassGenerator getClassGenerator()  
      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 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()
      • 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
        Parse the BSHBlock for the class definition and generate the class.
        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
        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 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.
      • 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