Java tutorial
/* * Copyright 2014-2015 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.amazon.janusgraph.diskstorage.dynamodb.mutation; import java.util.Map; import org.janusgraph.diskstorage.BackendException; import com.amazon.janusgraph.diskstorage.dynamodb.Constants; import com.amazon.janusgraph.diskstorage.dynamodb.DynamoDbDelegate; import com.amazon.janusgraph.diskstorage.dynamodb.ExponentialBackoff.DeleteItem; import com.amazon.janusgraph.diskstorage.dynamodb.ExponentialBackoff.UpdateItem; import com.amazonaws.services.dynamodbv2.model.AttributeValue; import com.amazonaws.services.dynamodbv2.model.DeleteItemRequest; import com.amazonaws.services.dynamodbv2.model.UpdateItemRequest; import com.amazonaws.services.dynamodbv2.model.UpdateItemResult; import lombok.RequiredArgsConstructor; /** * * @author Alexander Patrikalakis * @author Michael Rodaitis * */ @RequiredArgsConstructor public class SingleUpdateWithCleanupWorker implements MutateWorker { private static final int ATTRIBUTES_IN_EMPTY_SINGLE_ITEM = 1; private final UpdateItemRequest updateItemRequest; private final DynamoDbDelegate dynamoDbDelegate; @Override public Void call() throws BackendException { final UpdateItem updateBackoff = new UpdateItem(updateItemRequest, dynamoDbDelegate); final UpdateItemResult result = updateBackoff.runWithBackoff(); final Map<String, AttributeValue> item = result.getAttributes(); if (item == null) { // bail return null; } // If the record has no Titan columns left after deletions occur, then just delete the record if (item.containsKey(Constants.JANUSGRAPH_HASH_KEY) && item.size() == ATTRIBUTES_IN_EMPTY_SINGLE_ITEM) { final DeleteItem deleteBackoff = new DeleteItem(new DeleteItemRequest() .withTableName(updateItemRequest.getTableName()).withKey(updateItemRequest.getKey()), dynamoDbDelegate); deleteBackoff.runWithBackoff(); } // void return null; } }