1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase.client;
19
20 import java.util.ArrayList;
21 import java.util.List;
22 import java.util.Map;
23 import java.util.NavigableMap;
24 import java.util.UUID;
25
26 import org.apache.hadoop.hbase.Cell;
27 import org.apache.hadoop.hbase.CellUtil;
28 import org.apache.hadoop.hbase.KeyValue;
29 import org.apache.hadoop.hbase.classification.InterfaceAudience;
30 import org.apache.hadoop.hbase.classification.InterfaceStability;
31 import org.apache.hadoop.hbase.security.access.Permission;
32 import org.apache.hadoop.hbase.security.visibility.CellVisibility;
33 import org.apache.hadoop.hbase.util.Bytes;
34
35
36
37
38
39
40
41
42
43
44
45
46
47 @InterfaceAudience.Public
48 @InterfaceStability.Stable
49 public class Append extends Mutation {
50 private static final String RETURN_RESULTS = "_rr_";
51
52
53
54
55
56
57 public Append setReturnResults(boolean returnResults) {
58 setAttribute(RETURN_RESULTS, Bytes.toBytes(returnResults));
59 return this;
60 }
61
62
63
64
65 public boolean isReturnResults() {
66 byte[] v = getAttribute(RETURN_RESULTS);
67 return v == null ? true : Bytes.toBoolean(v);
68 }
69
70
71
72
73
74
75
76 public Append(byte[] row) {
77 this(row, 0, row.length);
78 }
79
80
81
82
83 public Append(Append a) {
84 this.row = a.getRow();
85 this.ts = a.getTimeStamp();
86 this.familyMap.putAll(a.getFamilyCellMap());
87 for (Map.Entry<String, byte[]> entry : a.getAttributesMap().entrySet()) {
88 this.setAttribute(entry.getKey(), entry.getValue());
89 }
90 }
91
92
93
94
95
96
97
98
99 public Append(final byte [] rowArray, final int rowOffset, final int rowLength) {
100 checkRow(rowArray, rowOffset, rowLength);
101 this.row = Bytes.copy(rowArray, rowOffset, rowLength);
102 }
103
104
105
106
107
108
109
110
111 public Append add(byte [] family, byte [] qualifier, byte [] value) {
112 KeyValue kv = new KeyValue(this.row, family, qualifier, this.ts, KeyValue.Type.Put, value);
113 return add(kv);
114 }
115
116
117
118
119
120
121 @SuppressWarnings("unchecked")
122 public Append add(final Cell cell) {
123
124 byte [] family = CellUtil.cloneFamily(cell);
125 List<Cell> list = this.familyMap.get(family);
126 if (list == null) {
127 list = new ArrayList<Cell>();
128 }
129
130 list.add(cell);
131 this.familyMap.put(family, list);
132 return this;
133 }
134
135 @Override
136 public Append setAttribute(String name, byte[] value) {
137 return (Append) super.setAttribute(name, value);
138 }
139
140 @Override
141 public Append setId(String id) {
142 return (Append) super.setId(id);
143 }
144
145 @Override
146 public Append setDurability(Durability d) {
147 return (Append) super.setDurability(d);
148 }
149
150 @Override
151 public Append setFamilyCellMap(NavigableMap<byte[], List<Cell>> map) {
152 return (Append) super.setFamilyCellMap(map);
153 }
154
155 @Override
156 public Append setClusterIds(List<UUID> clusterIds) {
157 return (Append) super.setClusterIds(clusterIds);
158 }
159
160 @Override
161 public Append setCellVisibility(CellVisibility expression) {
162 return (Append) super.setCellVisibility(expression);
163 }
164
165 @Override
166 public Append setACL(String user, Permission perms) {
167 return (Append) super.setACL(user, perms);
168 }
169
170 @Override
171 public Append setACL(Map<String, Permission> perms) {
172 return (Append) super.setACL(perms);
173 }
174
175 @Override
176 public Append setTTL(long ttl) {
177 return (Append) super.setTTL(ttl);
178 }
179 }