1.9.30 sync.
[gae.git] / java / src / main / com / google / appengine / api / datastore / TransactionHelper.java
blobefc0a0915d077522b85f5c948b8d2bb725d285e3
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;
8 /**
9 * {@link TransactionHelper} enables the task queue API to serialize a datastore transaction
10 * without knowing the details of how it is implemented.
12 @AppEngineInternal
13 public final class TransactionHelper {
15 private TransactionHelper() {}
17 /**
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) {
22 checkNotNull(txn);
23 checkNotNull(request);
25 if (InternalTransactionCloudDatastoreV1.isV1Transaction(txn)) {
26 request.setDatastoreTransactionAsBytes(
27 InternalTransactionCloudDatastoreV1.get(txn).getTransactionBytes().toByteArray());
28 } else {
29 request.setTransaction(InternalTransactionV3.toProto(txn));