Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit d85e310

Browse files
committed
Provide an option for an add with auto-id allocation.
Former-commit-id: d27b2de
1 parent fa9a60f commit d85e310

24 files changed

+351
-325
lines changed

src/main/java/com/google/gcloud/datastore/BatchImpl.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,9 @@ class BatchImpl implements Batch {
2323
private final Set<Key> toDelete = new LinkedHashSet<>();
2424
private final boolean force;
2525
final DatastoreServiceImpl datastore;
26-
2726
private boolean active = true;
2827

29-
30-
class ResponseImpl implements Response {
28+
static class ResponseImpl implements Response {
3129

3230
private final DatastoreV1.CommitResponse response;
3331

src/main/java/com/google/gcloud/datastore/BlobValue.java

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -11,26 +11,28 @@ public final class BlobValue extends Value<Blob> {
1111
static final BaseMarshaller<Blob, BlobValue, Builder> MARSHALLER =
1212
new BaseMarshaller<Blob, BlobValue, Builder>() {
1313

14-
@Override
15-
public int getProtoFieldId() {
16-
return BLOB_VALUE_FIELD_NUMBER;
17-
}
18-
19-
@Override
20-
public Builder newBuilder(Blob value) {
21-
return builder(value);
22-
}
23-
24-
@Override
25-
protected Blob getValue(DatastoreV1.Value from) {
26-
return new Blob(from.getBlobValue(), false);
27-
}
28-
29-
@Override
30-
protected void setValue(BlobValue from, DatastoreV1.Value.Builder to) {
31-
to.setBlobValue(from.get().byteString());
32-
}
33-
};
14+
private static final long serialVersionUID = -823515687083612387L;
15+
16+
@Override
17+
public int getProtoFieldId() {
18+
return BLOB_VALUE_FIELD_NUMBER;
19+
}
20+
21+
@Override
22+
public Builder newBuilder(Blob value) {
23+
return builder(value);
24+
}
25+
26+
@Override
27+
protected Blob getValue(DatastoreV1.Value from) {
28+
return new Blob(from.getBlobValue(), false);
29+
}
30+
31+
@Override
32+
protected void setValue(BlobValue from, DatastoreV1.Value.Builder to) {
33+
to.setBlobValue(from.get().byteString());
34+
}
35+
};
3436

3537
public static final class Builder extends Value.BaseBuilder<Blob, BlobValue, Builder> {
3638

src/main/java/com/google/gcloud/datastore/BooleanValue.java

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -11,26 +11,28 @@ public final class BooleanValue extends Value<Boolean> {
1111
static final BaseMarshaller<Boolean, BooleanValue, Builder> MARSHALLER =
1212
new BaseMarshaller<Boolean, BooleanValue, Builder>() {
1313

14-
@Override
15-
public int getProtoFieldId() {
16-
return BOOLEAN_VALUE_FIELD_NUMBER;
17-
}
18-
19-
@Override
20-
public Builder newBuilder(Boolean value) {
21-
return builder(value);
22-
}
23-
24-
@Override
25-
protected Boolean getValue(DatastoreV1.Value from) {
26-
return from.getBooleanValue();
27-
}
28-
29-
@Override
30-
protected void setValue(BooleanValue from, DatastoreV1.Value.Builder to) {
31-
to.setBooleanValue(from.get());
32-
}
33-
};
14+
private static final long serialVersionUID = 7080467411349092522L;
15+
16+
@Override
17+
public int getProtoFieldId() {
18+
return BOOLEAN_VALUE_FIELD_NUMBER;
19+
}
20+
21+
@Override
22+
public Builder newBuilder(Boolean value) {
23+
return builder(value);
24+
}
25+
26+
@Override
27+
protected Boolean getValue(DatastoreV1.Value from) {
28+
return from.getBooleanValue();
29+
}
30+
31+
@Override
32+
protected void setValue(BooleanValue from, DatastoreV1.Value.Builder to) {
33+
to.setBooleanValue(from.get());
34+
}
35+
};
3436

3537
public static final class Builder extends Value.BaseBuilder<Boolean, BooleanValue, Builder> {
3638

src/main/java/com/google/gcloud/datastore/DatastoreService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public interface DatastoreService extends DatastoreReaderWriter {
6161
* either newly allocated or the same one if was already complete
6262
* @throws DatastoreServiceException upon failure
6363
* @throws IllegalArgumentException if any of the given entities is missing a key
64-
* @see #add(PartialKey)
64+
* @see #add(PartialEntity)
6565
*/
6666
List<Entity> add(PartialEntity... entity);
6767

src/main/java/com/google/gcloud/datastore/DatastoreServiceImpl.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ public List<Entity> add(PartialEntity... entities) {
163163
if (entity instanceof Entity) {
164164
completeEntity = (Entity) entity;
165165
} else if (entity.key() instanceof Key) {
166-
completeEntity = entity.toEntity((Key) entity.key());
166+
completeEntity = Entity.builder((Key) entity.key(), entity).build();
167167
}
168168
if (completeEntity != null) {
169169
if (completeEntities.put(completeEntity.key(), completeEntity) != null) {
@@ -186,7 +186,7 @@ public List<Entity> add(PartialEntity... entities) {
186186
if (completeEntity != null) {
187187
responseBuilder.add(completeEntity);
188188
} else {
189-
responseBuilder.add(entity.toEntity(Key.fromPb(allocatedKeys.next())));
189+
responseBuilder.add(Entity.builder(Key.fromPb(allocatedKeys.next()), entity).build());
190190
}
191191
}
192192
return responseBuilder.build();
@@ -366,11 +366,12 @@ void rollbackTransaction(ByteString transaction) {
366366
rollback(requestPb.build());
367367
}
368368

369-
DatastoreV1.RollbackResponse rollback(final DatastoreV1.RollbackRequest requestPb) {
369+
void rollback(final DatastoreV1.RollbackRequest requestPb) {
370370
try {
371-
return RetryHelper.runWithRetries(new Callable<DatastoreV1.RollbackResponse>() {
372-
@Override public DatastoreV1.RollbackResponse call() throws DatastoreException {
373-
return datastore.rollback(requestPb);
371+
RetryHelper.runWithRetries(new Callable<Void>() {
372+
@Override public Void call() throws DatastoreException {
373+
datastore.rollback(requestPb);
374+
return null;
374375
}
375376
}, retryParams, EXCEPTION_HANDLER);
376377
} catch (RetryHelperException e) {

src/main/java/com/google/gcloud/datastore/DateTimeValue.java

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -11,29 +11,30 @@ public final class DateTimeValue extends Value<DateTime> {
1111
static final BaseMarshaller<DateTime, DateTimeValue, Builder> MARSHALLER =
1212
new BaseMarshaller<DateTime, DateTimeValue, Builder>() {
1313

14-
@Override
15-
public int getProtoFieldId() {
16-
return TIMESTAMP_MICROSECONDS_VALUE_FIELD_NUMBER;
17-
}
18-
19-
@Override
20-
public Builder newBuilder(DateTime value) {
21-
return builder(value);
22-
}
23-
24-
@Override
25-
protected DateTime getValue(DatastoreV1.Value from) {
26-
return new DateTime(from.getTimestampMicrosecondsValue());
27-
}
28-
29-
@Override
30-
protected void setValue(DateTimeValue from, DatastoreV1.Value.Builder to) {
31-
to.setTimestampMicrosecondsValue(from.get().timestampMicroseconds());
32-
}
33-
};
34-
35-
public static final class Builder
36-
extends Value.BaseBuilder<DateTime, DateTimeValue, Builder> {
14+
private static final long serialVersionUID = -5695812592049332840L;
15+
16+
@Override
17+
public int getProtoFieldId() {
18+
return TIMESTAMP_MICROSECONDS_VALUE_FIELD_NUMBER;
19+
}
20+
21+
@Override
22+
public Builder newBuilder(DateTime value) {
23+
return builder(value);
24+
}
25+
26+
@Override
27+
protected DateTime getValue(DatastoreV1.Value from) {
28+
return new DateTime(from.getTimestampMicrosecondsValue());
29+
}
30+
31+
@Override
32+
protected void setValue(DateTimeValue from, DatastoreV1.Value.Builder to) {
33+
to.setTimestampMicrosecondsValue(from.get().timestampMicroseconds());
34+
}
35+
};
36+
37+
public static final class Builder extends Value.BaseBuilder<DateTime, DateTimeValue, Builder> {
3738

3839
private Builder() {
3940
super(Type.DATE_TIME);

src/main/java/com/google/gcloud/datastore/DoubleValue.java

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -11,26 +11,28 @@ public final class DoubleValue extends Value<Double> {
1111
static final BaseMarshaller<Double, DoubleValue, Builder> MARSHALLER =
1212
new BaseMarshaller<Double, DoubleValue, Builder>() {
1313

14-
@Override
15-
public int getProtoFieldId() {
16-
return DOUBLE_VALUE_FIELD_NUMBER;
17-
}
18-
19-
@Override
20-
public Builder newBuilder(Double value) {
21-
return builder(value);
22-
}
23-
24-
@Override
25-
protected Double getValue(DatastoreV1.Value from) {
26-
return from.getDoubleValue();
27-
}
28-
29-
@Override
30-
protected void setValue(DoubleValue from, DatastoreV1.Value.Builder to) {
31-
to.setDoubleValue(from.get());
32-
}
33-
};
14+
private static final long serialVersionUID = 3935522813529400538L;
15+
16+
@Override
17+
public int getProtoFieldId() {
18+
return DOUBLE_VALUE_FIELD_NUMBER;
19+
}
20+
21+
@Override
22+
public Builder newBuilder(Double value) {
23+
return builder(value);
24+
}
25+
26+
@Override
27+
protected Double getValue(DatastoreV1.Value from) {
28+
return from.getDoubleValue();
29+
}
30+
31+
@Override
32+
protected void setValue(DoubleValue from, DatastoreV1.Value.Builder to) {
33+
to.setDoubleValue(from.get());
34+
}
35+
};
3436

3537
public static final class Builder extends Value.BaseBuilder<Double, DoubleValue, Builder> {
3638

src/main/java/com/google/gcloud/datastore/Entity.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,11 @@ private Builder(Entity entity) {
3333
key = entity.key();
3434
}
3535

36+
private Builder(Key key, BaseEntity entity) {
37+
super(entity);
38+
this.key = key;
39+
}
40+
3641
public Builder key(Key key) {
3742
this.key = checkNotNull(key);
3843
return this;
@@ -74,4 +79,8 @@ public static Builder builder(Key key) {
7479
public static Builder builder(Entity copyFrom) {
7580
return new Builder(copyFrom);
7681
}
82+
83+
public static Builder builder(Key key, PartialEntity copyFrom) {
84+
return new Builder(key, copyFrom);
85+
}
7786
}

src/main/java/com/google/gcloud/datastore/EntityValue.java

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -12,29 +12,30 @@ public class EntityValue extends Value<PartialEntity> {
1212
static final BaseMarshaller<PartialEntity, EntityValue, Builder> MARSHALLER =
1313
new BaseMarshaller<PartialEntity, EntityValue, Builder>() {
1414

15-
@Override
16-
public int getProtoFieldId() {
17-
return ENTITY_VALUE_FIELD_NUMBER;
18-
}
19-
20-
@Override
21-
public Builder newBuilder(PartialEntity value) {
22-
return builder(value);
23-
}
24-
25-
@Override
26-
protected PartialEntity getValue(DatastoreV1.Value from) {
27-
return PartialEntity.fromPb(from.getEntityValue());
28-
}
29-
30-
@Override
31-
protected void setValue(EntityValue from, DatastoreV1.Value.Builder to) {
32-
to.setEntityValue(from.get().toPb());
33-
}
34-
};
35-
36-
public static final class Builder extends
37-
Value.BaseBuilder<PartialEntity, EntityValue, Builder> {
15+
private static final long serialVersionUID = 2355075086076070931L;
16+
17+
@Override
18+
public int getProtoFieldId() {
19+
return ENTITY_VALUE_FIELD_NUMBER;
20+
}
21+
22+
@Override
23+
public Builder newBuilder(PartialEntity value) {
24+
return builder(value);
25+
}
26+
27+
@Override
28+
protected PartialEntity getValue(DatastoreV1.Value from) {
29+
return PartialEntity.fromPb(from.getEntityValue());
30+
}
31+
32+
@Override
33+
protected void setValue(EntityValue from, DatastoreV1.Value.Builder to) {
34+
to.setEntityValue(from.get().toPb());
35+
}
36+
};
37+
38+
public static final class Builder extends Value.BaseBuilder<PartialEntity, EntityValue, Builder> {
3839

3940
private Builder() {
4041
super(Type.ENTITY);

src/main/java/com/google/gcloud/datastore/Key.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,16 @@ private Builder(String dataset, String kind, long id) {
3838
this.id = id;
3939
}
4040

41+
private Builder(PartialKey copyFrom, String name) {
42+
super(copyFrom);
43+
this.name = name;
44+
}
45+
46+
private Builder(PartialKey copyFrom, long id) {
47+
super(copyFrom);
48+
this.id = id;
49+
}
50+
4151
private Builder(Key copyFrom) {
4252
super(copyFrom);
4353
if (copyFrom.hasId()) {
@@ -158,6 +168,14 @@ public static Builder builder(Key copyFrom) {
158168
return new Builder(copyFrom);
159169
}
160170

171+
public static Builder builder(PartialKey copyFrom, String name) {
172+
return new Builder(copyFrom, name);
173+
}
174+
175+
public static Builder builder(PartialKey copyFrom, long id) {
176+
return new Builder(copyFrom, id);
177+
}
178+
161179
public static Builder builder(Key parent, String kind, String name) {
162180
Builder builder = builder(parent.dataset(), kind, name);
163181
addParentToBuilder(parent, builder);

0 commit comments

Comments
 (0)