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.
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.
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<?>[]
|
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).
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.
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<?>[]
|
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[]
|