if (updateBuilder_ == null) { if (operationCase_ == 2 && operation_ != com.google.spanner.v1.Mutation.Write.getDefaultInstance()) { operation_ = com.google.spanner.v1.Mutation.Write.newBuilder( (com.google.spanner.v1.Mutation.Write) operation_) .mergeFrom(value)
@java.lang.Override public com.google.spanner.v1.Mutation.Write buildPartial() { com.google.spanner.v1.Mutation.Write result = new com.google.spanner.v1.Mutation.Write(this); int from_bitField0_ = bitField0_; int to_bitField0_ = 0; result.table_ = table_; if (((bitField0_ & 0x00000002) == 0x00000002)) { columns_ = columns_.getUnmodifiableView(); bitField0_ = (bitField0_ & ~0x00000002); } result.columns_ = columns_; if (valuesBuilder_ == null) { if (((bitField0_ & 0x00000004) == 0x00000004)) { values_ = java.util.Collections.unmodifiableList(values_); bitField0_ = (bitField0_ & ~0x00000004); } result.values_ = values_; } else { result.values_ = valuesBuilder_.build(); } result.bitField0_ = to_bitField0_; onBuilt(); return result; }
@java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (!getTableBytes().isEmpty()) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, table_); } { int dataSize = 0; for (int i = 0; i < columns_.size(); i++) { dataSize += computeStringSizeNoTag(columns_.getRaw(i)); } size += dataSize; size += 1 * getColumnsList().size(); } for (int i = 0; i < values_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, values_.get(i)); } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; }
public Builder mergeFrom(com.google.spanner.v1.Mutation.Write other) { if (other == com.google.spanner.v1.Mutation.Write.getDefaultInstance()) return this; if (!other.getTable().isEmpty()) { table_ = other.table_; onChanged();
if (replaceBuilder_ == null) { if (!(operationCase_ == 4)) { operation_ = com.google.spanner.v1.Mutation.Write.getDefaultInstance();
if (insertBuilder_ == null) { if (!(operationCase_ == 1)) { operation_ = com.google.spanner.v1.Mutation.Write.getDefaultInstance();
switch (operationCase_) { case 1: result = result && getInsert().equals(other.getInsert()); break; case 2: result = result && getUpdate().equals(other.getUpdate()); break; case 3: result = result && getInsertOrUpdate().equals(other.getInsertOrUpdate()); break; case 4: result = result && getReplace().equals(other.getReplace()); break; case 5:
if (insertOrUpdateBuilder_ == null) { if (operationCase_ == 3 && operation_ != com.google.spanner.v1.Mutation.Write.getDefaultInstance()) { operation_ = com.google.spanner.v1.Mutation.Write.newBuilder( (com.google.spanner.v1.Mutation.Write) operation_) .mergeFrom(value)
if (replaceBuilder_ == null) { if (operationCase_ == 4 && operation_ != com.google.spanner.v1.Mutation.Write.getDefaultInstance()) { operation_ = com.google.spanner.v1.Mutation.Write.newBuilder( (com.google.spanner.v1.Mutation.Write) operation_) .mergeFrom(value)
if (updateBuilder_ == null) { if (!(operationCase_ == 2)) { operation_ = com.google.spanner.v1.Mutation.Write.getDefaultInstance();
if (insertBuilder_ == null) { if (operationCase_ == 1 && operation_ != com.google.spanner.v1.Mutation.Write.getDefaultInstance()) { operation_ = com.google.spanner.v1.Mutation.Write.newBuilder( (com.google.spanner.v1.Mutation.Write) operation_) .mergeFrom(value)
@Test public void writeAtLeastOnce() throws ParseException { String timestampString = "2015-10-01T10:54:20.021Z"; ArgumentCaptor<CommitRequest> commit = ArgumentCaptor.forClass(CommitRequest.class); CommitResponse response = CommitResponse.newBuilder().setCommitTimestamp(Timestamps.parse(timestampString)).build(); Mockito.when(rpc.commit(commit.capture(), Mockito.eq(options))).thenReturn(response); Timestamp timestamp = session.writeAtLeastOnce( Arrays.asList(Mutation.newInsertBuilder("T").set("C").to("x").build())); assertThat(timestamp.getSeconds()) .isEqualTo(utcTimeSeconds(2015, Calendar.OCTOBER, 1, 10, 54, 20)); assertThat(timestamp.getNanos()).isEqualTo(TimeUnit.MILLISECONDS.toNanos(21)); CommitRequest request = commit.getValue(); assertThat(request.getSingleUseTransaction()).isNotNull(); assertThat(request.getSingleUseTransaction().getReadWrite()).isNotNull(); com.google.spanner.v1.Mutation mutation = com.google.spanner.v1.Mutation.newBuilder() .setInsert( Write.newBuilder() .setTable("T") .addColumns("C") .addValues( ListValue.newBuilder() .addValues(com.google.protobuf.Value.newBuilder().setStringValue("x")))) .build(); assertThat(request.getMutationsList()).containsExactly(mutation); }
/** * * * <pre> * Like [insert][google.spanner.v1.Mutation.insert], except that if the row already exists, it is * deleted, and the column values provided are inserted * instead. Unlike [insert_or_update][google.spanner.v1.Mutation.insert_or_update], this means any values not * explicitly written become `NULL`. * </pre> * * <code>.google.spanner.v1.Mutation.Write replace = 4;</code> */ public com.google.spanner.v1.Mutation.Write getReplace() { if (replaceBuilder_ == null) { if (operationCase_ == 4) { return (com.google.spanner.v1.Mutation.Write) operation_; } return com.google.spanner.v1.Mutation.Write.getDefaultInstance(); } else { if (operationCase_ == 4) { return replaceBuilder_.getMessage(); } return com.google.spanner.v1.Mutation.Write.getDefaultInstance(); } } /**
/** * * * <pre> * Insert new rows in a table. If any of the rows already exist, * the write or transaction fails with error `ALREADY_EXISTS`. * </pre> * * <code>.google.spanner.v1.Mutation.Write insert = 1;</code> */ public com.google.spanner.v1.Mutation.Write getInsert() { if (insertBuilder_ == null) { if (operationCase_ == 1) { return (com.google.spanner.v1.Mutation.Write) operation_; } return com.google.spanner.v1.Mutation.Write.getDefaultInstance(); } else { if (operationCase_ == 1) { return insertBuilder_.getMessage(); } return com.google.spanner.v1.Mutation.Write.getDefaultInstance(); } } /**
if (insertOrUpdateBuilder_ == null) { if (!(operationCase_ == 3)) { operation_ = com.google.spanner.v1.Mutation.Write.getDefaultInstance();
/** * * * <pre> * Like [insert][google.spanner.v1.Mutation.insert], except that if the row already exists, it is * deleted, and the column values provided are inserted * instead. Unlike [insert_or_update][google.spanner.v1.Mutation.insert_or_update], this means any values not * explicitly written become `NULL`. * </pre> * * <code>.google.spanner.v1.Mutation.Write replace = 4;</code> */ public com.google.spanner.v1.Mutation.WriteOrBuilder getReplaceOrBuilder() { if ((operationCase_ == 4) && (replaceBuilder_ != null)) { return replaceBuilder_.getMessageOrBuilder(); } else { if (operationCase_ == 4) { return (com.google.spanner.v1.Mutation.Write) operation_; } return com.google.spanner.v1.Mutation.Write.getDefaultInstance(); } } /**
/** * * * <pre> * Like [insert][google.spanner.v1.Mutation.insert], except that if the row already exists, then * its column values are overwritten with the ones provided. Any * column values not explicitly written are preserved. * </pre> * * <code>.google.spanner.v1.Mutation.Write insert_or_update = 3;</code> */ public com.google.spanner.v1.Mutation.Write getInsertOrUpdate() { if (insertOrUpdateBuilder_ == null) { if (operationCase_ == 3) { return (com.google.spanner.v1.Mutation.Write) operation_; } return com.google.spanner.v1.Mutation.Write.getDefaultInstance(); } else { if (operationCase_ == 3) { return insertOrUpdateBuilder_.getMessage(); } return com.google.spanner.v1.Mutation.Write.getDefaultInstance(); } } /**
/** * * * <pre> * Update existing rows in a table. If any of the rows does not * already exist, the transaction fails with error `NOT_FOUND`. * </pre> * * <code>.google.spanner.v1.Mutation.Write update = 2;</code> */ public com.google.spanner.v1.Mutation.Write getUpdate() { if (updateBuilder_ == null) { if (operationCase_ == 2) { return (com.google.spanner.v1.Mutation.Write) operation_; } return com.google.spanner.v1.Mutation.Write.getDefaultInstance(); } else { if (operationCase_ == 2) { return updateBuilder_.getMessage(); } return com.google.spanner.v1.Mutation.Write.getDefaultInstance(); } } /**
/** * * * <pre> * Like [insert][google.spanner.v1.Mutation.insert], except that if the row already exists, then * its column values are overwritten with the ones provided. Any * column values not explicitly written are preserved. * </pre> * * <code>.google.spanner.v1.Mutation.Write insert_or_update = 3;</code> */ public com.google.spanner.v1.Mutation.WriteOrBuilder getInsertOrUpdateOrBuilder() { if ((operationCase_ == 3) && (insertOrUpdateBuilder_ != null)) { return insertOrUpdateBuilder_.getMessageOrBuilder(); } else { if (operationCase_ == 3) { return (com.google.spanner.v1.Mutation.Write) operation_; } return com.google.spanner.v1.Mutation.Write.getDefaultInstance(); } } /**
/** * * * <pre> * Insert new rows in a table. If any of the rows already exist, * the write or transaction fails with error `ALREADY_EXISTS`. * </pre> * * <code>.google.spanner.v1.Mutation.Write insert = 1;</code> */ public com.google.spanner.v1.Mutation.WriteOrBuilder getInsertOrBuilder() { if ((operationCase_ == 1) && (insertBuilder_ != null)) { return insertBuilder_.getMessageOrBuilder(); } else { if (operationCase_ == 1) { return (com.google.spanner.v1.Mutation.Write) operation_; } return com.google.spanner.v1.Mutation.Write.getDefaultInstance(); } } /**