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 CompiledFunctionRef_5 extends CompiledFunctionRef { 43 private static final Logger log 44 = Logger.getLogger(CompiledFunctionRef_5.class.getName()); 45 private static final L10N L = new L10N(CompiledFunctionRef_5.class); 46 47 private final String _name; 48 private final Expr _default_0; 49 private final Expr _default_1; 50 private final Expr _default_2; 51 private final Expr _default_3; 52 private final Expr _default_4; 53 54 public CompiledFunctionRef_5(String name, 55 Expr default_0, 56 Expr default_1, 57 Expr default_2, 58 Expr default_3, 59 Expr default_4) 60 { 61 _name = name; 62 _default_0 = default_0; 63 _default_1 = default_1; 64 _default_2 = default_2; 65 _default_3 = default_3; 66 _default_4 = default_4; 67 } 68 69 75 public Expr []bindArguments(Env env, Expr fun, Expr []args) 76 { 77 if (args.length > 5) 78 log.fine(L.l(env.getLocation().getMessagePrefix() + "incorrect number of arguments" + env.getFunctionLocation())); 79 80 return args; 81 } 82 83 public Value callRef(Env env, Value []argValues) 84 { 85 switch (argValues.length) { 86 case 0: 87 return callRef(env, 88 _default_0.eval(env), 89 _default_1.eval(env), 90 _default_2.eval(env), 91 _default_3.eval(env), 92 _default_4.eval(env)); 93 94 case 1: 95 return callRef(env, 96 argValues[0], 97 _default_1.eval(env), 98 _default_2.eval(env), 99 _default_3.eval(env), 100 _default_4.eval(env)); 101 case 2: 102 return callRef(env, 103 argValues[0], 104 argValues[1], 105 _default_2.eval(env), 106 _default_3.eval(env), 107 _default_4.eval(env)); 108 case 3: 109 return callRef(env, 110 argValues[0], 111 argValues[1], 112 argValues[2], 113 _default_3.eval(env), 114 _default_4.eval(env)); 115 case 4: 116 return callRef(env, 117 argValues[0], 118 argValues[1], 119 argValues[2], 120 argValues[3], 121 _default_4.eval(env)); 122 case 5: 123 default: 124 return callRef(env, 125 argValues[0], 126 argValues[1], 127 argValues[2], 128 argValues[3], 129 argValues[4]); 130 } 131 } 132 133 136 abstract public Value callRef(Env env, Value a1, Value a2, Value a3, Value a4, 137 Value a5); 138 139 public String toString() 140 { 141 return "CompiledFunctionRef_5[" + _name + "]"; 142 } 143 } 144 145 | Popular Tags |