1 28 29 package com.caucho.db.sql; 30 31 import com.caucho.log.Log; 32 33 import java.sql.SQLException ; 34 import java.util.logging.Logger ; 35 36 class DefaultExpr extends Expr { 37 private static final Logger log = Log.open(DefaultExpr.class); 38 39 private Expr _expr; 40 private Expr _default; 41 42 DefaultExpr(Expr expr, Expr defaultExpr) 43 { 44 _expr = expr; 45 _default = defaultExpr; 46 } 47 48 protected Expr bind(Query query) 49 throws SQLException 50 { 51 Expr newExpr = _expr.bind(query); 52 53 if (_expr == newExpr) 54 return this; 55 else 56 return new DefaultExpr(newExpr, _default); 57 } 58 59 62 public Class getType() 63 { 64 return _expr.getType(); 65 } 66 67 74 public boolean isNull(QueryContext context) 75 throws SQLException 76 { 77 return _expr.isNull(context) && _default.isNull(context); 78 } 79 80 87 public int evalBoolean(QueryContext context) 88 throws SQLException 89 { 90 if (! _expr.isNull(context)) 91 return _expr.evalBoolean(context); 92 else 93 return _default.evalBoolean(context); 94 } 95 96 103 public String evalString(QueryContext context) 104 throws SQLException 105 { 106 if (! _expr.isNull(context)) 107 return _expr.evalString(context); 108 else 109 return _default.evalString(context); 110 } 111 112 119 public long evalLong(QueryContext context) 120 throws SQLException 121 { 122 if (! _expr.isNull(context)) 123 return _expr.evalLong(context); 124 else 125 return _default.evalLong(context); 126 } 127 128 135 public double evalDouble(QueryContext context) 136 throws SQLException 137 { 138 if (! _expr.isNull(context)) 139 return _expr.evalDouble(context); 140 else 141 return _default.evalDouble(context); 142 } 143 144 151 public long evalDate(QueryContext context) 152 throws SQLException 153 { 154 if (! _expr.isNull(context)) 155 return _expr.evalDate(context); 156 else 157 return _default.evalDate(context); 158 } 159 160 166 public void evalToResult(QueryContext context, SelectResult result) 167 throws SQLException 168 { 169 if (! _expr.isNull(context)) 170 _expr.evalToResult(context, result); 171 else 172 _default.evalToResult(context, result); 173 } 174 175 public String toString() 176 { 177 return "(" + _expr + " DEFAULT " + _default + ")"; 178 } 179 } 180 | Popular Tags |