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 CompiledFunction_5 extends CompiledFunction { 43 private static final Logger log 44 = Logger.getLogger(CompiledFunction_5.class.getName()); 45 private static final L10N L = new L10N(CompiledFunction_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 CompiledFunction_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 if (default_0 == null || default_1 == null || default_2 == null || 68 default_3 == null || default_4 == null) 69 Thread.dumpStack(); 70 } 71 72 78 public Expr []bindArguments(Env env, Expr fun, Expr []args) 79 { 80 if (args.length > 5) 81 log.fine(L.l(env.getLocation().getMessagePrefix() + "incorrect number of arguments" + env.getFunctionLocation())); 82 83 return args; 84 } 85 86 public Value call(Env env, Value []argValues) 87 { 88 switch (argValues.length) { 89 case 0: 90 return call(env, 91 _default_0.eval(env), 92 _default_1.eval(env), 93 _default_2.eval(env), 94 _default_3.eval(env), 95 _default_4.eval(env)); 96 97 case 1: 98 return call(env, 99 argValues[0], 100 _default_1.eval(env), 101 _default_2.eval(env), 102 _default_3.eval(env), 103 _default_4.eval(env)); 104 case 2: 105 return call(env, 106 argValues[0], 107 argValues[1], 108 _default_2.eval(env), 109 _default_3.eval(env), 110 _default_4.eval(env)); 111 case 3: 112 return call(env, 113 argValues[0], 114 argValues[1], 115 argValues[2], 116 _default_3.eval(env), 117 _default_4.eval(env)); 118 case 4: 119 return call(env, 120 argValues[0], 121 argValues[1], 122 argValues[2], 123 argValues[3], 124 _default_4.eval(env)); 125 case 5: 126 default: 127 return call(env, 128 argValues[0], 129 argValues[1], 130 argValues[2], 131 argValues[3], 132 argValues[4]); 133 } 134 } 135 136 139 abstract public Value call(Env env, Value a1, Value a2, Value a3, Value a4, 140 Value a5); 141 142 public String toString() 143 { 144 return "CompiledFunction_5[" + _name + "]"; 145 } 146 } 147 148 | Popular Tags |