1 29 30 package com.caucho.quercus.env; 31 32 import com.caucho.quercus.program.AbstractFunction; 33 import com.caucho.vfs.WriteStream; 34 35 import java.io.IOException ; 36 import java.util.IdentityHashMap ; 37 38 41 public class CallbackObjectMethod extends Callback { 42 private final Value _obj; 43 private final String _methodName; 44 private final AbstractFunction _fun; 45 46 public CallbackObjectMethod(Env env, Value obj, String methodName) 47 { 48 _obj = obj; 49 _methodName = methodName.intern(); 50 _fun = env.findMethod(_obj.getClassName(), _methodName); 52 } 53 54 59 public Value call(Env env) 60 { 61 return _obj.callMethod(env, _methodName); 62 } 63 64 69 public Value call(Env env, Value a1) 70 { 71 return _obj.callMethod(env, _methodName, a1); 72 } 73 74 79 public Value call(Env env, Value a1, Value a2) 80 { 81 return _obj.callMethod(env, _methodName, a1, a2); 82 } 83 84 89 public Value call(Env env, Value a1, Value a2, Value a3) 90 { 91 return _obj.callMethod(env, _methodName, a1, a2, a3); 92 } 93 94 99 public Value call(Env env, Value a1, Value a2, Value a3, 100 Value a4) 101 { 102 return _obj.callMethod(env, _methodName, a1, a2, a3, a4); 103 } 104 105 110 public Value call(Env env, Value a1, Value a2, Value a3, 111 Value a4, Value a5) 112 { 113 return _obj.callMethod(env, _methodName, a1, a2, a3, a4, a5); 114 } 115 116 public Value call(Env env, Value []args) 117 { 118 return _obj.callMethod(env, _methodName, args); 119 } 120 121 public void varDumpImpl(Env env, 122 WriteStream out, 123 int depth, 124 IdentityHashMap <Value, String > valueSet) 125 throws IOException 126 { 127 out.print(getClass().getName()); 128 out.print('['); 129 out.print(_methodName); 130 out.print(']'); 131 } 132 133 public boolean isValid() 135 { 136 return true; 137 } 138 139 public String getCallbackName() 140 { 141 return _methodName; 142 } 143 144 public boolean isInternal() 145 { 146 return _fun instanceof JavaInvoker; 147 } 148 } 149 | Popular Tags |