1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.healthmarketscience.jackcess.impl;
18
19 import java.io.IOException;
20
21 import com.healthmarketscience.jackcess.expr.Value;
22 import com.healthmarketscience.jackcess.impl.expr.Expressionator;
23
24
25
26
27
28 public class CalcColEvalContext extends RowEvalContext
29 {
30 private final ColumnImpl _col;
31
32 public CalcColEvalContext(ColumnImpl col) {
33 super(col.getDatabase());
34 _col = col;
35 }
36
37 CalcColEvalContext setExpr(String exprStr) {
38 setExpr(Expressionator.Type.EXPRESSION, exprStr);
39 return this;
40 }
41
42 @Override
43 protected TableImpl getTable() {
44 return _col.getTable();
45 }
46
47 @Override
48 public Value.Type getResultType() {
49 return toValueType(_col.getType());
50 }
51
52 public Object eval(Object[] row) throws IOException {
53 try {
54 setRow(row);
55 return eval();
56 } finally {
57 reset();
58 }
59 }
60
61 @Override
62 protected String withErrorContext(String msg) {
63 return _col.withErrorContext(msg);
64 }
65 }