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.mapping;
22
23 import org.apache.hadoop.hbase.client.Result;
24 import org.apache.hadoop.hbase.hbql.client.HBqlException;
25 import org.apache.hadoop.hbase.hbql.impl.HConnectionImpl;
26 import org.apache.hadoop.hbase.hbql.impl.HRecordImpl;
27 import org.apache.hadoop.hbase.hbql.statement.select.SelectElement;
28
29 import java.util.List;
30
31 public class HRecordResultAccessor extends ResultAccessor {
32
33 public HRecordResultAccessor(final MappingContext mappingContext) {
34 super(mappingContext);
35 }
36
37 public Object newObject(final HConnectionImpl conn,
38 final MappingContext mappingContext,
39 final List<SelectElement> selectElementList,
40 final int maxVersions,
41 final Result result) throws HBqlException {
42
43
44 final HRecordImpl newrec = new HRecordImpl(mappingContext);
45 this.assignSelectValues(conn, newrec, selectElementList, maxVersions, result);
46 return newrec;
47 }
48
49 private void assignSelectValues(final HConnectionImpl conn,
50 final HRecordImpl record,
51 final List<SelectElement> selectElementList,
52 final int maxVersions,
53 final Result result) throws HBqlException {
54
55
56 this.getMapping().getKeyAttrib().setCurrentValue(record, 0, result.getRow());
57
58
59 for (final SelectElement selectElement : selectElementList)
60 selectElement.assignSelectValue(conn, record, maxVersions, result);
61 }
62
63 public ColumnAttrib getColumnAttribByName(final String name) throws HBqlException {
64 return this.getMapping().getAttribByVariableName(name);
65 }
66
67 public ColumnAttrib getColumnAttribByQualifiedName(final String familyName,
68 final String columnName) throws HBqlException {
69 return this.getTableMapping().getAttribFromFamilyQualifiedName(familyName + ":" + columnName);
70 }
71
72 public ColumnAttrib getVersionAttrib(final String name) throws HBqlException {
73 return this.getTableMapping().getVersionAttrib(name);
74 }
75 }
76