1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.hadoop.hbase.rest.model;
21
22 import java.io.IOException;
23 import java.io.Serializable;
24 import java.util.ArrayList;
25 import java.util.List;
26
27 import javax.xml.bind.annotation.XmlElementRef;
28 import javax.xml.bind.annotation.XmlRootElement;
29
30 import org.apache.hadoop.classification.InterfaceAudience;
31 import org.apache.hadoop.hbase.rest.ProtobufMessageHandler;
32 import org.apache.hadoop.hbase.rest.protobuf.generated.TableListMessage.TableList;
33
34
35
36
37 @XmlRootElement(name="TableList")
38 @InterfaceAudience.Private
39 public class TableListModel implements Serializable, ProtobufMessageHandler {
40
41 private static final long serialVersionUID = 1L;
42
43 private List<TableModel> tables = new ArrayList<TableModel>();
44
45
46
47
48 public TableListModel() {}
49
50
51
52
53
54 public void add(TableModel table) {
55 tables.add(table);
56 }
57
58
59
60
61
62 public TableModel get(int index) {
63 return tables.get(index);
64 }
65
66
67
68
69 @XmlElementRef(name="table")
70 public List<TableModel> getTables() {
71 return tables;
72 }
73
74
75
76
77 public void setTables(List<TableModel> tables) {
78 this.tables = tables;
79 }
80
81
82
83
84 @Override
85 public String toString() {
86 StringBuilder sb = new StringBuilder();
87 for(TableModel aTable : tables) {
88 sb.append(aTable.toString());
89 sb.append('\n');
90 }
91 return sb.toString();
92 }
93
94 @Override
95 public byte[] createProtobufOutput() {
96 TableList.Builder builder = TableList.newBuilder();
97 for (TableModel aTable : tables) {
98 builder.addName(aTable.getName());
99 }
100 return builder.build().toByteArray();
101 }
102
103 @Override
104 public ProtobufMessageHandler getObjectFromMessage(byte[] message)
105 throws IOException {
106 TableList.Builder builder = TableList.newBuilder();
107 builder.mergeFrom(message);
108 for (String table: builder.getNameList()) {
109 this.add(new TableModel(table));
110 }
111 return this;
112 }
113 }