1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.expreval.expr.calculation;
22
23 import org.apache.expreval.client.NullColumnValueException;
24 import org.apache.expreval.client.ResultMissingColumnException;
25 import org.apache.expreval.expr.ExpressionType;
26 import org.apache.expreval.expr.Operator;
27 import org.apache.expreval.expr.node.DateValue;
28 import org.apache.expreval.expr.node.GenericValue;
29 import org.apache.hadoop.hbase.hbql.client.HBqlException;
30 import org.apache.hadoop.hbase.hbql.impl.HConnectionImpl;
31
32 public class DateCalculation extends GenericCalculation implements DateValue {
33
34 public DateCalculation(final GenericValue arg0, final Operator operator, final GenericValue arg1) {
35 super(ExpressionType.DATECALCULATION, arg0, operator, arg1);
36 }
37
38 public Long getValue(final HConnectionImpl conn, final Object object) throws HBqlException,
39 ResultMissingColumnException,
40 NullColumnValueException {
41
42 final long val0 = (Long)this.getExprArg(0).getValue(conn, object);
43 final long val1 = (Long)this.getExprArg(1).getValue(conn, object);
44
45 switch (this.getOperator()) {
46 case PLUS:
47 return val0 + val1;
48 case MINUS:
49 return val0 - val1;
50 }
51
52 throw new HBqlException("Invalid operator:" + this.getOperator());
53 }
54 }