|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object
|
+--org.omegahat.Environment.Compile.DynamicCompiler
|
+--org.omegahat.Environment.GUITools.EvaluableInterfaceGenerator
|
+--org.omegahat.Environment.Interpreter.CastFunctionCall
This class is used to invoke interpreted calls to
methods in a class other than the source object's own class,
implemented by dynamically generating byte-code to perform the call.
This is when evaluating objects of class
MethodCall
when the qualifier is of class
CastExpression.
The usual reflectance facilities won't work as the internal JVM
implementation of the Method.invoke method uses invokevirtual
| Field Summary | |
static int |
Counter
Counter for the number of times this class is utilized, providing a unique identifier for the newly generated class to avoid duplicate loading. |
static java.lang.String |
IntermediateMethodName
The name of the method in the newly generated intermediate class that performs the call of interest. |
protected java.lang.Object |
value
The value returned from the call of interest implemented by the class generated from an instance of this one. |
| Fields inherited from class org.omegahat.Environment.GUITools.EvaluableInterfaceGenerator |
interfaces, separator, signaturePrefix, signatureSuffix, useSuperClassConstructors |
| Fields inherited from class org.omegahat.Environment.Compile.DynamicCompiler |
BOTH, classDef, className, debug, GET, output, packageName, SET, superClassName |
| Fields inherited from interface jas.RuntimeConstants |
ACC_ABSTRACT, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_SUPER, ACC_SYNCHRONIZED, ACC_TRANSIENT, ACC_VOLATILE, CONSTANT_CLASS, CONSTANT_DOUBLE, CONSTANT_FIELD, CONSTANT_FLOAT, CONSTANT_INTEGER, CONSTANT_INTERFACEMETHOD, CONSTANT_LONG, CONSTANT_METHOD, CONSTANT_NAMEANDTYPE, CONSTANT_STRING, CONSTANT_UNICODE, CONSTANT_UTF8, JAVA_MAGIC, JAVA_MINOR_VERSION, JAVA_VERSION, opc_aaload, opc_aastore, opc_aconst_null, opc_aload, opc_aload_0, opc_aload_1, opc_aload_2, opc_aload_3, opc_anewarray, opc_areturn, opc_arraylength, opc_astore, opc_astore_0, opc_astore_1, opc_astore_2, opc_astore_3, opc_athrow, opc_baload, opc_bastore, opc_bipush, opc_breakpoint, opc_caload, opc_castore, opc_checkcast, opc_d2f, opc_d2i, opc_d2l, opc_dadd, opc_daload, opc_dastore, opc_dcmpg, opc_dcmpl, opc_dconst_0, opc_dconst_1, opc_ddiv, opc_dead, opc_dload, opc_dload_0, opc_dload_1, opc_dload_2, opc_dload_3, opc_dmul, opc_dneg, opc_drem, opc_dreturn, opc_dstore, opc_dstore_0, opc_dstore_1, opc_dstore_2, opc_dstore_3, opc_dsub, opc_dup, opc_dup_x1, opc_dup_x2, opc_dup2, opc_dup2_x1, opc_dup2_x2, opc_f2d, opc_f2i, opc_f2l, opc_fadd, opc_faload, opc_fastore, opc_fcmpg, opc_fcmpl, opc_fconst_0, opc_fconst_1, opc_fconst_2, opc_fdiv, opc_fload, opc_fload_0, opc_fload_1, opc_fload_2, opc_fload_3, opc_fmul, opc_fneg, opc_frem, opc_freturn, opc_fstore, opc_fstore_0, opc_fstore_1, opc_fstore_2, opc_fstore_3, opc_fsub, opc_getfield, opc_getstatic, opc_goto, opc_goto_w, opc_i2b, opc_i2c, opc_i2d, opc_i2f, opc_i2l, opc_i2s, opc_iadd, opc_iaload, opc_iand, opc_iastore, opc_iconst_0, opc_iconst_1, opc_iconst_2, opc_iconst_3, opc_iconst_4, opc_iconst_5, opc_iconst_m1, opc_idiv, opc_if_acmpeq, opc_if_acmpne, opc_if_icmpeq, opc_if_icmpge, opc_if_icmpgt, opc_if_icmple, opc_if_icmplt, opc_if_icmpne, opc_ifeq, opc_ifge, opc_ifgt, opc_ifle, opc_iflt, opc_ifne, opc_ifnonnull, opc_ifnull, opc_iinc, opc_iload, opc_iload_0, opc_iload_1, opc_iload_2, opc_iload_3, opc_imul, opc_ineg, opc_instanceof, opc_int2byte, opc_int2char, opc_int2short, opc_invokeinterface, opc_invokenonvirtual, opc_invokespecial, opc_invokestatic, opc_invokevirtual, opc_ior, opc_irem, opc_ireturn, opc_ishl, opc_ishr, opc_istore, opc_istore_0, opc_istore_1, opc_istore_2, opc_istore_3, opc_isub, opc_iushr, opc_ixor, opc_jsr, opc_jsr_w, opc_l2d, opc_l2f, opc_l2i, opc_label, opc_ladd, opc_laload, opc_land, opc_lastore, opc_lcmp, opc_lconst_0, opc_lconst_1, opc_ldc, opc_ldc_w, opc_ldc2_w, opc_ldiv, opc_lload, opc_lload_0, opc_lload_1, opc_lload_2, opc_lload_3, opc_lmul, opc_lneg, opc_lookupswitch, opc_lor, opc_lrem, opc_lreturn, opc_lshl, opc_lshr, opc_lstore, opc_lstore_0, opc_lstore_1, opc_lstore_2, opc_lstore_3, opc_lsub, opc_lushr, opc_lxor, opc_monitorenter, opc_monitorexit, opc_multianewarray, opc_new, opc_newarray, opc_nop, opc_pop, opc_pop2, opc_putfield, opc_putstatic, opc_ret, opc_return, opc_saload, opc_sastore, opc_sipush, opc_swap, opc_tableswitch, opc_try, opc_wide, opc_xxxunusedxxx, opcLengths, opcNames, T_BOOLEAN, T_BYTE, T_CHAR, T_CLASS, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT |
| Constructor Summary | |
CastFunctionCall(java.lang.reflect.Method method,
java.lang.Object source,
java.lang.Object[] args,
Evaluator evaluator,
boolean call)
|
|
CastFunctionCall(java.lang.reflect.Method method,
java.lang.Object source,
java.lang.Object[] args,
Evaluator evaluator,
boolean call,
java.lang.String superClass)
|
|
| Method Summary | |
java.lang.Object |
callMethod(java.lang.String methodName,
java.lang.Object source,
java.lang.Object[] realArgs,
Evaluator evaluator)
|
void |
makeClass(java.lang.reflect.Method m)
|
boolean |
makeMethod(java.lang.reflect.Method method)
Creates the static method in the new class which performs the actual call of interest to the target class. |
java.lang.Object |
value()
|
java.lang.Object |
value(java.lang.Object value)
|
| Methods inherited from class org.omegahat.Environment.GUITools.EvaluableInterfaceGenerator |
addConstructor, addConstructors, addDispatchCall, addInterface, addMethod, addTarget, addTarget, createArgumentList, createArgumentList, createArgumentList, createArgumentList, derivedClassName, getStackSize, init, interfaces, make, make, numLocalVariables, separator, superClassConstructors, superClassConstructors |
| Methods inherited from class org.omegahat.Environment.Compile.DynamicCompiler |
accessorBody, accessorBody, addConstructor, addField, addField, addField, addField, addField, addField, addFieldAccessors, addFieldAccessors, addFieldAccessors, addInheritedConstructors, addReturn, addReturn, classDef, classDef, className, className, className, className, Debug, Debug, file, file, findClass, findClass, initClassDef, loadCode, mapPrimitive, packageName, packageName, primitiveLoadOp, primitiveToClass, returnPrimitive, returnPrimitive, superClassName, superClassName, warning, write, write, write, write, write |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
public static int Counter
public static java.lang.String IntermediateMethodName
protected java.lang.Object value
| Constructor Detail |
public CastFunctionCall(java.lang.reflect.Method method,
java.lang.Object source,
java.lang.Object[] args,
Evaluator evaluator,
boolean call)
throws java.lang.Exception
public CastFunctionCall(java.lang.reflect.Method method,
java.lang.Object source,
java.lang.Object[] args,
Evaluator evaluator,
boolean call,
java.lang.String superClass)
throws java.lang.Exception
| Method Detail |
public void makeClass(java.lang.reflect.Method m)
public boolean makeMethod(java.lang.reflect.Method method)
public java.lang.Object callMethod(java.lang.String methodName,
java.lang.Object source,
java.lang.Object[] realArgs,
Evaluator evaluator)
throws java.lang.Exception
public java.lang.Object value()
public java.lang.Object value(java.lang.Object value)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||