com.amazonaws.services.dynamodbv2.model.AttributeValueUpdate Maven / Gradle / Ivy
Show all versions of aws-java-sdk-dynamodb Show documentation
/*
* Copyright 2012-2017 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;
import javax.annotation.Generated;
/**
*
* 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.
*
*
* @see AWS API
* Documentation
*/
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class AttributeValueUpdate implements Serializable, Cloneable {
/**
*
* Represents the data for an attribute.
*
*
* Each attribute value is described as a name-value pair. The name is the data type, and the value is the data
* itself.
*
*
* For more information, see Data TYpes in the Amazon DynamoDB Developer Guide.
*
*/
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
* Represents the data for an attribute.
*
* Each attribute value is described as a name-value pair. The name is the data type, and the value is the
* data itself.
*
*
* For more information, see Data TYpes in the Amazon DynamoDB Developer Guide.
* @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
* Represents the data for an attribute.
*
* Each attribute value is described as a name-value pair. The name is the data type, and the value is the
* data itself.
*
*
* For more information, see Data TYpes in the Amazon DynamoDB Developer Guide.
* @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());
}
/**
*
* Represents the data for an attribute.
*
*
* Each attribute value is described as a name-value pair. The name is the data type, and the value is the data
* itself.
*
*
* For more information, see Data TYpes in the Amazon DynamoDB Developer Guide.
*
*
* @param value
* Represents the data for an attribute.
*
* Each attribute value is described as a name-value pair. The name is the data type, and the value is the
* data itself.
*
*
* For more information, see Data TYpes in the Amazon DynamoDB Developer Guide.
*/
public void setValue(AttributeValue value) {
this.value = value;
}
/**
*
* Represents the data for an attribute.
*
*
* Each attribute value is described as a name-value pair. The name is the data type, and the value is the data
* itself.
*
*
* For more information, see Data TYpes in the Amazon DynamoDB Developer Guide.
*
*
* @return Represents the data for an attribute.
*
* Each attribute value is described as a name-value pair. The name is the data type, and the value is the
* data itself.
*
*
* For more information, see Data TYpes in the Amazon DynamoDB Developer Guide.
*/
public AttributeValue getValue() {
return this.value;
}
/**
*
* Represents the data for an attribute.
*
*
* Each attribute value is described as a name-value pair. The name is the data type, and the value is the data
* itself.
*
*
* For more information, see Data TYpes in the Amazon DynamoDB Developer Guide.
*
*
* @param value
* Represents the data for an attribute.
*
* Each attribute value is described as a name-value pair. The name is the data type, and the value is the
* data itself.
*
*
* For more information, see Data TYpes in the Amazon DynamoDB Developer Guide.
* @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: ").append(getValue()).append(",");
if (getAction() != null)
sb.append("Action: ").append(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);
}
}
}