forked from aws/aws-sdk-java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPutItemResult.java
More file actions
380 lines (351 loc) · 19.3 KB
/
PutItemResult.java
File metadata and controls
380 lines (351 loc) · 19.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
/*
* Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.amazonaws.services.dynamodbv2.model;
import java.io.Serializable;
/**
* <p>
* Represents the output of a <i>PutItem</i> operation.
* </p>
*/
public class PutItemResult implements Serializable {
/**
* The attribute values as they appeared before the <i>PutItem</i>
* operation, but only if <i>ReturnValues</i> is specified as
* <code>ALL_OLD</code> in the request. Each element consists of an
* attribute name and an attribute value.
*/
private java.util.Map<String,AttributeValue> attributes;
/**
* The table name that consumed provisioned throughput, and the number of
* capacity units consumed by it. <i>ConsumedCapacity</i> is only
* returned if it was asked for in the request. For more information, see
* <a
* href="http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html">Provisioned
* Throughput</a> in the Amazon DynamoDB Developer Guide.
*/
private ConsumedCapacity consumedCapacity;
/**
* Information about item collections, if any, that were affected by the
* operation. <i>ItemCollectionMetrics</i> is only returned if it was
* asked for in the request. If the table does not have any secondary
* indexes, this information is not returned in the response. <p>Each
* <i>ItemCollectionMetrics</i> element consists of: <ul>
* <li><p><i>ItemCollectionKey</i> - The hash key value of the item
* collection. This is the same as the hash key of the item.</li>
* <li><p><i>SizeEstimateRange</i> - An estimate of item collection size,
* measured in gigabytes. This is a two-element array containing a lower
* bound and an upper bound for the estimate. The estimate includes the
* size of all the items in the table, plus the size of all attributes
* projected into all of the secondary indexes on that table. Use this
* estimate to measure whether a secondary index is approaching its size
* limit. <p>The estimate is subject to change over time; therefore, do
* not rely on the precision or accuracy of the estimate. </li> </ul>
*/
private ItemCollectionMetrics itemCollectionMetrics;
/**
* The attribute values as they appeared before the <i>PutItem</i>
* operation, but only if <i>ReturnValues</i> is specified as
* <code>ALL_OLD</code> in the request. Each element consists of an
* attribute name and an attribute value.
*
* @return The attribute values as they appeared before the <i>PutItem</i>
* operation, but only if <i>ReturnValues</i> is specified as
* <code>ALL_OLD</code> in the request. Each element consists of an
* attribute name and an attribute value.
*/
public java.util.Map<String,AttributeValue> getAttributes() {
return attributes;
}
/**
* The attribute values as they appeared before the <i>PutItem</i>
* operation, but only if <i>ReturnValues</i> is specified as
* <code>ALL_OLD</code> in the request. Each element consists of an
* attribute name and an attribute value.
*
* @param attributes The attribute values as they appeared before the <i>PutItem</i>
* operation, but only if <i>ReturnValues</i> is specified as
* <code>ALL_OLD</code> in the request. Each element consists of an
* attribute name and an attribute value.
*/
public void setAttributes(java.util.Map<String,AttributeValue> attributes) {
this.attributes = attributes;
}
/**
* The attribute values as they appeared before the <i>PutItem</i>
* operation, but only if <i>ReturnValues</i> is specified as
* <code>ALL_OLD</code> in the request. Each element consists of an
* attribute name and an attribute value.
* <p>
* Returns a reference to this object so that method calls can be chained together.
*
* @param attributes The attribute values as they appeared before the <i>PutItem</i>
* operation, but only if <i>ReturnValues</i> is specified as
* <code>ALL_OLD</code> in the request. Each element consists of an
* attribute name and an attribute value.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public PutItemResult withAttributes(java.util.Map<String,AttributeValue> attributes) {
setAttributes(attributes);
return this;
}
/**
* The attribute values as they appeared before the <i>PutItem</i>
* operation, but only if <i>ReturnValues</i> is specified as
* <code>ALL_OLD</code> in the request. Each element consists of an
* attribute name and an attribute value.
* <p>
* The method adds a new key-value pair into Attributes parameter, and
* returns a reference to this object so that method calls can be chained
* together.
*
* @param key The key of the entry to be added into Attributes.
* @param value The corresponding value of the entry to be added into Attributes.
*/
public PutItemResult addAttributesEntry(String key, AttributeValue value) {
if (null == this.attributes) {
this.attributes = new java.util.HashMap<String,AttributeValue>();
}
if (this.attributes.containsKey(key))
throw new IllegalArgumentException("Duplicated keys (" + key.toString() + ") are provided.");
this.attributes.put(key, value);
return this;
}
/**
* Removes all the entries added into Attributes.
* <p>
* Returns a reference to this object so that method calls can be chained together.
*/
public PutItemResult clearAttributesEntries() {
this.attributes = null;
return this;
}
/**
* The table name that consumed provisioned throughput, and the number of
* capacity units consumed by it. <i>ConsumedCapacity</i> is only
* returned if it was asked for in the request. For more information, see
* <a
* href="http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html">Provisioned
* Throughput</a> in the Amazon DynamoDB Developer Guide.
*
* @return The table name that consumed provisioned throughput, and the number of
* capacity units consumed by it. <i>ConsumedCapacity</i> is only
* returned if it was asked for in the request. For more information, see
* <a
* href="http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html">Provisioned
* Throughput</a> in the Amazon DynamoDB Developer Guide.
*/
public ConsumedCapacity getConsumedCapacity() {
return consumedCapacity;
}
/**
* The table name that consumed provisioned throughput, and the number of
* capacity units consumed by it. <i>ConsumedCapacity</i> is only
* returned if it was asked for in the request. For more information, see
* <a
* href="http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html">Provisioned
* Throughput</a> in the Amazon DynamoDB Developer Guide.
*
* @param consumedCapacity The table name that consumed provisioned throughput, and the number of
* capacity units consumed by it. <i>ConsumedCapacity</i> is only
* returned if it was asked for in the request. For more information, see
* <a
* href="http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html">Provisioned
* Throughput</a> in the Amazon DynamoDB Developer Guide.
*/
public void setConsumedCapacity(ConsumedCapacity consumedCapacity) {
this.consumedCapacity = consumedCapacity;
}
/**
* The table name that consumed provisioned throughput, and the number of
* capacity units consumed by it. <i>ConsumedCapacity</i> is only
* returned if it was asked for in the request. For more information, see
* <a
* href="http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html">Provisioned
* Throughput</a> in the Amazon DynamoDB Developer Guide.
* <p>
* Returns a reference to this object so that method calls can be chained together.
*
* @param consumedCapacity The table name that consumed provisioned throughput, and the number of
* capacity units consumed by it. <i>ConsumedCapacity</i> is only
* returned if it was asked for in the request. For more information, see
* <a
* href="http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html">Provisioned
* Throughput</a> in the Amazon DynamoDB Developer Guide.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public PutItemResult withConsumedCapacity(ConsumedCapacity consumedCapacity) {
this.consumedCapacity = consumedCapacity;
return this;
}
/**
* Information about item collections, if any, that were affected by the
* operation. <i>ItemCollectionMetrics</i> is only returned if it was
* asked for in the request. If the table does not have any secondary
* indexes, this information is not returned in the response. <p>Each
* <i>ItemCollectionMetrics</i> element consists of: <ul>
* <li><p><i>ItemCollectionKey</i> - The hash key value of the item
* collection. This is the same as the hash key of the item.</li>
* <li><p><i>SizeEstimateRange</i> - An estimate of item collection size,
* measured in gigabytes. This is a two-element array containing a lower
* bound and an upper bound for the estimate. The estimate includes the
* size of all the items in the table, plus the size of all attributes
* projected into all of the secondary indexes on that table. Use this
* estimate to measure whether a secondary index is approaching its size
* limit. <p>The estimate is subject to change over time; therefore, do
* not rely on the precision or accuracy of the estimate. </li> </ul>
*
* @return Information about item collections, if any, that were affected by the
* operation. <i>ItemCollectionMetrics</i> is only returned if it was
* asked for in the request. If the table does not have any secondary
* indexes, this information is not returned in the response. <p>Each
* <i>ItemCollectionMetrics</i> element consists of: <ul>
* <li><p><i>ItemCollectionKey</i> - The hash key value of the item
* collection. This is the same as the hash key of the item.</li>
* <li><p><i>SizeEstimateRange</i> - An estimate of item collection size,
* measured in gigabytes. This is a two-element array containing a lower
* bound and an upper bound for the estimate. The estimate includes the
* size of all the items in the table, plus the size of all attributes
* projected into all of the secondary indexes on that table. Use this
* estimate to measure whether a secondary index is approaching its size
* limit. <p>The estimate is subject to change over time; therefore, do
* not rely on the precision or accuracy of the estimate. </li> </ul>
*/
public ItemCollectionMetrics getItemCollectionMetrics() {
return itemCollectionMetrics;
}
/**
* Information about item collections, if any, that were affected by the
* operation. <i>ItemCollectionMetrics</i> is only returned if it was
* asked for in the request. If the table does not have any secondary
* indexes, this information is not returned in the response. <p>Each
* <i>ItemCollectionMetrics</i> element consists of: <ul>
* <li><p><i>ItemCollectionKey</i> - The hash key value of the item
* collection. This is the same as the hash key of the item.</li>
* <li><p><i>SizeEstimateRange</i> - An estimate of item collection size,
* measured in gigabytes. This is a two-element array containing a lower
* bound and an upper bound for the estimate. The estimate includes the
* size of all the items in the table, plus the size of all attributes
* projected into all of the secondary indexes on that table. Use this
* estimate to measure whether a secondary index is approaching its size
* limit. <p>The estimate is subject to change over time; therefore, do
* not rely on the precision or accuracy of the estimate. </li> </ul>
*
* @param itemCollectionMetrics Information about item collections, if any, that were affected by the
* operation. <i>ItemCollectionMetrics</i> is only returned if it was
* asked for in the request. If the table does not have any secondary
* indexes, this information is not returned in the response. <p>Each
* <i>ItemCollectionMetrics</i> element consists of: <ul>
* <li><p><i>ItemCollectionKey</i> - The hash key value of the item
* collection. This is the same as the hash key of the item.</li>
* <li><p><i>SizeEstimateRange</i> - An estimate of item collection size,
* measured in gigabytes. This is a two-element array containing a lower
* bound and an upper bound for the estimate. The estimate includes the
* size of all the items in the table, plus the size of all attributes
* projected into all of the secondary indexes on that table. Use this
* estimate to measure whether a secondary index is approaching its size
* limit. <p>The estimate is subject to change over time; therefore, do
* not rely on the precision or accuracy of the estimate. </li> </ul>
*/
public void setItemCollectionMetrics(ItemCollectionMetrics itemCollectionMetrics) {
this.itemCollectionMetrics = itemCollectionMetrics;
}
/**
* Information about item collections, if any, that were affected by the
* operation. <i>ItemCollectionMetrics</i> is only returned if it was
* asked for in the request. If the table does not have any secondary
* indexes, this information is not returned in the response. <p>Each
* <i>ItemCollectionMetrics</i> element consists of: <ul>
* <li><p><i>ItemCollectionKey</i> - The hash key value of the item
* collection. This is the same as the hash key of the item.</li>
* <li><p><i>SizeEstimateRange</i> - An estimate of item collection size,
* measured in gigabytes. This is a two-element array containing a lower
* bound and an upper bound for the estimate. The estimate includes the
* size of all the items in the table, plus the size of all attributes
* projected into all of the secondary indexes on that table. Use this
* estimate to measure whether a secondary index is approaching its size
* limit. <p>The estimate is subject to change over time; therefore, do
* not rely on the precision or accuracy of the estimate. </li> </ul>
* <p>
* Returns a reference to this object so that method calls can be chained together.
*
* @param itemCollectionMetrics Information about item collections, if any, that were affected by the
* operation. <i>ItemCollectionMetrics</i> is only returned if it was
* asked for in the request. If the table does not have any secondary
* indexes, this information is not returned in the response. <p>Each
* <i>ItemCollectionMetrics</i> element consists of: <ul>
* <li><p><i>ItemCollectionKey</i> - The hash key value of the item
* collection. This is the same as the hash key of the item.</li>
* <li><p><i>SizeEstimateRange</i> - An estimate of item collection size,
* measured in gigabytes. This is a two-element array containing a lower
* bound and an upper bound for the estimate. The estimate includes the
* size of all the items in the table, plus the size of all attributes
* projected into all of the secondary indexes on that table. Use this
* estimate to measure whether a secondary index is approaching its size
* limit. <p>The estimate is subject to change over time; therefore, do
* not rely on the precision or accuracy of the estimate. </li> </ul>
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public PutItemResult withItemCollectionMetrics(ItemCollectionMetrics itemCollectionMetrics) {
this.itemCollectionMetrics = itemCollectionMetrics;
return this;
}
/**
* Returns a string representation of this object; useful for testing and
* debugging.
*
* @return A string representation of this object.
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
if (getAttributes() != null) sb.append("Attributes: " + getAttributes() + ",");
if (getConsumedCapacity() != null) sb.append("ConsumedCapacity: " + getConsumedCapacity() + ",");
if (getItemCollectionMetrics() != null) sb.append("ItemCollectionMetrics: " + getItemCollectionMetrics() );
sb.append("}");
return sb.toString();
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getAttributes() == null) ? 0 : getAttributes().hashCode());
hashCode = prime * hashCode + ((getConsumedCapacity() == null) ? 0 : getConsumedCapacity().hashCode());
hashCode = prime * hashCode + ((getItemCollectionMetrics() == null) ? 0 : getItemCollectionMetrics().hashCode());
return hashCode;
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null) return false;
if (obj instanceof PutItemResult == false) return false;
PutItemResult other = (PutItemResult)obj;
if (other.getAttributes() == null ^ this.getAttributes() == null) return false;
if (other.getAttributes() != null && other.getAttributes().equals(this.getAttributes()) == false) return false;
if (other.getConsumedCapacity() == null ^ this.getConsumedCapacity() == null) return false;
if (other.getConsumedCapacity() != null && other.getConsumedCapacity().equals(this.getConsumedCapacity()) == false) return false;
if (other.getItemCollectionMetrics() == null ^ this.getItemCollectionMetrics() == null) return false;
if (other.getItemCollectionMetrics() != null && other.getItemCollectionMetrics().equals(this.getItemCollectionMetrics()) == false) return false;
return true;
}
}