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.instmt;
22
23 import org.apache.expreval.client.NullColumnValueException;
24 import org.apache.expreval.client.ResultMissingColumnException;
25 import org.apache.expreval.expr.TypeSupport;
26 import org.apache.expreval.expr.node.GenericValue;
27 import org.apache.hadoop.hbase.hbql.client.HBqlException;
28
29 import java.util.Collection;
30 import java.util.List;
31
32 public class NumberInStmt extends GenericInStmt {
33
34 public NumberInStmt(final GenericValue arg0, final boolean not, final List<GenericValue> inList) {
35 super(arg0, not, inList);
36 }
37
38 protected boolean evaluateInList(final Object object) throws HBqlException,
39 ResultMissingColumnException,
40 NullColumnValueException {
41 final Object obj0 = this.getExprArg(0).getValue(null, object);
42
43 this.validateNumericArgTypes(obj0);
44
45 if (!this.useDecimal()) {
46
47 final long val0 = ((Number)obj0).longValue();
48
49 for (final GenericValue obj : this.getInList()) {
50
51
52 final Object objval = obj.getValue(null, object);
53 if (TypeSupport.isACollection(objval)) {
54 for (final GenericValue genericValue : (Collection<GenericValue>)objval) {
55 if (val0 == ((Number)genericValue.getValue(null, object)).longValue())
56 return true;
57 }
58 }
59 else {
60 if (val0 == ((Number)objval).longValue())
61 return true;
62 }
63 }
64 return false;
65 }
66 else {
67
68 final double val0 = ((Number)obj0).doubleValue();
69
70 for (final GenericValue obj : this.getInList()) {
71
72
73 final Object objval = obj.getValue(null, object);
74 if (TypeSupport.isACollection(objval)) {
75 for (final GenericValue genericValue : (Collection<GenericValue>)objval) {
76 if (val0 == ((Number)genericValue.getValue(null, object)).doubleValue())
77 return true;
78 }
79 }
80 else {
81 if (val0 == ((Number)objval).doubleValue())
82 return true;
83 }
84 }
85 return false;
86 }
87 }
88 }