1 29 30 package com.caucho.quercus.env; 31 32 import java.io.IOException ; 33 34 import java.lang.annotation.Annotation ; 35 import java.lang.reflect.InvocationTargetException ; 36 37 import com.caucho.quercus.Quercus; 38 import com.caucho.quercus.QuercusException; 39 import com.caucho.quercus.expr.DefaultExpr; 40 import com.caucho.quercus.expr.Expr; 41 import com.caucho.quercus.program.AbstractFunction; 42 import com.caucho.util.L10N; 43 44 47 abstract public class AbstractJavaMethod extends AbstractFunction 48 { 49 private static final L10N L = new L10N(AbstractJavaMethod.class); 50 51 private static final Object [] NULL_ARGS = new Object [0]; 52 private static final Value [] NULL_VALUES = new Value[0]; 53 54 public Value call(Env env, Value []value) 55 { 56 return call(env, env.getThis(), value); 57 } 58 59 63 public Value callCopy(Env env, Value []args) 64 { 65 return call(env, args); 66 } 67 68 public Value call(Env env, Value obj, Value []value) 69 { 70 return call(env, obj.toJavaObject(), value); 71 } 72 73 abstract public Value call(Env env, Object obj, Expr []args); 74 75 abstract public Value call(Env env, Object obj, Value []args); 76 77 public Value call(Env env, Object obj) 78 { 79 return call(env, obj, new Value[0]); 80 } 81 82 public Value call(Env env, Object obj, Value a1) 83 { 84 return call(env, obj, new Value[]{a1}); 85 } 86 87 public Value call(Env env, Object obj, Value a1, Value a2) 88 { 89 return call(env, obj, new Value[]{a1, a2}); 90 } 91 92 public Value call(Env env, Object obj, Value a1, Value a2, Value a3) 93 { 94 return call(env, obj, new Value[]{a1, a2, a3}); 95 } 96 97 public Value call(Env env, Object obj, 98 Value a1, Value a2, Value a3, Value a4) 99 { 100 return call(env, obj, new Value[]{a1, a2, a3, a4}); 101 } 102 103 public Value call(Env env, Object obj, 104 Value a1, Value a2, Value a3, Value a4, Value a5) 105 { 106 return call(env, obj, new Value[]{a1, a2, a3, a4, a5}); 107 } 108 } 109 | Popular Tags |