Interface DatastoreBatchWriter (2.23.0)

public interface DatastoreBatchWriter extends DatastoreWriter

An interface to represent a batch of write operations. All write operation for a batch writer will be applied to the Datastore in one RPC call.

WARNING: This class maintains an internal state in terms of java.util.LinkedHashMap and java.util.LinkedHashSet which gets updated on every method call performing CRUD operations to record the mutations. Since java.util.LinkedHashMap is not thread safe as per its documentation, This class too should not be treated as a thread safe class.

Implements

DatastoreWriter

Methods

add(FullEntity<?> entity)

public abstract Entity add(FullEntity<?> entity)

Datastore add operation: inserts the provided entity. This method will automatically allocate an id if necessary. If entity has a complete key and was already marked for deletion in this writer, the operation will be changed to #put.

Parameter
Name Description
entity FullEntity<?>
Returns
Type Description
Entity

add(FullEntity<?>[] entities)

public abstract List<Entity> add(FullEntity<?>[] entities)

Datastore add operation: inserts the provided entities. This method will automatically allocate id for any entity with an incomplete key. For entities with complete keys that were marked for deletion in this writer the operation will be changed to #put.

Parameter
Name Description
entities FullEntity<?>[]
Returns
Type Description
List<Entity>

addWithDeferredIdAllocation(FullEntity<?>[] entities)

public abstract void addWithDeferredIdAllocation(FullEntity<?>[] entities)

Datastore add operation. This method will also allocate id for any entity with an incomplete key. As opposed to #add(FullEntity) and #add(FullEntity...), this method will defer any necessary id allocation to submit time.

Parameter
Name Description
entities FullEntity<?>[]

delete(Key[] keys)

public abstract void delete(Key[] keys)

A datastore delete operation. It is OK to request the deletion of a non-existing key. This operation will also remove from this batch any prior writes for entities with the same keys.

Parameter
Name Description
keys Key[]

isActive()

public abstract boolean isActive()

Returns true if still active (write operations were not sent to the Datastore).

Returns
Type Description
boolean

put(FullEntity<?> entity)

public abstract Entity put(FullEntity<?> entity)

A Datastore put (a.k.a upsert) operation: inserts an entity if it does not exist, updates it otherwise. This method will automatically allocate an id if necessary. This operation will also remove from this writer any prior writes for the same entity.

Parameter
Name Description
entity FullEntity<?>
Returns
Type Description
Entity

put(FullEntity<?>[] entities)

public abstract List<Entity> put(FullEntity<?>[] entities)

A Datastore put (a.k.a upsert) operation: creates an entity if it does not exist, updates it otherwise. This method will automatically allocate id for any entity with an incomplete key. This operation will also remove from this writer any prior writes for the same entities.

Parameter
Name Description
entities FullEntity<?>[]
Returns
Type Description
List<Entity>

putWithDeferredIdAllocation(FullEntity<?>[] entities)

public abstract void putWithDeferredIdAllocation(FullEntity<?>[] entities)

Datastore put operation. This method will also allocate id for any entity with an incomplete key. As opposed to #put(FullEntity) and #put(FullEntity...), this method will defer any necessary id allocation to submit time.

Parameter
Name Description
entities FullEntity<?>[]

update(Entity[] entities)

public abstract void update(Entity[] entities)

A Datastore update operation. The operation will fail if an entity with the same key does not already exist. This operation will be converted to #put operation for entities that were already added or put in this writer.

Parameter
Name Description
entities Entity[]