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 CompiledMethodRef_1 extends CompiledMethodRef { 44 private static final Logger log 45 = Logger.getLogger(CompiledMethodRef_1.class.getName()); 46 private static final L10N L = new L10N(CompiledMethodRef_1.class); 47 48 private String _name; 49 private Expr _default_0; 50 51 public CompiledMethodRef_1(String name, Expr default_0) 52 { 53 _name = name; 54 _default_0 = default_0; 55 } 56 57 63 public Expr []bindArguments(Env env, Expr fun, Expr []args) 64 { 65 if (args.length != 1) 66 env.warning(L.l("incorrect")); 67 68 return args; 69 } 70 71 74 public Value callMethodRef(Env env, Value obj, Value []argValues) 75 { 76 switch (argValues.length) { 77 case 0: 78 return callMethodRef(env, obj, _default_0.eval(env)); 79 case 1: 80 default: 81 return callMethodRef(env, obj, argValues[0]); 82 } 83 } 84 85 abstract public Value callMethodRef(Env env, Value obj, Value a1); 86 87 90 public Value call(Env env, Value []argValues) 91 { 92 env.warning(L.l("can't call '{0}' as a static function", _name)); 93 94 return NullValue.NULL; 95 } 96 97 public String toString() 98 { 99 return "CompiledFunction_1[" + _name + "]"; 100 } 101 } 102 103 | Popular Tags |