1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.hadoop.hbase.hbql.statement.args;
22
23 import org.apache.expreval.expr.ExpressionProperty;
24 import org.apache.expreval.expr.node.GenericValue;
25 import org.apache.hadoop.hbase.hbql.client.HBqlException;
26
27 import java.io.Serializable;
28
29 public class ColumnWidth extends ExpressionProperty implements Serializable {
30
31 private final boolean widthSpecified;
32 private int width = -1;
33
34 public ColumnWidth() {
35 this(null);
36 }
37
38 public ColumnWidth(final GenericValue val) {
39 super(SelectStatementArgs.ArgType.WIDTH, val);
40 this.widthSpecified = val != null;
41 }
42
43 public boolean isWidthSpecified() {
44 return this.widthSpecified;
45 }
46
47 public int getWidth() {
48 return this.width;
49 }
50
51 public String asString() {
52 return (this.isWidthSpecified() ? "WIDTH " + this.getGenericValue(0).asString() : "");
53 }
54
55 public void validate() throws HBqlException {
56 if (this.isWidthSpecified()) {
57 this.width = ((Number)this.evaluateConstant(0, false)).intValue();
58 if (this.getWidth() <= 0)
59 throw new HBqlException("Invalid column width: " + this.getWidth());
60 }
61 }
62 }