1 29 30 package com.caucho.quercus.env; 31 32 import com.caucho.quercus.program.AbstractFunction; 33 34 37 public class CallbackFunction extends Callback { 38 40 private Env _env; 41 private String _funName; 42 43 private AbstractFunction _fun; 44 45 47 public CallbackFunction(Env env, String funName) 48 { 49 _env = env; 50 _funName = funName; 51 } 52 53 public CallbackFunction(AbstractFunction fun) 54 { 55 _fun = fun; 56 } 57 58 public CallbackFunction(AbstractFunction fun, String funName) 59 { 60 _fun = fun; 61 _funName = funName; 62 } 63 70 71 74 protected void setFunction(AbstractFunction fun) 75 { 76 _fun = fun; 77 } 78 79 public boolean isValid() 80 { 81 if (_fun != null) 82 return true; 83 84 return _env.findFunction(_funName) != null; 85 86 } 88 89 94 public Value call(Env env) 95 { 96 return getFunction().call(env); 97 } 98 99 104 public Value call(Env env, Value a1) 105 { 106 return getFunction().call(env, a1); 107 } 108 109 114 public Value call(Env env, Value a1, Value a2) 115 { 116 return getFunction().call(env, a1, a2); 117 } 118 119 124 public Value call(Env env, Value a1, Value a2, Value a3) 125 { 126 return getFunction().call(env, a1, a2, a3); 127 } 128 129 134 public Value call(Env env, Value a1, Value a2, Value a3, 135 Value a4) 136 { 137 return getFunction().call(env, a1, a2, a3, a4); 138 } 139 140 145 public Value call(Env env, Value a1, Value a2, Value a3, 146 Value a4, Value a5) 147 { 148 return getFunction().call(env, a1, a2, a3, a4, a5); 149 } 150 151 public Value call(Env env, Value []args) 152 { 153 return getFunction().call(env, args); 154 } 155 156 public String getFunctionName() 157 { 158 return _funName; 159 } 160 161 public String getCallbackName() 162 { 163 return _funName; 164 } 165 166 public AbstractFunction getFunction() 167 { 168 if (_fun == null) 169 _fun = _env.getFunction(_funName); 170 171 return _fun; 172 } 173 174 public String toString() 175 { 176 return getClass().getName() + '[' + _funName + ']'; 177 } 178 179 public boolean isInternal() 180 { 181 return getFunction() instanceof JavaInvoker; 182 } 183 } 184 | Popular Tags |