Refine search
@Override public Datastore create(DatastoreOptions options) { return new DatastoreImpl(options); } }
@Override public List<Key> allocateId(IncompleteKey... keys) { Preconditions.checkArgument( verifyIncompleteKeyType(keys), "keys must be IncompleteKey instances"); if (keys.length == 0) { return Collections.emptyList(); } com.google.datastore.v1.AllocateIdsRequest.Builder requestPb = com.google.datastore.v1.AllocateIdsRequest.newBuilder(); for (IncompleteKey key : keys) { requestPb.addKeys(trimNameOrId(key).toPb()); } com.google.datastore.v1.AllocateIdsResponse responsePb = allocateIds(requestPb.build()); ImmutableList.Builder<Key> keyList = ImmutableList.builder(); for (com.google.datastore.v1.Key keyPb : responsePb.getKeysList()) { keyList.add(Key.fromPb(keyPb)); } return keyList.build(); }
ByteString requestTransactionId( com.google.datastore.v1.BeginTransactionRequest.Builder requestPb) { return beginTransaction(requestPb.build()).getTransaction(); }
@Override public Iterator<Entity> get(Iterable<Key> keys, ReadOption... options) { return get(toReadOptionsPb(options), Iterables.toArray(keys, Key.class)); }
com.google.datastore.v1.CommitResponse commit( final com.google.datastore.v1.CommitRequest requestPb) { try { return RetryHelper.runWithRetries( new Callable<com.google.datastore.v1.CommitResponse>() { @Override public com.google.datastore.v1.CommitResponse call() throws DatastoreException { return datastoreRpc.commit(requestPb); } }, retrySettings, EXCEPTION_HANDLER, getOptions().getClock()); } catch (RetryHelperException e) { throw DatastoreException.translateAndThrow(e); } }
QueryResultsImpl( DatastoreImpl datastore, com.google.datastore.v1.ReadOptions readOptionsPb, Query<T> query) { this.datastore = datastore; this.readOptionsPb = readOptionsPb; this.query = query; queryResultType = query.getType(); com.google.datastore.v1.PartitionId.Builder pbBuilder = com.google.datastore.v1.PartitionId.newBuilder(); pbBuilder.setProjectId(datastore.getOptions().getProjectId()); if (query.getNamespace() != null) { pbBuilder.setNamespaceId(query.getNamespace()); } else if (datastore.getOptions().getNamespace() != null) { pbBuilder.setNamespaceId(datastore.getOptions().getNamespace()); } partitionIdPb = pbBuilder.build(); sendRequest(); if (runQueryResponsePb.getBatch().getSkippedResults() > 0) { cursor = runQueryResponsePb.getBatch().getSkippedCursor(); } else { cursor = mostRecentQueryPb.getStartCursor(); } }
throw DatastoreException.throwInvalidRequest( "Duplicate entity with the key %s", entity.getKey()); com.google.datastore.v1.Mutation.newBuilder().setInsert(entity.toPb()).build()); com.google.datastore.v1.CommitResponse commitResponse = commitMutation(mutationsPb); Iterator<com.google.datastore.v1.MutationResult> mutationResults = commitResponse.getMutationResultsList().iterator();
private void sendRequest() { com.google.datastore.v1.RunQueryRequest.Builder requestPb = com.google.datastore.v1.RunQueryRequest.newBuilder(); if (readOptionsPb != null) { requestPb.setReadOptions(readOptionsPb); } requestPb.setPartitionId(partitionIdPb); query.populatePb(requestPb); runQueryResponsePb = datastore.runQuery(requestPb.build()); mostRecentQueryPb = runQueryResponsePb.getQuery(); if (mostRecentQueryPb == null) { mostRecentQueryPb = requestPb.getQuery(); } lastBatch = runQueryResponsePb.getBatch().getMoreResults() != MoreResultsType.NOT_FINISHED; entityResultPbIter = runQueryResponsePb.getBatch().getEntityResultsList().iterator(); actualResultType = ResultType.fromPb(runQueryResponsePb.getBatch().getEntityResultType()); if (Objects.equals(queryResultType, ResultType.PROJECTION_ENTITY)) { // projection entity can represent all type of results actualResultType = ResultType.PROJECTION_ENTITY; } Preconditions.checkState( queryResultType.isAssignableFrom(actualResultType), "Unexpected result type " + actualResultType + " vs " + queryResultType); }
@Override public void delete(Key... keys) { if (keys.length > 0) { List<com.google.datastore.v1.Mutation> mutationsPb = new ArrayList<>(); Set<Key> dedupKeys = new LinkedHashSet<>(Arrays.asList(keys)); for (Key key : dedupKeys) { mutationsPb.add( com.google.datastore.v1.Mutation.newBuilder().setDelete(key.toPb()).build()); } commitMutation(mutationsPb); } }
private com.google.datastore.v1.CommitResponse commitMutation( List<com.google.datastore.v1.Mutation> mutationsPb) { com.google.datastore.v1.CommitRequest.Builder requestPb = com.google.datastore.v1.CommitRequest.newBuilder(); requestPb.setMode(com.google.datastore.v1.CommitRequest.Mode.NON_TRANSACTIONAL); requestPb.addAllMutations(mutationsPb); return commit(requestPb.build()); }
@Override public Iterator<Entity> get(Key... keys) { return get(null, keys); }
private void loadResults() { com.google.datastore.v1.LookupResponse responsePb = lookup(requestPb.build()); iter = responsePb.getFoundList().iterator(); requestPb.clearKeys(); if (responsePb.getDeferredCount() > 0) { requestPb.addAllKeys(responsePb.getDeferredList()); } }
TransactionImpl(DatastoreImpl datastore, TransactionOptions options) { super("transaction"); this.datastore = datastore; com.google.datastore.v1.BeginTransactionRequest.Builder requestPb = com.google.datastore.v1.BeginTransactionRequest.newBuilder(); if (options != null) { requestPb.setTransactionOptions(options); } transactionId = datastore.requestTransactionId(requestPb); }
@Override public KeyFactory newKeyFactory() { return DatastoreHelper.newKeyFactory(getOptions()); }
private com.google.datastore.v1.AllocateIdsResponse allocateIds( final com.google.datastore.v1.AllocateIdsRequest requestPb) { try { return RetryHelper.runWithRetries( new Callable<com.google.datastore.v1.AllocateIdsResponse>() { @Override public com.google.datastore.v1.AllocateIdsResponse call() throws DatastoreException { return datastoreRpc.allocateIds(requestPb); } }, retrySettings, EXCEPTION_HANDLER, getOptions().getClock()); } catch (RetryHelperException e) { throw DatastoreException.translateAndThrow(e); } }
QueryResultsImpl( DatastoreImpl datastore, com.google.datastore.v1.ReadOptions readOptionsPb, Query<T> query) { this.datastore = datastore; this.readOptionsPb = readOptionsPb; this.query = query; queryResultType = query.getType(); com.google.datastore.v1.PartitionId.Builder pbBuilder = com.google.datastore.v1.PartitionId.newBuilder(); pbBuilder.setProjectId(datastore.getOptions().getProjectId()); if (query.getNamespace() != null) { pbBuilder.setNamespaceId(query.getNamespace()); } else if (datastore.getOptions().getNamespace() != null) { pbBuilder.setNamespaceId(datastore.getOptions().getNamespace()); } partitionIdPb = pbBuilder.build(); sendRequest(); if (runQueryResponsePb.getBatch().getSkippedResults() > 0) { cursor = runQueryResponsePb.getBatch().getSkippedCursor(); } else { cursor = mostRecentQueryPb.getStartCursor(); } }
throw DatastoreException.throwInvalidRequest( "Duplicate entity with the key %s", entity.getKey()); com.google.datastore.v1.Mutation.newBuilder().setInsert(entity.toPb()).build()); com.google.datastore.v1.CommitResponse commitResponse = commitMutation(mutationsPb); Iterator<com.google.datastore.v1.MutationResult> mutationResults = commitResponse.getMutationResultsList().iterator();
QueryResultBatch queryResultBatchPb = RunQueryResponse.newBuilder() .mergeFrom(((DatastoreImpl) datastore).runQuery(requestPb.build())) .getBatch(); QueryResultBatch queryResultBatchPb1 =
@Override public Iterator<Entity> get(Iterable<Key> keys, ReadOption... options) { return get(toReadOptionsPb(options), Iterables.toArray(keys, Key.class)); }
@Override public void update(Entity... entities) { if (entities.length > 0) { List<com.google.datastore.v1.Mutation> mutationsPb = new ArrayList<>(); Map<Key, Entity> dedupEntities = new LinkedHashMap<>(); for (Entity entity : entities) { dedupEntities.put(entity.getKey(), entity); } for (Entity entity : dedupEntities.values()) { mutationsPb.add( com.google.datastore.v1.Mutation.newBuilder().setUpdate(entity.toPb()).build()); } commitMutation(mutationsPb); } }