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_3 extends CompiledMethod { 43 private static final Logger log 44 = Logger.getLogger(CompiledMethod_3.class.getName()); 45 private static final L10N L = new L10N(CompiledMethod_3.class); 46 47 private String _name; 48 private Expr _default_0; 49 private Expr _default_1; 50 private Expr _default_2; 51 52 public CompiledMethod_3(String name, 53 Expr default_0, 54 Expr default_1, 55 Expr default_2) 56 { 57 _name = name; 58 _default_0 = default_0; 59 _default_1 = default_1; 60 _default_2 = default_2; 61 } 62 63 69 public Expr []bindArguments(Env env, Expr fun, Expr []args) 70 { 71 if (args.length != 3) 72 env.warning(L.l("incorrect")); 73 74 return args; 75 } 76 77 80 public Value callMethod(Env env, Value obj, Value []argValues) 81 { 82 switch (argValues.length) { 83 case 0: 84 return callMethod(env, 85 obj, 86 _default_0.eval(env), 87 _default_1.eval(env), 88 _default_2.eval(env)); 89 case 1: 90 return callMethod(env, 91 obj, 92 argValues[0], 93 _default_1.eval(env), 94 _default_2.eval(env)); 95 case 2: 96 return callMethod(env, 97 obj, 98 argValues[0], 99 argValues[1], 100 _default_2.eval(env)); 101 case 3: 102 default: 103 return callMethod(env, 104 obj, 105 argValues[0], 106 argValues[1], 107 argValues[2]); 108 } 109 } 110 111 public Value callMethod(Env env, Value obj, Value a1, Value a2) 112 { 113 return callMethod(env, obj, a1, a2, _default_2.eval(env)); 114 } 115 116 abstract public Value callMethod(Env env, 117 Value obj, 118 Value a1, 119 Value a2, 120 Value a3); 121 122 public String toString() 123 { 124 return "CompiledMethod_3[" + _name + "]"; 125 } 126 } 127 128 | Popular Tags |