1 package com
.google
.appengine
.api
.datastore
;
3 import static com
.google
.common
.base
.Preconditions
.checkNotNull
;
5 import com
.google
.appengine
.api
.taskqueue
.TaskQueuePb
.TaskQueueAddRequest
;
6 import com
.google
.apphosting
.api
.AppEngineInternal
;
9 * {@link TransactionHelper} enables the task queue API to serialize a datastore transaction
10 * without knowing the details of how it is implemented.
13 public final class TransactionHelper
{
15 private TransactionHelper() {}
18 * Sets either the transaction or datastore_transaction field in a TaskQueueAddRequest depending
19 * on what kind of transaction is provided.
21 public static void setTransaction(Transaction txn
, TaskQueueAddRequest request
) {
23 checkNotNull(request
);
25 if (InternalTransactionCloudDatastoreV1
.isV1Transaction(txn
)) {
26 request
.setDatastoreTransactionAsBytes(
27 InternalTransactionCloudDatastoreV1
.get(txn
).getTransactionBytes().toByteArray());
29 request
.setTransaction(InternalTransactionV3
.toProto(txn
));