com.amazonaws.services.dynamodbv2.model.AttributeValueUpdate Maven / Gradle / Ivy
Show all versions of aws-java-sdk-dynamodb Show documentation
/*
* Copyright 2010-2016 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;
/**
*
* For the UpdateItem operation, represents the attributes to be
* modified, the action to perform on each, and the new value for each.
*
*
*
* You cannot use UpdateItem to update any primary key attributes.
* Instead, you will need to delete the item, and then use PutItem to
* create a new item with new attributes.
*
*
*
* Attribute values cannot be null; string and binary type attributes must have
* lengths greater than zero; and set type attributes must not be empty.
* Requests with empty values will be rejected with a ValidationException
* exception.
*
*/
public class AttributeValueUpdate implements Serializable, Cloneable {
private AttributeValue value;
/**
*
* Specifies how to perform the update. Valid values are PUT
* (default), DELETE
, and ADD
. The behavior
* depends on whether the specified primary key already exists in the table.
*
*
* If an item with the specified Key is found in the table:
*
*
* -
*
* PUT
- Adds the specified attribute to the item. If the
* attribute already exists, it is replaced by the new value.
*
*
* -
*
* DELETE
- If no value is specified, the attribute and its
* value are removed from the item. The data type of the specified value
* must match the existing value's data type.
*
*
* If a set of values is specified, then those values are subtracted
* from the old set. For example, if the attribute value was the set
* [a,b,c]
and the DELETE action specified
* [a,c]
, then the final attribute value would be
* [b]
. Specifying an empty set is an error.
*
*
* -
*
* ADD
- If the attribute does not already exist, then the
* attribute and its values are added to the item. If the attribute does
* exist, then the behavior of ADD
depends on the data type of
* the attribute:
*
*
* -
*
* If the existing attribute is a number, and if Value is also a
* number, then the Value is mathematically added to the existing
* attribute. If Value is a negative number, then it is subtracted
* from the existing attribute.
*
*
*
* If you use ADD
to increment or decrement a number value for
* an item that doesn't exist before the update, DynamoDB uses 0 as the
* initial value.
*
*
* In addition, if you use ADD
to update an existing item, and
* intend to increment or decrement an attribute value which does not yet
* exist, DynamoDB uses 0
as the initial value. For example,
* suppose that the item you want to update does not yet have an attribute
* named itemcount, but you decide to ADD
the number
* 3
to this attribute anyway, even though it currently does
* not exist. DynamoDB will create the itemcount attribute, set its
* initial value to 0
, and finally add 3
to it.
* The result will be a new itemcount attribute in the item, with a
* value of 3
.
*
*
* -
*
* If the existing data type is a set, and if the Value is also a
* set, then the Value is added to the existing set. (This is a
* set operation, not mathematical addition.) For example, if the
* attribute value was the set [1,2]
, and the ADD
* action specified [3]
, then the final attribute value would
* be [1,2,3]
. An error occurs if an Add action is specified
* for a set attribute and the attribute type specified does not match the
* existing set type.
*
*
* Both sets must have the same primitive data type. For example, if the
* existing data type is a set of strings, the Value must also be a
* set of strings. The same holds true for number sets and binary sets.
*
*
*
*
* This action is only valid for an existing attribute whose data type is
* number or is a set. Do not use ADD
for any other data types.
*
*
*
*
* If no item with the specified Key is found:
*
*
* -
*
* PUT
- DynamoDB creates a new item with the specified primary
* key, and then adds the attribute.
*
*
* -
*
* DELETE
- Nothing happens; there is no attribute to delete.
*
*
* -
*
* ADD
- DynamoDB creates an item with the supplied primary key
* and number (or set of numbers) for the attribute value. The only data
* types allowed are number and number set; no other data types can be
* specified.
*
*
*
*/
private String action;
/**
* Default constructor for AttributeValueUpdate object. Callers should use
* the setter or fluent setter (with...) methods to initialize the object
* after creating it.
*/
public AttributeValueUpdate() {
}
/**
* Constructs a new AttributeValueUpdate object. Callers should use the
* setter or fluent setter (with...) methods to initialize any additional
* object members.
*
* @param value
* @param action
* Specifies how to perform the update. Valid values are
* PUT
(default), DELETE
, and
* ADD
. The behavior depends on whether the specified
* primary key already exists in the table.
*
* If an item with the specified Key is found in the
* table:
*
*
* -
*
* PUT
- Adds the specified attribute to the item. If
* the attribute already exists, it is replaced by the new value.
*
*
* -
*
* DELETE
- If no value is specified, the attribute and
* its value are removed from the item. The data type of the
* specified value must match the existing value's data type.
*
*
* If a set of values is specified, then those values are
* subtracted from the old set. For example, if the attribute value
* was the set [a,b,c]
and the DELETE action
* specified [a,c]
, then the final attribute value would
* be [b]
. Specifying an empty set is an error.
*
*
* -
*
* ADD
- If the attribute does not already exist, then
* the attribute and its values are added to the item. If the
* attribute does exist, then the behavior of ADD
* depends on the data type of the attribute:
*
*
* -
*
* If the existing attribute is a number, and if Value is also
* a number, then the Value is mathematically added to the
* existing attribute. If Value is a negative number, then it
* is subtracted from the existing attribute.
*
*
*
* If you use ADD
to increment or decrement a number
* value for an item that doesn't exist before the update, DynamoDB
* uses 0 as the initial value.
*
*
* In addition, if you use ADD
to update an existing
* item, and intend to increment or decrement an attribute value
* which does not yet exist, DynamoDB uses 0
as the
* initial value. For example, suppose that the item you want to
* update does not yet have an attribute named itemcount, but
* you decide to ADD
the number 3
to this
* attribute anyway, even though it currently does not exist.
* DynamoDB will create the itemcount attribute, set its
* initial value to 0
, and finally add 3
to
* it. The result will be a new itemcount attribute in the
* item, with a value of 3
.
*
*
* -
*
* If the existing data type is a set, and if the Value is
* also a set, then the Value is added to the existing set.
* (This is a set operation, not mathematical addition.) For
* example, if the attribute value was the set [1,2]
,
* and the ADD
action specified [3]
, then
* the final attribute value would be [1,2,3]
. An error
* occurs if an Add action is specified for a set attribute and the
* attribute type specified does not match the existing set type.
*
*
* Both sets must have the same primitive data type. For example, if
* the existing data type is a set of strings, the Value must
* also be a set of strings. The same holds true for number sets and
* binary sets.
*
*
*
*
* This action is only valid for an existing attribute whose data
* type is number or is a set. Do not use ADD
for any
* other data types.
*
*
*
*
* If no item with the specified Key is found:
*
*
* -
*
* PUT
- DynamoDB creates a new item with the specified
* primary key, and then adds the attribute.
*
*
* -
*
* DELETE
- Nothing happens; there is no attribute to
* delete.
*
*
* -
*
* ADD
- DynamoDB creates an item with the supplied
* primary key and number (or set of numbers) for the attribute
* value. The only data types allowed are number and number set; no
* other data types can be specified.
*
*
*/
public AttributeValueUpdate(AttributeValue value, String action) {
setValue(value);
setAction(action);
}
/**
* Constructs a new AttributeValueUpdate object. Callers should use the
* setter or fluent setter (with...) methods to initialize any additional
* object members.
*
* @param value
* @param action
* Specifies how to perform the update. Valid values are
* PUT
(default), DELETE
, and
* ADD
. The behavior depends on whether the specified
* primary key already exists in the table.
*
* If an item with the specified Key is found in the
* table:
*
*
* -
*
* PUT
- Adds the specified attribute to the item. If
* the attribute already exists, it is replaced by the new value.
*
*
* -
*
* DELETE
- If no value is specified, the attribute and
* its value are removed from the item. The data type of the
* specified value must match the existing value's data type.
*
*
* If a set of values is specified, then those values are
* subtracted from the old set. For example, if the attribute value
* was the set [a,b,c]
and the DELETE action
* specified [a,c]
, then the final attribute value would
* be [b]
. Specifying an empty set is an error.
*
*
* -
*
* ADD
- If the attribute does not already exist, then
* the attribute and its values are added to the item. If the
* attribute does exist, then the behavior of ADD
* depends on the data type of the attribute:
*
*
* -
*
* If the existing attribute is a number, and if Value is also
* a number, then the Value is mathematically added to the
* existing attribute. If Value is a negative number, then it
* is subtracted from the existing attribute.
*
*
*
* If you use ADD
to increment or decrement a number
* value for an item that doesn't exist before the update, DynamoDB
* uses 0 as the initial value.
*
*
* In addition, if you use ADD
to update an existing
* item, and intend to increment or decrement an attribute value
* which does not yet exist, DynamoDB uses 0
as the
* initial value. For example, suppose that the item you want to
* update does not yet have an attribute named itemcount, but
* you decide to ADD
the number 3
to this
* attribute anyway, even though it currently does not exist.
* DynamoDB will create the itemcount attribute, set its
* initial value to 0
, and finally add 3
to
* it. The result will be a new itemcount attribute in the
* item, with a value of 3
.
*
*
* -
*
* If the existing data type is a set, and if the Value is
* also a set, then the Value is added to the existing set.
* (This is a set operation, not mathematical addition.) For
* example, if the attribute value was the set [1,2]
,
* and the ADD
action specified [3]
, then
* the final attribute value would be [1,2,3]
. An error
* occurs if an Add action is specified for a set attribute and the
* attribute type specified does not match the existing set type.
*
*
* Both sets must have the same primitive data type. For example, if
* the existing data type is a set of strings, the Value must
* also be a set of strings. The same holds true for number sets and
* binary sets.
*
*
*
*
* This action is only valid for an existing attribute whose data
* type is number or is a set. Do not use ADD
for any
* other data types.
*
*
*
*
* If no item with the specified Key is found:
*
*
* -
*
* PUT
- DynamoDB creates a new item with the specified
* primary key, and then adds the attribute.
*
*
* -
*
* DELETE
- Nothing happens; there is no attribute to
* delete.
*
*
* -
*
* ADD
- DynamoDB creates an item with the supplied
* primary key and number (or set of numbers) for the attribute
* value. The only data types allowed are number and number set; no
* other data types can be specified.
*
*
*/
public AttributeValueUpdate(AttributeValue value, AttributeAction action) {
setValue(value);
setAction(action.toString());
}
/**
* @param value
*/
public void setValue(AttributeValue value) {
this.value = value;
}
/**
* @return
*/
public AttributeValue getValue() {
return this.value;
}
/**
* @param value
* @return Returns a reference to this object so that method calls can be
* chained together.
*/
public AttributeValueUpdate withValue(AttributeValue value) {
setValue(value);
return this;
}
/**
*
* Specifies how to perform the update. Valid values are PUT
* (default), DELETE
, and ADD
. The behavior
* depends on whether the specified primary key already exists in the table.
*
*
* If an item with the specified Key is found in the table:
*
*
* -
*
* PUT
- Adds the specified attribute to the item. If the
* attribute already exists, it is replaced by the new value.
*
*
* -
*
* DELETE
- If no value is specified, the attribute and its
* value are removed from the item. The data type of the specified value
* must match the existing value's data type.
*
*
* If a set of values is specified, then those values are subtracted
* from the old set. For example, if the attribute value was the set
* [a,b,c]
and the DELETE action specified
* [a,c]
, then the final attribute value would be
* [b]
. Specifying an empty set is an error.
*
*
* -
*
* ADD
- If the attribute does not already exist, then the
* attribute and its values are added to the item. If the attribute does
* exist, then the behavior of ADD
depends on the data type of
* the attribute:
*
*
* -
*
* If the existing attribute is a number, and if Value is also a
* number, then the Value is mathematically added to the existing
* attribute. If Value is a negative number, then it is subtracted
* from the existing attribute.
*
*
*
* If you use ADD
to increment or decrement a number value for
* an item that doesn't exist before the update, DynamoDB uses 0 as the
* initial value.
*
*
* In addition, if you use ADD
to update an existing item, and
* intend to increment or decrement an attribute value which does not yet
* exist, DynamoDB uses 0
as the initial value. For example,
* suppose that the item you want to update does not yet have an attribute
* named itemcount, but you decide to ADD
the number
* 3
to this attribute anyway, even though it currently does
* not exist. DynamoDB will create the itemcount attribute, set its
* initial value to 0
, and finally add 3
to it.
* The result will be a new itemcount attribute in the item, with a
* value of 3
.
*
*
* -
*
* If the existing data type is a set, and if the Value is also a
* set, then the Value is added to the existing set. (This is a
* set operation, not mathematical addition.) For example, if the
* attribute value was the set [1,2]
, and the ADD
* action specified [3]
, then the final attribute value would
* be [1,2,3]
. An error occurs if an Add action is specified
* for a set attribute and the attribute type specified does not match the
* existing set type.
*
*
* Both sets must have the same primitive data type. For example, if the
* existing data type is a set of strings, the Value must also be a
* set of strings. The same holds true for number sets and binary sets.
*
*
*
*
* This action is only valid for an existing attribute whose data type is
* number or is a set. Do not use ADD
for any other data types.
*
*
*
*
* If no item with the specified Key is found:
*
*
* -
*
* PUT
- DynamoDB creates a new item with the specified primary
* key, and then adds the attribute.
*
*
* -
*
* DELETE
- Nothing happens; there is no attribute to delete.
*
*
* -
*
* ADD
- DynamoDB creates an item with the supplied primary key
* and number (or set of numbers) for the attribute value. The only data
* types allowed are number and number set; no other data types can be
* specified.
*
*
*
*
* @param action
* Specifies how to perform the update. Valid values are
* PUT
(default), DELETE
, and
* ADD
. The behavior depends on whether the specified
* primary key already exists in the table.
*
* If an item with the specified Key is found in the
* table:
*
*
* -
*
* PUT
- Adds the specified attribute to the item. If
* the attribute already exists, it is replaced by the new value.
*
*
* -
*
* DELETE
- If no value is specified, the attribute and
* its value are removed from the item. The data type of the
* specified value must match the existing value's data type.
*
*
* If a set of values is specified, then those values are
* subtracted from the old set. For example, if the attribute value
* was the set [a,b,c]
and the DELETE action
* specified [a,c]
, then the final attribute value would
* be [b]
. Specifying an empty set is an error.
*
*
* -
*
* ADD
- If the attribute does not already exist, then
* the attribute and its values are added to the item. If the
* attribute does exist, then the behavior of ADD
* depends on the data type of the attribute:
*
*
* -
*
* If the existing attribute is a number, and if Value is also
* a number, then the Value is mathematically added to the
* existing attribute. If Value is a negative number, then it
* is subtracted from the existing attribute.
*
*
*
* If you use ADD
to increment or decrement a number
* value for an item that doesn't exist before the update, DynamoDB
* uses 0 as the initial value.
*
*
* In addition, if you use ADD
to update an existing
* item, and intend to increment or decrement an attribute value
* which does not yet exist, DynamoDB uses 0
as the
* initial value. For example, suppose that the item you want to
* update does not yet have an attribute named itemcount, but
* you decide to ADD
the number 3
to this
* attribute anyway, even though it currently does not exist.
* DynamoDB will create the itemcount attribute, set its
* initial value to 0
, and finally add 3
to
* it. The result will be a new itemcount attribute in the
* item, with a value of 3
.
*
*
* -
*
* If the existing data type is a set, and if the Value is
* also a set, then the Value is added to the existing set.
* (This is a set operation, not mathematical addition.) For
* example, if the attribute value was the set [1,2]
,
* and the ADD
action specified [3]
, then
* the final attribute value would be [1,2,3]
. An error
* occurs if an Add action is specified for a set attribute and the
* attribute type specified does not match the existing set type.
*
*
* Both sets must have the same primitive data type. For example, if
* the existing data type is a set of strings, the Value must
* also be a set of strings. The same holds true for number sets and
* binary sets.
*
*
*
*
* This action is only valid for an existing attribute whose data
* type is number or is a set. Do not use ADD
for any
* other data types.
*
*
*
*
* If no item with the specified Key is found:
*
*
* -
*
* PUT
- DynamoDB creates a new item with the specified
* primary key, and then adds the attribute.
*
*
* -
*
* DELETE
- Nothing happens; there is no attribute to
* delete.
*
*
* -
*
* ADD
- DynamoDB creates an item with the supplied
* primary key and number (or set of numbers) for the attribute
* value. The only data types allowed are number and number set; no
* other data types can be specified.
*
*
* @see AttributeAction
*/
public void setAction(String action) {
this.action = action;
}
/**
*
* Specifies how to perform the update. Valid values are PUT
* (default), DELETE
, and ADD
. The behavior
* depends on whether the specified primary key already exists in the table.
*
*
* If an item with the specified Key is found in the table:
*
*
* -
*
* PUT
- Adds the specified attribute to the item. If the
* attribute already exists, it is replaced by the new value.
*
*
* -
*
* DELETE
- If no value is specified, the attribute and its
* value are removed from the item. The data type of the specified value
* must match the existing value's data type.
*
*
* If a set of values is specified, then those values are subtracted
* from the old set. For example, if the attribute value was the set
* [a,b,c]
and the DELETE action specified
* [a,c]
, then the final attribute value would be
* [b]
. Specifying an empty set is an error.
*
*
* -
*
* ADD
- If the attribute does not already exist, then the
* attribute and its values are added to the item. If the attribute does
* exist, then the behavior of ADD
depends on the data type of
* the attribute:
*
*
* -
*
* If the existing attribute is a number, and if Value is also a
* number, then the Value is mathematically added to the existing
* attribute. If Value is a negative number, then it is subtracted
* from the existing attribute.
*
*
*
* If you use ADD
to increment or decrement a number value for
* an item that doesn't exist before the update, DynamoDB uses 0 as the
* initial value.
*
*
* In addition, if you use ADD
to update an existing item, and
* intend to increment or decrement an attribute value which does not yet
* exist, DynamoDB uses 0
as the initial value. For example,
* suppose that the item you want to update does not yet have an attribute
* named itemcount, but you decide to ADD
the number
* 3
to this attribute anyway, even though it currently does
* not exist. DynamoDB will create the itemcount attribute, set its
* initial value to 0
, and finally add 3
to it.
* The result will be a new itemcount attribute in the item, with a
* value of 3
.
*
*
* -
*
* If the existing data type is a set, and if the Value is also a
* set, then the Value is added to the existing set. (This is a
* set operation, not mathematical addition.) For example, if the
* attribute value was the set [1,2]
, and the ADD
* action specified [3]
, then the final attribute value would
* be [1,2,3]
. An error occurs if an Add action is specified
* for a set attribute and the attribute type specified does not match the
* existing set type.
*
*
* Both sets must have the same primitive data type. For example, if the
* existing data type is a set of strings, the Value must also be a
* set of strings. The same holds true for number sets and binary sets.
*
*
*
*
* This action is only valid for an existing attribute whose data type is
* number or is a set. Do not use ADD
for any other data types.
*
*
*
*
* If no item with the specified Key is found:
*
*
* -
*
* PUT
- DynamoDB creates a new item with the specified primary
* key, and then adds the attribute.
*
*
* -
*
* DELETE
- Nothing happens; there is no attribute to delete.
*
*
* -
*
* ADD
- DynamoDB creates an item with the supplied primary key
* and number (or set of numbers) for the attribute value. The only data
* types allowed are number and number set; no other data types can be
* specified.
*
*
*
*
* @return Specifies how to perform the update. Valid values are
* PUT
(default), DELETE
, and
* ADD
. The behavior depends on whether the specified
* primary key already exists in the table.
*
* If an item with the specified Key is found in the
* table:
*
*
* -
*
* PUT
- Adds the specified attribute to the item. If
* the attribute already exists, it is replaced by the new value.
*
*
* -
*
* DELETE
- If no value is specified, the attribute and
* its value are removed from the item. The data type of the
* specified value must match the existing value's data type.
*
*
* If a set of values is specified, then those values are
* subtracted from the old set. For example, if the attribute value
* was the set [a,b,c]
and the DELETE action
* specified [a,c]
, then the final attribute value
* would be [b]
. Specifying an empty set is an error.
*
*
* -
*
* ADD
- If the attribute does not already exist, then
* the attribute and its values are added to the item. If the
* attribute does exist, then the behavior of ADD
* depends on the data type of the attribute:
*
*
* -
*
* If the existing attribute is a number, and if Value is
* also a number, then the Value is mathematically added to
* the existing attribute. If Value is a negative number,
* then it is subtracted from the existing attribute.
*
*
*
* If you use ADD
to increment or decrement a number
* value for an item that doesn't exist before the update, DynamoDB
* uses 0 as the initial value.
*
*
* In addition, if you use ADD
to update an existing
* item, and intend to increment or decrement an attribute value
* which does not yet exist, DynamoDB uses 0
as the
* initial value. For example, suppose that the item you want to
* update does not yet have an attribute named itemcount, but
* you decide to ADD
the number 3
to this
* attribute anyway, even though it currently does not exist.
* DynamoDB will create the itemcount attribute, set its
* initial value to 0
, and finally add 3
* to it. The result will be a new itemcount attribute in the
* item, with a value of 3
.
*
*
* -
*
* If the existing data type is a set, and if the Value is
* also a set, then the Value is added to the existing set.
* (This is a set operation, not mathematical addition.) For
* example, if the attribute value was the set [1,2]
,
* and the ADD
action specified [3]
, then
* the final attribute value would be [1,2,3]
. An error
* occurs if an Add action is specified for a set attribute and the
* attribute type specified does not match the existing set type.
*
*
* Both sets must have the same primitive data type. For example, if
* the existing data type is a set of strings, the Value must
* also be a set of strings. The same holds true for number sets and
* binary sets.
*
*
*
*
* This action is only valid for an existing attribute whose data
* type is number or is a set. Do not use ADD
for any
* other data types.
*
*
*
*
* If no item with the specified Key is found:
*
*
* -
*
* PUT
- DynamoDB creates a new item with the specified
* primary key, and then adds the attribute.
*
*
* -
*
* DELETE
- Nothing happens; there is no attribute to
* delete.
*
*
* -
*
* ADD
- DynamoDB creates an item with the supplied
* primary key and number (or set of numbers) for the attribute
* value. The only data types allowed are number and number set; no
* other data types can be specified.
*
*
* @see AttributeAction
*/
public String getAction() {
return this.action;
}
/**
*
* Specifies how to perform the update. Valid values are PUT
* (default), DELETE
, and ADD
. The behavior
* depends on whether the specified primary key already exists in the table.
*
*
* If an item with the specified Key is found in the table:
*
*
* -
*
* PUT
- Adds the specified attribute to the item. If the
* attribute already exists, it is replaced by the new value.
*
*
* -
*
* DELETE
- If no value is specified, the attribute and its
* value are removed from the item. The data type of the specified value
* must match the existing value's data type.
*
*
* If a set of values is specified, then those values are subtracted
* from the old set. For example, if the attribute value was the set
* [a,b,c]
and the DELETE action specified
* [a,c]
, then the final attribute value would be
* [b]
. Specifying an empty set is an error.
*
*
* -
*
* ADD
- If the attribute does not already exist, then the
* attribute and its values are added to the item. If the attribute does
* exist, then the behavior of ADD
depends on the data type of
* the attribute:
*
*
* -
*
* If the existing attribute is a number, and if Value is also a
* number, then the Value is mathematically added to the existing
* attribute. If Value is a negative number, then it is subtracted
* from the existing attribute.
*
*
*
* If you use ADD
to increment or decrement a number value for
* an item that doesn't exist before the update, DynamoDB uses 0 as the
* initial value.
*
*
* In addition, if you use ADD
to update an existing item, and
* intend to increment or decrement an attribute value which does not yet
* exist, DynamoDB uses 0
as the initial value. For example,
* suppose that the item you want to update does not yet have an attribute
* named itemcount, but you decide to ADD
the number
* 3
to this attribute anyway, even though it currently does
* not exist. DynamoDB will create the itemcount attribute, set its
* initial value to 0
, and finally add 3
to it.
* The result will be a new itemcount attribute in the item, with a
* value of 3
.
*
*
* -
*
* If the existing data type is a set, and if the Value is also a
* set, then the Value is added to the existing set. (This is a
* set operation, not mathematical addition.) For example, if the
* attribute value was the set [1,2]
, and the ADD
* action specified [3]
, then the final attribute value would
* be [1,2,3]
. An error occurs if an Add action is specified
* for a set attribute and the attribute type specified does not match the
* existing set type.
*
*
* Both sets must have the same primitive data type. For example, if the
* existing data type is a set of strings, the Value must also be a
* set of strings. The same holds true for number sets and binary sets.
*
*
*
*
* This action is only valid for an existing attribute whose data type is
* number or is a set. Do not use ADD
for any other data types.
*
*
*
*
* If no item with the specified Key is found:
*
*
* -
*
* PUT
- DynamoDB creates a new item with the specified primary
* key, and then adds the attribute.
*
*
* -
*
* DELETE
- Nothing happens; there is no attribute to delete.
*
*
* -
*
* ADD
- DynamoDB creates an item with the supplied primary key
* and number (or set of numbers) for the attribute value. The only data
* types allowed are number and number set; no other data types can be
* specified.
*
*
*
*
* @param action
* Specifies how to perform the update. Valid values are
* PUT
(default), DELETE
, and
* ADD
. The behavior depends on whether the specified
* primary key already exists in the table.
*
* If an item with the specified Key is found in the
* table:
*
*
* -
*
* PUT
- Adds the specified attribute to the item. If
* the attribute already exists, it is replaced by the new value.
*
*
* -
*
* DELETE
- If no value is specified, the attribute and
* its value are removed from the item. The data type of the
* specified value must match the existing value's data type.
*
*
* If a set of values is specified, then those values are
* subtracted from the old set. For example, if the attribute value
* was the set [a,b,c]
and the DELETE action
* specified [a,c]
, then the final attribute value would
* be [b]
. Specifying an empty set is an error.
*
*
* -
*
* ADD
- If the attribute does not already exist, then
* the attribute and its values are added to the item. If the
* attribute does exist, then the behavior of ADD
* depends on the data type of the attribute:
*
*
* -
*
* If the existing attribute is a number, and if Value is also
* a number, then the Value is mathematically added to the
* existing attribute. If Value is a negative number, then it
* is subtracted from the existing attribute.
*
*
*
* If you use ADD
to increment or decrement a number
* value for an item that doesn't exist before the update, DynamoDB
* uses 0 as the initial value.
*
*
* In addition, if you use ADD
to update an existing
* item, and intend to increment or decrement an attribute value
* which does not yet exist, DynamoDB uses 0
as the
* initial value. For example, suppose that the item you want to
* update does not yet have an attribute named itemcount, but
* you decide to ADD
the number 3
to this
* attribute anyway, even though it currently does not exist.
* DynamoDB will create the itemcount attribute, set its
* initial value to 0
, and finally add 3
to
* it. The result will be a new itemcount attribute in the
* item, with a value of 3
.
*
*
* -
*
* If the existing data type is a set, and if the Value is
* also a set, then the Value is added to the existing set.
* (This is a set operation, not mathematical addition.) For
* example, if the attribute value was the set [1,2]
,
* and the ADD
action specified [3]
, then
* the final attribute value would be [1,2,3]
. An error
* occurs if an Add action is specified for a set attribute and the
* attribute type specified does not match the existing set type.
*
*
* Both sets must have the same primitive data type. For example, if
* the existing data type is a set of strings, the Value must
* also be a set of strings. The same holds true for number sets and
* binary sets.
*
*
*
*
* This action is only valid for an existing attribute whose data
* type is number or is a set. Do not use ADD
for any
* other data types.
*
*
*
*
* If no item with the specified Key is found:
*
*
* -
*
* PUT
- DynamoDB creates a new item with the specified
* primary key, and then adds the attribute.
*
*
* -
*
* DELETE
- Nothing happens; there is no attribute to
* delete.
*
*
* -
*
* ADD
- DynamoDB creates an item with the supplied
* primary key and number (or set of numbers) for the attribute
* value. The only data types allowed are number and number set; no
* other data types can be specified.
*
*
* @return Returns a reference to this object so that method calls can be
* chained together.
* @see AttributeAction
*/
public AttributeValueUpdate withAction(String action) {
setAction(action);
return this;
}
/**
*
* Specifies how to perform the update. Valid values are PUT
* (default), DELETE
, and ADD
. The behavior
* depends on whether the specified primary key already exists in the table.
*
*
* If an item with the specified Key is found in the table:
*
*
* -
*
* PUT
- Adds the specified attribute to the item. If the
* attribute already exists, it is replaced by the new value.
*
*
* -
*
* DELETE
- If no value is specified, the attribute and its
* value are removed from the item. The data type of the specified value
* must match the existing value's data type.
*
*
* If a set of values is specified, then those values are subtracted
* from the old set. For example, if the attribute value was the set
* [a,b,c]
and the DELETE action specified
* [a,c]
, then the final attribute value would be
* [b]
. Specifying an empty set is an error.
*
*
* -
*
* ADD
- If the attribute does not already exist, then the
* attribute and its values are added to the item. If the attribute does
* exist, then the behavior of ADD
depends on the data type of
* the attribute:
*
*
* -
*
* If the existing attribute is a number, and if Value is also a
* number, then the Value is mathematically added to the existing
* attribute. If Value is a negative number, then it is subtracted
* from the existing attribute.
*
*
*
* If you use ADD
to increment or decrement a number value for
* an item that doesn't exist before the update, DynamoDB uses 0 as the
* initial value.
*
*
* In addition, if you use ADD
to update an existing item, and
* intend to increment or decrement an attribute value which does not yet
* exist, DynamoDB uses 0
as the initial value. For example,
* suppose that the item you want to update does not yet have an attribute
* named itemcount, but you decide to ADD
the number
* 3
to this attribute anyway, even though it currently does
* not exist. DynamoDB will create the itemcount attribute, set its
* initial value to 0
, and finally add 3
to it.
* The result will be a new itemcount attribute in the item, with a
* value of 3
.
*
*
* -
*
* If the existing data type is a set, and if the Value is also a
* set, then the Value is added to the existing set. (This is a
* set operation, not mathematical addition.) For example, if the
* attribute value was the set [1,2]
, and the ADD
* action specified [3]
, then the final attribute value would
* be [1,2,3]
. An error occurs if an Add action is specified
* for a set attribute and the attribute type specified does not match the
* existing set type.
*
*
* Both sets must have the same primitive data type. For example, if the
* existing data type is a set of strings, the Value must also be a
* set of strings. The same holds true for number sets and binary sets.
*
*
*
*
* This action is only valid for an existing attribute whose data type is
* number or is a set. Do not use ADD
for any other data types.
*
*
*
*
* If no item with the specified Key is found:
*
*
* -
*
* PUT
- DynamoDB creates a new item with the specified primary
* key, and then adds the attribute.
*
*
* -
*
* DELETE
- Nothing happens; there is no attribute to delete.
*
*
* -
*
* ADD
- DynamoDB creates an item with the supplied primary key
* and number (or set of numbers) for the attribute value. The only data
* types allowed are number and number set; no other data types can be
* specified.
*
*
*
*
* @param action
* Specifies how to perform the update. Valid values are
* PUT
(default), DELETE
, and
* ADD
. The behavior depends on whether the specified
* primary key already exists in the table.
*
* If an item with the specified Key is found in the
* table:
*
*
* -
*
* PUT
- Adds the specified attribute to the item. If
* the attribute already exists, it is replaced by the new value.
*
*
* -
*
* DELETE
- If no value is specified, the attribute and
* its value are removed from the item. The data type of the
* specified value must match the existing value's data type.
*
*
* If a set of values is specified, then those values are
* subtracted from the old set. For example, if the attribute value
* was the set [a,b,c]
and the DELETE action
* specified [a,c]
, then the final attribute value would
* be [b]
. Specifying an empty set is an error.
*
*
* -
*
* ADD
- If the attribute does not already exist, then
* the attribute and its values are added to the item. If the
* attribute does exist, then the behavior of ADD
* depends on the data type of the attribute:
*
*
* -
*
* If the existing attribute is a number, and if Value is also
* a number, then the Value is mathematically added to the
* existing attribute. If Value is a negative number, then it
* is subtracted from the existing attribute.
*
*
*
* If you use ADD
to increment or decrement a number
* value for an item that doesn't exist before the update, DynamoDB
* uses 0 as the initial value.
*
*
* In addition, if you use ADD
to update an existing
* item, and intend to increment or decrement an attribute value
* which does not yet exist, DynamoDB uses 0
as the
* initial value. For example, suppose that the item you want to
* update does not yet have an attribute named itemcount, but
* you decide to ADD
the number 3
to this
* attribute anyway, even though it currently does not exist.
* DynamoDB will create the itemcount attribute, set its
* initial value to 0
, and finally add 3
to
* it. The result will be a new itemcount attribute in the
* item, with a value of 3
.
*
*
* -
*
* If the existing data type is a set, and if the Value is
* also a set, then the Value is added to the existing set.
* (This is a set operation, not mathematical addition.) For
* example, if the attribute value was the set [1,2]
,
* and the ADD
action specified [3]
, then
* the final attribute value would be [1,2,3]
. An error
* occurs if an Add action is specified for a set attribute and the
* attribute type specified does not match the existing set type.
*
*
* Both sets must have the same primitive data type. For example, if
* the existing data type is a set of strings, the Value must
* also be a set of strings. The same holds true for number sets and
* binary sets.
*
*
*
*
* This action is only valid for an existing attribute whose data
* type is number or is a set. Do not use ADD
for any
* other data types.
*
*
*
*
* If no item with the specified Key is found:
*
*
* -
*
* PUT
- DynamoDB creates a new item with the specified
* primary key, and then adds the attribute.
*
*
* -
*
* DELETE
- Nothing happens; there is no attribute to
* delete.
*
*
* -
*
* ADD
- DynamoDB creates an item with the supplied
* primary key and number (or set of numbers) for the attribute
* value. The only data types allowed are number and number set; no
* other data types can be specified.
*
*
* @see AttributeAction
*/
public void setAction(AttributeAction action) {
this.action = action.toString();
}
/**
*
* Specifies how to perform the update. Valid values are PUT
* (default), DELETE
, and ADD
. The behavior
* depends on whether the specified primary key already exists in the table.
*
*
* If an item with the specified Key is found in the table:
*
*
* -
*
* PUT
- Adds the specified attribute to the item. If the
* attribute already exists, it is replaced by the new value.
*
*
* -
*
* DELETE
- If no value is specified, the attribute and its
* value are removed from the item. The data type of the specified value
* must match the existing value's data type.
*
*
* If a set of values is specified, then those values are subtracted
* from the old set. For example, if the attribute value was the set
* [a,b,c]
and the DELETE action specified
* [a,c]
, then the final attribute value would be
* [b]
. Specifying an empty set is an error.
*
*
* -
*
* ADD
- If the attribute does not already exist, then the
* attribute and its values are added to the item. If the attribute does
* exist, then the behavior of ADD
depends on the data type of
* the attribute:
*
*
* -
*
* If the existing attribute is a number, and if Value is also a
* number, then the Value is mathematically added to the existing
* attribute. If Value is a negative number, then it is subtracted
* from the existing attribute.
*
*
*
* If you use ADD
to increment or decrement a number value for
* an item that doesn't exist before the update, DynamoDB uses 0 as the
* initial value.
*
*
* In addition, if you use ADD
to update an existing item, and
* intend to increment or decrement an attribute value which does not yet
* exist, DynamoDB uses 0
as the initial value. For example,
* suppose that the item you want to update does not yet have an attribute
* named itemcount, but you decide to ADD
the number
* 3
to this attribute anyway, even though it currently does
* not exist. DynamoDB will create the itemcount attribute, set its
* initial value to 0
, and finally add 3
to it.
* The result will be a new itemcount attribute in the item, with a
* value of 3
.
*
*
* -
*
* If the existing data type is a set, and if the Value is also a
* set, then the Value is added to the existing set. (This is a
* set operation, not mathematical addition.) For example, if the
* attribute value was the set [1,2]
, and the ADD
* action specified [3]
, then the final attribute value would
* be [1,2,3]
. An error occurs if an Add action is specified
* for a set attribute and the attribute type specified does not match the
* existing set type.
*
*
* Both sets must have the same primitive data type. For example, if the
* existing data type is a set of strings, the Value must also be a
* set of strings. The same holds true for number sets and binary sets.
*
*
*
*
* This action is only valid for an existing attribute whose data type is
* number or is a set. Do not use ADD
for any other data types.
*
*
*
*
* If no item with the specified Key is found:
*
*
* -
*
* PUT
- DynamoDB creates a new item with the specified primary
* key, and then adds the attribute.
*
*
* -
*
* DELETE
- Nothing happens; there is no attribute to delete.
*
*
* -
*
* ADD
- DynamoDB creates an item with the supplied primary key
* and number (or set of numbers) for the attribute value. The only data
* types allowed are number and number set; no other data types can be
* specified.
*
*
*
*
* @param action
* Specifies how to perform the update. Valid values are
* PUT
(default), DELETE
, and
* ADD
. The behavior depends on whether the specified
* primary key already exists in the table.
*
* If an item with the specified Key is found in the
* table:
*
*
* -
*
* PUT
- Adds the specified attribute to the item. If
* the attribute already exists, it is replaced by the new value.
*
*
* -
*
* DELETE
- If no value is specified, the attribute and
* its value are removed from the item. The data type of the
* specified value must match the existing value's data type.
*
*
* If a set of values is specified, then those values are
* subtracted from the old set. For example, if the attribute value
* was the set [a,b,c]
and the DELETE action
* specified [a,c]
, then the final attribute value would
* be [b]
. Specifying an empty set is an error.
*
*
* -
*
* ADD
- If the attribute does not already exist, then
* the attribute and its values are added to the item. If the
* attribute does exist, then the behavior of ADD
* depends on the data type of the attribute:
*
*
* -
*
* If the existing attribute is a number, and if Value is also
* a number, then the Value is mathematically added to the
* existing attribute. If Value is a negative number, then it
* is subtracted from the existing attribute.
*
*
*
* If you use ADD
to increment or decrement a number
* value for an item that doesn't exist before the update, DynamoDB
* uses 0 as the initial value.
*
*
* In addition, if you use ADD
to update an existing
* item, and intend to increment or decrement an attribute value
* which does not yet exist, DynamoDB uses 0
as the
* initial value. For example, suppose that the item you want to
* update does not yet have an attribute named itemcount, but
* you decide to ADD
the number 3
to this
* attribute anyway, even though it currently does not exist.
* DynamoDB will create the itemcount attribute, set its
* initial value to 0
, and finally add 3
to
* it. The result will be a new itemcount attribute in the
* item, with a value of 3
.
*
*
* -
*
* If the existing data type is a set, and if the Value is
* also a set, then the Value is added to the existing set.
* (This is a set operation, not mathematical addition.) For
* example, if the attribute value was the set [1,2]
,
* and the ADD
action specified [3]
, then
* the final attribute value would be [1,2,3]
. An error
* occurs if an Add action is specified for a set attribute and the
* attribute type specified does not match the existing set type.
*
*
* Both sets must have the same primitive data type. For example, if
* the existing data type is a set of strings, the Value must
* also be a set of strings. The same holds true for number sets and
* binary sets.
*
*
*
*
* This action is only valid for an existing attribute whose data
* type is number or is a set. Do not use ADD
for any
* other data types.
*
*
*
*
* If no item with the specified Key is found:
*
*
* -
*
* PUT
- DynamoDB creates a new item with the specified
* primary key, and then adds the attribute.
*
*
* -
*
* DELETE
- Nothing happens; there is no attribute to
* delete.
*
*
* -
*
* ADD
- DynamoDB creates an item with the supplied
* primary key and number (or set of numbers) for the attribute
* value. The only data types allowed are number and number set; no
* other data types can be specified.
*
*
* @return Returns a reference to this object so that method calls can be
* chained together.
* @see AttributeAction
*/
public AttributeValueUpdate withAction(AttributeAction action) {
setAction(action);
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 (getValue() != null)
sb.append("Value: " + getValue() + ",");
if (getAction() != null)
sb.append("Action: " + getAction());
sb.append("}");
return sb.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof AttributeValueUpdate == false)
return false;
AttributeValueUpdate other = (AttributeValueUpdate) obj;
if (other.getValue() == null ^ this.getValue() == null)
return false;
if (other.getValue() != null
&& other.getValue().equals(this.getValue()) == false)
return false;
if (other.getAction() == null ^ this.getAction() == null)
return false;
if (other.getAction() != null
&& other.getAction().equals(this.getAction()) == false)
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode
+ ((getValue() == null) ? 0 : getValue().hashCode());
hashCode = prime * hashCode
+ ((getAction() == null) ? 0 : getAction().hashCode());
return hashCode;
}
@Override
public AttributeValueUpdate clone() {
try {
return (AttributeValueUpdate) super.clone();
} catch (CloneNotSupportedException e) {
throw new IllegalStateException(
"Got a CloneNotSupportedException from Object.clone() "
+ "even though we're Cloneable!", e);
}
}
}