1 29 30 package com.caucho.quercus.program; 31 32 import com.caucho.quercus.env.Env; 33 import com.caucho.quercus.env.NullValue; 34 import com.caucho.quercus.env.Value; 35 import com.caucho.quercus.expr.Expr; 36 import com.caucho.util.L10N; 37 38 import java.util.logging.Logger ; 39 40 43 abstract public class CompiledRefMethod_0 extends CompiledMethodRef { 44 private static final Logger log 45 = Logger.getLogger(CompiledRefMethod_0.class.getName()); 46 private static final L10N L = new L10N(CompiledRefMethod_0.class); 47 48 private String _name; 49 50 public CompiledRefMethod_0(String name) 51 { 52 _name = name; 53 } 54 55 61 public Expr []bindArguments(Env env, Expr fun, Expr []args) 62 { 63 if (args.length != 0) 64 env.warning(L.l("too many arguments")); 65 66 return args; 67 } 68 69 public Value callMethod(Env env, Value obj, Value []argValues) 70 { 71 return callMethodRef(env, obj, argValues).copy(); 72 } 73 74 77 public Value callMethodRef(Env env, Value obj, Value []argValues) 78 { 79 if (argValues.length > 0) 80 env.warning(L.l("too many arguments in {0}", _name)); 81 82 return callMethodRef(env, obj); 83 } 84 85 88 public Value call(Env env, Value []argValues) 89 { 90 env.error(L.l("can't call {0} as a static function", 91 _name)); 92 93 return NullValue.NULL; 94 } 95 96 99 public Value callMethod(Env env) 100 { 101 return callMethodRef(env).copy(); 102 } 103 104 107 abstract public Value callMethodRef(Env env); 108 109 public String toString() 110 { 111 return "CompiledMethod_0[" + _name + "]"; 112 } 113 } 114 115 | Popular Tags |