private void processBatchGetRequest(Map<String, Class<?>> classesByTableName,
Map<String, KeysAndAttributes> requestItems,
Map<String, List<Object>> resultSet) {
BatchGetItemResult batchGetItemResult = null;
BatchGetItemRequest batchGetItemRequest = new BatchGetItemRequest();
batchGetItemRequest.setRequestItems(requestItems);
do {
if ( batchGetItemResult != null ) {
batchGetItemRequest.setRequestItems(batchGetItemResult.getUnprocessedKeys());
}
batchGetItemResult = db.batchGetItem(batchGetItemRequest);
Map<String, List<Map<String, AttributeValue>>> responses = batchGetItemResult.getResponses();
for ( String tableName : responses.keySet() ) {
List<Object> objects = null;
if ( resultSet.get(tableName) != null ) {
objects = resultSet.get(tableName);
} else {
objects = new LinkedList<Object>();
}
for ( Map<String, AttributeValue> item : responses.get(tableName) ) {
objects.add(marshallIntoObject(classesByTableName.get(tableName), item));
}
resultSet.put(tableName, objects);
}
// To see whether there are unprocessed keys.
} while ( batchGetItemResult.getUnprocessedKeys() != null && batchGetItemResult.getUnprocessedKeys().size() > 0 );
}