Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * 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.amazonaws.services.dynamodbv2.document.internal;
 
 import static com.amazonaws.services.dynamodbv2.document.internal.InternalUtils.toAttributeValueMap;
 import static com.amazonaws.services.dynamodbv2.document.internal.InternalUtils.toAttributeValues;
 
 import java.util.List;
 import java.util.Map;
 
The implementation for BatchWriteItemApi.
 
 public class BatchWriteItemImpl implements BatchWriteItemApi {
     private final AmazonDynamoDB client;
 
     public BatchWriteItemImpl(AmazonDynamoDB client) {
         this. = client;
     }
 
     @Override
             TableWriteItems... tableWriteItems) {
         return doBatchWriteItem(new BatchWriteItemSpec()
                 .withTableWriteItems(tableWriteItems));
     }
 
     @Override
         return doBatchWriteItem(spec);
     }
 
     @Override
             Map<StringList<WriteRequest>> unprocessedItems) {
         return doBatchWriteItem(new BatchWriteItemSpec()
                 .withUnprocessedItems(unprocessedItems));
     }
 
         final Collection<TableWriteItemstableWriteItemsCol =
                 spec.getTableWriteItems();
         // Unprocessed items take precedence
         Map<StringList<WriteRequest>> requestItems =
                 spec.getUnprocessedItems();
         if (requestItems == null || requestItems.size() == 0) {
             // handle new requests only if there is no unprocessed items
             requestItems = new LinkedHashMap<StringList<WriteRequest>>();
         }
         if (tableWriteItemsCol != null) {
             for (TableWriteItems tableWriteItemstableWriteItemsCol) {
                 // items to be put to a single table
                 Collection<ItemitemsToPut = tableWriteItems.getItemsToPut();
                 // primary keys to deleted in a single table
                 final List<PrimaryKeypksToDelete =
                         tableWriteItems.getPrimaryKeysToDelete();
                 // Merge them into a list of write requests to a single table
                 final int numPut = itemsToPut == null ? 0 : itemsToPut.size();
                 final int numDel = pksToDelete == null ? 0 : pksToDelete.size();
                 final List<WriteRequestwriteRequests =
                     new ArrayList<WriteRequest>(numPut + numDel);
                 // Put requests for a single table
                 if (itemsToPut != null) {
                     for (Item itemitemsToPut) {
                         writeRequests.add(new WriteRequest()
                             .withPutRequest(new PutRequest()
                                 .withItem(toAttributeValues(item))));
                     }
                 }
                 // Delete requests for a single table
                 if (pksToDelete != null) {
                    for (PrimaryKey pkToDeletepksToDelete) {
                        writeRequests.add(new WriteRequest()
                            .withDeleteRequest(new DeleteRequest()
                                .withKey(toAttributeValueMap(pkToDelete))));
                    }
                }
                requestItems.put(tableWriteItems.getTableName(), writeRequests);
            }
        }
        BatchWriteItemRequest req = spec.getRequest()
            .withRequestItems(requestItems)
        BatchWriteItemResult result = .batchWriteItem(req);
        return new BatchWriteItemOutcome(result);
    }
New to GrepCode? Check out our FAQ X