}
@Override
protected Future<List<Key>> doBatchPut( Transaction txn,
final List<Entity> entities) {
PutRequest baseReq = new PutRequest();
if (txn != null) {
TransactionImpl.ensureTxnActive(txn);
baseReq.setTransaction(InternalTransactionV3.localTxnToRemoteTxn(txn));
}
boolean group = !baseReq.hasTransaction();
List<Integer> order = Lists.newArrayListWithCapacity(entities.size());
Iterator<PutRequest> batches = putBatcher.getBatches(entities, baseReq,
baseReq.getSerializedSize(), group, order);
List<Future<PutResponse>> futures = putBatcher.makeCalls(batches);
return registerInTransaction(txn,
new ReorderingMultiFuture<PutResponse, List<Key>>(futures, order) {
@Override