Example usage for com.amazonaws.services.dynamodbv2.model UpdateItemRequest setReturnValues

List of usage examples for com.amazonaws.services.dynamodbv2.model UpdateItemRequest setReturnValues

Introduction

In this page you can find the example usage for com.amazonaws.services.dynamodbv2.model UpdateItemRequest setReturnValues.

Prototype


public void setReturnValues(ReturnValue returnValues) 

Source Link

Document

Use ReturnValues if you want to get the item attributes as they appear before or after they are updated.

Usage

From source file:org.iternine.jeppetto.dao.dynamodb.DynamoDBQueryModelDAO.java

License:Apache License

private T updateItem(Map<String, AttributeValue> key, UpdateExpressionBuilder updateExpressionBuilder,
        ConditionExpressionBuilder conditionExpressionBuilder, ResultFromUpdate resultFromUpdate) {
    try {/*from w  ww .  j a  va 2 s .  com*/
        UpdateItemRequest updateItemRequest = new UpdateItemRequest().withTableName(tableName).withKey(key)
                .withUpdateExpression(updateExpressionBuilder.getExpression());

        Map<String, AttributeValue> expressionAttributeValues;
        Map<String, String> expressionAttributeNames;

        if (conditionExpressionBuilder == null) {
            expressionAttributeValues = updateExpressionBuilder.getExpressionAttributeValues();
            expressionAttributeNames = updateExpressionBuilder.getExpressionAttributeNames();
        } else {
            expressionAttributeValues = new LinkedHashMap<String, AttributeValue>();
            expressionAttributeNames = new LinkedHashMap<String, String>();

            expressionAttributeValues.putAll(updateExpressionBuilder.getExpressionAttributeValues());
            expressionAttributeNames.putAll(updateExpressionBuilder.getExpressionAttributeNames());

            expressionAttributeValues.putAll(conditionExpressionBuilder.getExpressionAttributeValues());
            expressionAttributeNames.putAll(conditionExpressionBuilder.getExpressionAttributeNames());

            updateItemRequest.setConditionExpression(conditionExpressionBuilder.getExpression());
        }

        if (!expressionAttributeValues.isEmpty()) {
            updateItemRequest.setExpressionAttributeValues(expressionAttributeValues);
        }

        if (!expressionAttributeNames.isEmpty()) {
            updateItemRequest.setExpressionAttributeNames(expressionAttributeNames);
        }

        if (resultFromUpdate != ResultFromUpdate.ReturnNone) {
            updateItemRequest
                    .setReturnValues(resultFromUpdate == ResultFromUpdate.ReturnPreUpdate ? ReturnValue.ALL_OLD
                            : ReturnValue.ALL_NEW);

            UpdateItemResult result = dynamoDB.updateItem(updateItemRequest);

            T t = ConversionUtil.getObjectFromItem(result.getAttributes(), entityClass);

            ((DynamoDBPersistable) t).__markPersisted(dynamoDB.toString());

            return t;
        } else {
            dynamoDB.updateItem(updateItemRequest);

            return null;
        }
    } catch (Exception e) {
        throw new JeppettoException(e);
    }
}