1 29 30 package com.caucho.quercus.program; 31 32 import com.caucho.quercus.env.Env; 33 import com.caucho.quercus.env.Value; 34 import com.caucho.quercus.expr.Expr; 35 import com.caucho.util.L10N; 36 37 import java.util.logging.Logger ; 38 39 42 abstract public class CompiledMethod_2 extends CompiledMethod { 43 private static final Logger log 44 = Logger.getLogger(CompiledMethod_2.class.getName()); 45 private static final L10N L = new L10N(CompiledMethod_2.class); 46 47 private String _name; 48 private Expr _default_0; 49 private Expr _default_1; 50 51 public CompiledMethod_2(String name, Expr default_0, Expr default_1) 52 { 53 _name = name; 54 _default_0 = default_0; 55 _default_1 = default_1; 56 } 57 58 64 public Expr []bindArguments(Env env, Expr fun, Expr []args) 65 { 66 if (args.length > 2) 67 env.warning(L.l("incorrect number of arguments {0}, expected 2", 68 args.length)); 69 70 return args; 71 } 72 73 76 public Value callMethod(Env env, Value obj, Value []argValues) 77 { 78 switch (argValues.length) { 79 case 0: 80 return callMethod(env, obj, _default_0.eval(env), _default_1.eval(env)); 81 case 1: 82 return callMethod(env, obj, argValues[0], _default_1.eval(env)); 83 case 2: 84 default: 85 return callMethod(env, obj, argValues[0], argValues[1]); 86 } 87 } 88 89 92 public Value callMethod(Env env, Value obj) 93 { 94 return callMethod(env, obj, _default_0.eval(env), _default_1.eval(env)); 95 } 96 97 100 public Value callMethod(Env env, Value obj, Value a0) 101 { 102 return callMethod(env, obj, a0, _default_1.eval(env)); 103 } 104 105 abstract public Value callMethod(Env env, Value obj, Value a1, Value a2); 106 107 public String toString() 108 { 109 return "CompiledMethod_2[" + _name + "]"; 110 } 111 } 112 113 | Popular Tags |