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.stringpattern;
22
23 import org.apache.expreval.client.NullColumnValueException;
24 import org.apache.expreval.client.ResultMissingColumnException;
25 import org.apache.expreval.expr.node.GenericValue;
26 import org.apache.hadoop.hbase.hbql.client.HBqlException;
27 import org.apache.hadoop.hbase.hbql.impl.HConnectionImpl;
28
29 public class ContainsStmt extends GenericStringPatternStmt {
30
31 public ContainsStmt(final GenericValue valueExpr, final boolean not, final GenericValue patternExpr) {
32 super(valueExpr, not, patternExpr);
33 }
34
35 protected String getFunctionName() {
36 return "CONTAINS";
37 }
38
39 public Boolean getValue(final HConnectionImpl conn, final Object object) throws HBqlException,
40 ResultMissingColumnException,
41 NullColumnValueException {
42
43 final String val0 = (String)this.getExprArg(0).getValue(conn, object);
44 final String val1 = (String)this.getExprArg(1).getValue(conn, object);
45
46 if (val0 == null)
47 throw new HBqlException("Null string for value in " + this.asString());
48
49 if (val1 == null)
50 throw new HBqlException("Null string for pattern in " + this.asString());
51
52 final boolean retval = val0.contains(val1);
53
54 return (this.isNot()) ? !retval : retval;
55 }
56 }