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.rest.model;
22
23 import java.io.IOException;
24 import java.io.Serializable;
25 import java.util.ArrayList;
26 import java.util.List;
27
28 import javax.xml.bind.annotation.XmlElementRef;
29 import javax.xml.bind.annotation.XmlRootElement;
30
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 public class TableListModel implements Serializable, ProtobufMessageHandler {
39
40 private static final long serialVersionUID = 1L;
41
42 private List<TableModel> tables = new ArrayList<TableModel>();
43
44
45
46
47 public TableListModel() {}
48
49
50
51
52
53 public void add(TableModel table) {
54 tables.add(table);
55 }
56
57
58
59
60
61 public TableModel get(int index) {
62 return tables.get(index);
63 }
64
65
66
67
68 @XmlElementRef(name="table")
69 public List<TableModel> getTables() {
70 return tables;
71 }
72
73
74
75
76 public void setTables(List<TableModel> tables) {
77 this.tables = tables;
78 }
79
80
81
82
83 @Override
84 public String toString() {
85 StringBuilder sb = new StringBuilder();
86 for(TableModel aTable : tables) {
87 sb.append(aTable.toString());
88 sb.append('\n');
89 }
90 return sb.toString();
91 }
92
93 @Override
94 public byte[] createProtobufOutput() {
95 TableList.Builder builder = TableList.newBuilder();
96 for (TableModel aTable : tables) {
97 builder.addName(aTable.getName());
98 }
99 return builder.build().toByteArray();
100 }
101
102 @Override
103 public ProtobufMessageHandler getObjectFromMessage(byte[] message)
104 throws IOException {
105 TableList.Builder builder = TableList.newBuilder();
106 builder.mergeFrom(message);
107 for (String table: builder.getNameList()) {
108 this.add(new TableModel(table));
109 }
110 return this;
111 }
112 }