1 // Copyright 2007 Google Inc. All rights reserved.
3 package com
.google
.appengine
.api
.datastore
;
5 import static com
.google
.appengine
.api
.datastore
.FutureHelper
.quietGet
;
7 import java
.util
.Collection
;
12 * An implementation of {@link DatastoreService} that farms out all calls to a provided
13 * {@link AsyncDatastoreService}.
16 final class DatastoreServiceImpl
implements DatastoreService
{
18 private final AsyncDatastoreServiceImpl async
;
20 public DatastoreServiceImpl(AsyncDatastoreServiceImpl async
) {
25 public Transaction
getCurrentTransaction() {
26 return async
.getCurrentTransaction();
30 public Transaction
getCurrentTransaction(Transaction returnedIfNoTxn
) {
31 return async
.getCurrentTransaction(returnedIfNoTxn
);
35 public Entity
get(Transaction txn
, Key key
) throws EntityNotFoundException
{
36 return quietGet(async
.get(txn
, key
), EntityNotFoundException
.class);
40 public Entity
get(Key key
) throws EntityNotFoundException
{
41 return quietGet(async
.get(key
), EntityNotFoundException
.class);
45 public Map
<Key
, Entity
> get(Iterable
<Key
> keys
) {
46 return quietGet(async
.get(keys
));
50 public Map
<Key
, Entity
> get(Transaction txn
, Iterable
<Key
> keys
) {
51 return quietGet(async
.get(txn
, keys
));
55 public Key
put(Entity entity
) {
56 return quietGet(async
.put(entity
));
60 public Key
put(Transaction txn
, Entity entity
) {
61 return quietGet(async
.put(txn
, entity
));
65 public List
<Key
> put(Iterable
<Entity
> entities
) {
66 return quietGet(async
.put(entities
));
70 public List
<Key
> put(Transaction txn
, Iterable
<Entity
> entities
) {
71 return quietGet(async
.put(txn
, entities
));
75 public void delete(Key
... keys
) {
76 quietGet(async
.delete(keys
));
80 public void delete(Transaction txn
, Key
... keys
) {
81 quietGet(async
.delete(txn
, keys
));
85 public void delete(Iterable
<Key
> keys
) {
86 quietGet(async
.delete(keys
));
90 public void delete(Transaction txn
, Iterable
<Key
> keys
) {
91 quietGet(async
.delete(txn
, keys
));
95 public PreparedQuery
prepare(Query query
) {
96 return async
.prepare(query
);
100 public PreparedQuery
prepare(Transaction txn
, Query query
) {
101 return async
.prepare(txn
, query
);
105 public Collection
<Transaction
> getActiveTransactions() {
106 return async
.getActiveTransactions();
110 public KeyRange
allocateIds(String kind
, long num
) {
111 return quietGet(async
.allocateIds(kind
, num
));
115 public KeyRange
allocateIds(Key parent
, String kind
, long num
) {
116 return quietGet(async
.allocateIds(parent
, kind
, num
));
120 public KeyRangeState
allocateIdRange(KeyRange range
) {
121 return quietGet(async
.allocateIdRange(range
));
125 public Transaction
beginTransaction() {
126 return quietGet(async
.beginTransaction());
130 public Transaction
beginTransaction(TransactionOptions options
) {
131 return quietGet(async
.beginTransaction(options
));
135 public DatastoreAttributes
getDatastoreAttributes() {
136 return quietGet(async
.getDatastoreAttributes());
140 public Map
<Index
, Index
.IndexState
> getIndexes() {
141 return quietGet(async
.getIndexes());