com.amazonaws.services.dynamodbv2.datamodeling
Class DynamoDBMapper.SaveObjectHandler

java.lang.Object
  extended by com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.SaveObjectHandler
Enclosing class:
DynamoDBMapper

protected abstract class DynamoDBMapper.SaveObjectHandler
extends Object

The handler for saving object using DynamoDBMapper. Caller should implement the abstract methods to provide the expected behavior on each scenario, and this handler will take care of all the other basic workflow and common operations.


Field Summary
protected  Class<?> clazz
           
protected  Object object
           
protected  String userProvidedConditionOperator
          Condition operator on the additional expected value conditions specified by the user.
protected  Map<String,ExpectedAttributeValue> userProvidedExpectedValueConditions
          Additional expected value conditions specified by the user.
 
Constructor Summary
DynamoDBMapper.SaveObjectHandler(Class<?> clazz, Object object, String tableName, DynamoDBMapperConfig saveConfig, DynamoDBSaveExpression saveExpression)
          Constructs a handler for saving the specified model object.
 
Method Summary
protected  PutItemResult doPutItem()
          Save the item using a PutItem request.
protected  UpdateItemResult doUpdateItem()
          Save the item using a UpdateItem request.
 void execute()
          The general workflow of a save operation.
protected abstract  void executeLowLevelRequest()
          Implement this method to send the low-level request that is necessary to complete the save operation.
protected  Map<String,AttributeValueUpdate> getAttributeValueUpdates()
          Get the map of AttributeValueUpdate on each modeled attribute.
protected  List<com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.ValueUpdate> getInMemoryUpdates()
          Get the list of all the necessary in-memory update on the object.
protected  Map<String,AttributeValue> getKeyAttributeValues()
          Get the map of all the specified key of the saved object.
protected  DynamoDBMapperConfig.SaveBehavior getLocalSaveBehavior()
          Get the SaveBehavior used locally for this save operation.
protected  String getTableName()
          Get the table name
protected  Map<String,ExpectedAttributeValue> mergeExpectedAttributeValueConditions()
          Merge and return all the expected value conditions (either user-specified or imposed by the internal implementation of DynamoDBMapper) for this save operation.
protected abstract  void onKeyAttributeValue(String attributeName, AttributeValue keyAttributeValue)
          Implement this method to do the necessary operations when a key attribute is set with some value.
protected  void onNonKeyAttribute(String attributeName, AttributeValue currentValue)
          Implement this method for necessary operations when a non-key attribute is set a non-null value in the object.
protected abstract  void onNullNonKeyAttribute(String attributeName)
          Implement this method for necessary operations when a non-key attribute is set null in the object.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

object

protected final Object object

clazz

protected final Class<?> clazz

userProvidedExpectedValueConditions

protected final Map<String,ExpectedAttributeValue> userProvidedExpectedValueConditions
Additional expected value conditions specified by the user.


userProvidedConditionOperator

protected final String userProvidedConditionOperator
Condition operator on the additional expected value conditions specified by the user.

Constructor Detail

DynamoDBMapper.SaveObjectHandler

public DynamoDBMapper.SaveObjectHandler(Class<?> clazz,
                                        Object object,
                                        String tableName,
                                        DynamoDBMapperConfig saveConfig,
                                        DynamoDBSaveExpression saveExpression)
Constructs a handler for saving the specified model object.

Parameters:
object - The model object to be saved.
clazz - The domain class of the object.
tableName - The table name.
saveConifg - The mapper configuration used for this save.
saveExpression - The save expression, including the user-provided conditions and an optional logic operator.
Method Detail

execute

public void execute()
The general workflow of a save operation.


onKeyAttributeValue

protected abstract void onKeyAttributeValue(String attributeName,
                                            AttributeValue keyAttributeValue)
Implement this method to do the necessary operations when a key attribute is set with some value.

Parameters:
attributeName - The name of the key attribute.
keyAttributeValue - The AttributeValue of the key attribute as specified in the object.

onNonKeyAttribute

protected void onNonKeyAttribute(String attributeName,
                                 AttributeValue currentValue)
Implement this method for necessary operations when a non-key attribute is set a non-null value in the object. The default implementation simply adds a "PUT" update for the given attribute.

Parameters:
attributeName - The name of the non-key attribute.
currentValue - The updated value of the given attribute.

onNullNonKeyAttribute

protected abstract void onNullNonKeyAttribute(String attributeName)
Implement this method for necessary operations when a non-key attribute is set null in the object.

Parameters:
attributeName - The name of the non-key attribute.

executeLowLevelRequest

protected abstract void executeLowLevelRequest()
Implement this method to send the low-level request that is necessary to complete the save operation.


getLocalSaveBehavior

protected DynamoDBMapperConfig.SaveBehavior getLocalSaveBehavior()
Get the SaveBehavior used locally for this save operation.


getTableName

protected String getTableName()
Get the table name


getKeyAttributeValues

protected Map<String,AttributeValue> getKeyAttributeValues()
Get the map of all the specified key of the saved object.


getAttributeValueUpdates

protected Map<String,AttributeValueUpdate> getAttributeValueUpdates()
Get the map of AttributeValueUpdate on each modeled attribute.


mergeExpectedAttributeValueConditions

protected Map<String,ExpectedAttributeValue> mergeExpectedAttributeValueConditions()
Merge and return all the expected value conditions (either user-specified or imposed by the internal implementation of DynamoDBMapper) for this save operation.


getInMemoryUpdates

protected List<com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.ValueUpdate> getInMemoryUpdates()
Get the list of all the necessary in-memory update on the object.


doUpdateItem

protected UpdateItemResult doUpdateItem()
Save the item using a UpdateItem request. The handler will call this method if

The ReturnedValues parameter for the UpdateItem request is set as ALL_NEW, which means the service should return all of the attributes of the new version of the item after the update. The handler will use the returned attributes to detect silent failure on the server-side.


doPutItem

protected PutItemResult doPutItem()
Save the item using a PutItem request. The handler will call this method if



Copyright © 2016. All rights reserved.