com.google.bigtable.v2.Mutation.newBuilder().setDeleteFromColumn(builder.build()).build());
@Override public Mutation setCell( @Nonnull String familyName, @Nonnull ByteString qualifier, long timestamp, @Nonnull ByteString value) { Validations.validateFamily(familyName); Preconditions.checkNotNull(qualifier, "qualifier can't be null."); Preconditions.checkNotNull(value, "value can't be null."); if (!allowServersideTimestamp) { Preconditions.checkArgument( timestamp != SERVER_SIDE_TIMESTAMP, "Serverside timestamps are not supported"); } addMutation( com.google.bigtable.v2.Mutation.newBuilder() .setSetCell( SetCell.newBuilder() .setFamilyName(familyName) .setColumnQualifier(qualifier) .setTimestampMicros(timestamp) .setValue(value) .build()) .build()); return this; }
@Override public Status delete(String table, String key) { if (debug) { System.out.println("Doing delete for key: " + key); } setTable(table); final MutateRowRequest.Builder rowMutation = MutateRowRequest.newBuilder() .setRowKey(ByteString.copyFromUtf8(key)) .setTableNameBytes(ByteStringer.wrap(lastTableBytes)); rowMutation.addMutationsBuilder().setDeleteFromRow( DeleteFromRow.getDefaultInstance()); try { if (clientSideBuffering) { bulkMutation.add(rowMutation.build()); } else { client.mutateRow(rowMutation.build()); } return Status.OK; } catch (RuntimeException e) { System.err.println("Failed to delete key: " + key + " " + e.getMessage()); return Status.ERROR; } }
com.google.bigtable.v2.Mutation.newBuilder().setDeleteFromColumn(builder.build()).build());
com.google.bigtable.v2.Mutation.SetCellOrBuilder>( (com.google.bigtable.v2.Mutation.SetCell) mutation_, getParentForChildren(), isClean()); mutation_ = null; onChanged();
com.google.bigtable.v2.Mutation.DeleteFromRowOrBuilder>( (com.google.bigtable.v2.Mutation.DeleteFromRow) mutation_, getParentForChildren(), isClean()); mutation_ = null; onChanged();
com.google.bigtable.v2.Mutation.DeleteFromColumnOrBuilder>( (com.google.bigtable.v2.Mutation.DeleteFromColumn) mutation_, getParentForChildren(), isClean()); mutation_ = null; onChanged();
com.google.bigtable.v2.Mutation.DeleteFromFamilyOrBuilder>( (com.google.bigtable.v2.Mutation.DeleteFromFamily) mutation_, getParentForChildren(), isClean()); mutation_ = null; onChanged();
/** * <pre> * Deletes cells from a column family. * </pre> * * <code>.google.bigtable.v2.Mutation.DeleteFromFamily delete_from_family = 3;</code> */ private com.google.protobuf.SingleFieldBuilderV3< com.google.bigtable.v2.Mutation.DeleteFromFamily, com.google.bigtable.v2.Mutation.DeleteFromFamily.Builder, com.google.bigtable.v2.Mutation.DeleteFromFamilyOrBuilder> getDeleteFromFamilyFieldBuilder() { if (deleteFromFamilyBuilder_ == null) { if (!(mutationCase_ == 3)) { mutation_ = com.google.bigtable.v2.Mutation.DeleteFromFamily.getDefaultInstance(); } deleteFromFamilyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.bigtable.v2.Mutation.DeleteFromFamily, com.google.bigtable.v2.Mutation.DeleteFromFamily.Builder, com.google.bigtable.v2.Mutation.DeleteFromFamilyOrBuilder>( (com.google.bigtable.v2.Mutation.DeleteFromFamily) mutation_, getParentForChildren(), isClean()); mutation_ = null; } mutationCase_ = 3; onChanged();; return deleteFromFamilyBuilder_; }
/** * <pre> * Deletes cells from a column. * </pre> * * <code>.google.bigtable.v2.Mutation.DeleteFromColumn delete_from_column = 2;</code> */ private com.google.protobuf.SingleFieldBuilderV3< com.google.bigtable.v2.Mutation.DeleteFromColumn, com.google.bigtable.v2.Mutation.DeleteFromColumn.Builder, com.google.bigtable.v2.Mutation.DeleteFromColumnOrBuilder> getDeleteFromColumnFieldBuilder() { if (deleteFromColumnBuilder_ == null) { if (!(mutationCase_ == 2)) { mutation_ = com.google.bigtable.v2.Mutation.DeleteFromColumn.getDefaultInstance(); } deleteFromColumnBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.bigtable.v2.Mutation.DeleteFromColumn, com.google.bigtable.v2.Mutation.DeleteFromColumn.Builder, com.google.bigtable.v2.Mutation.DeleteFromColumnOrBuilder>( (com.google.bigtable.v2.Mutation.DeleteFromColumn) mutation_, getParentForChildren(), isClean()); mutation_ = null; } mutationCase_ = 2; onChanged();; return deleteFromColumnBuilder_; }
/** * * * <pre> * Changes to be atomically applied to the specified row if `predicate_filter` * does not yield any cells when applied to `row_key`. Entries are applied in * order, meaning that earlier mutations can be masked by later ones. * Must contain at least one entry if `true_mutations` is empty, and at most * 100000. * </pre> * * <code>repeated .google.bigtable.v2.Mutation false_mutations = 5;</code> */ public Builder addFalseMutations(com.google.bigtable.v2.Mutation.Builder builderForValue) { if (falseMutationsBuilder_ == null) { ensureFalseMutationsIsMutable(); falseMutations_.add(builderForValue.build()); onChanged(); } else { falseMutationsBuilder_.addMessage(builderForValue.build()); } return this; } /**
/** * * * <pre> * Changes to be atomically applied to the specified row. Mutations are * applied in order, meaning that earlier mutations can be masked by * later ones. * You must specify at least one mutation. * </pre> * * <code>repeated .google.bigtable.v2.Mutation mutations = 2;</code> */ public Builder addMutations( int index, com.google.bigtable.v2.Mutation.Builder builderForValue) { if (mutationsBuilder_ == null) { ensureMutationsIsMutable(); mutations_.add(index, builderForValue.build()); onChanged(); } else { mutationsBuilder_.addMessage(index, builderForValue.build()); } return this; } /**
/** * This test ensures that protobuf creation and interactions with {@link BulkMutation} work as * expected. * * @throws IOException * @throws InterruptedException */ @Test public void testWrite() throws IOException, InterruptedException { BigtableService.Writer underTest = new BigtableServiceImpl.BigtableWriterImpl(mockSession, TABLE_NAME); Mutation mutation = Mutation.newBuilder() .setSetCell(SetCell.newBuilder().setFamilyName("Family").build()) .build(); ByteString key = ByteString.copyFromUtf8("key"); SettableFuture<MutateRowResponse> fakeResponse = SettableFuture.create(); when(mockBulkMutation.add(any(MutateRowsRequest.Entry.class))).thenReturn(fakeResponse); underTest.writeRecord(KV.of(key, ImmutableList.of(mutation))); Entry expected = MutateRowsRequest.Entry.newBuilder().setRowKey(key).addMutations(mutation).build(); verify(mockBulkMutation, times(1)).add(expected); underTest.close(); verify(mockBulkMutation, times(1)).flush(); } }
/** * * * <pre> * Changes to be atomically applied to the specified row if `predicate_filter` * does not yield any cells when applied to `row_key`. Entries are applied in * order, meaning that earlier mutations can be masked by later ones. * Must contain at least one entry if `true_mutations` is empty, and at most * 100000. * </pre> * * <code>repeated .google.bigtable.v2.Mutation false_mutations = 5;</code> */ public Builder addFalseMutations( int index, com.google.bigtable.v2.Mutation.Builder builderForValue) { if (falseMutationsBuilder_ == null) { ensureFalseMutationsIsMutable(); falseMutations_.add(index, builderForValue.build()); onChanged(); } else { falseMutationsBuilder_.addMessage(index, builderForValue.build()); } return this; } /**
/** * <pre> * Deletes cells from the entire row. * </pre> * * <code>.google.bigtable.v2.Mutation.DeleteFromRow delete_from_row = 4;</code> */ private com.google.protobuf.SingleFieldBuilderV3< com.google.bigtable.v2.Mutation.DeleteFromRow, com.google.bigtable.v2.Mutation.DeleteFromRow.Builder, com.google.bigtable.v2.Mutation.DeleteFromRowOrBuilder> getDeleteFromRowFieldBuilder() { if (deleteFromRowBuilder_ == null) { if (!(mutationCase_ == 4)) { mutation_ = com.google.bigtable.v2.Mutation.DeleteFromRow.getDefaultInstance(); } deleteFromRowBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.bigtable.v2.Mutation.DeleteFromRow, com.google.bigtable.v2.Mutation.DeleteFromRow.Builder, com.google.bigtable.v2.Mutation.DeleteFromRowOrBuilder>( (com.google.bigtable.v2.Mutation.DeleteFromRow) mutation_, getParentForChildren(), isClean()); mutation_ = null; } mutationCase_ = 4; onChanged();; return deleteFromRowBuilder_; } public final Builder setUnknownFields(
/** * * * <pre> * Changes to be atomically applied to the specified row. Entries are applied * in order, meaning that earlier mutations can be masked by later ones. * Must contain at least one entry and at most 100000. * </pre> * * <code>repeated .google.bigtable.v2.Mutation mutations = 3;</code> */ public Builder addMutations( int index, com.google.bigtable.v2.Mutation.Builder builderForValue) { if (mutationsBuilder_ == null) { ensureMutationsIsMutable(); mutations_.add(index, builderForValue.build()); onChanged(); } else { mutationsBuilder_.addMessage(index, builderForValue.build()); } return this; } /**
/** * <pre> * Changes to be atomically applied to the specified row if `predicate_filter` * does not yield any cells when applied to `row_key`. Entries are applied in * order, meaning that earlier mutations can be masked by later ones. * Must contain at least one entry if `true_mutations` is empty, and at most * 100000. * </pre> * * <code>repeated .google.bigtable.v2.Mutation false_mutations = 5;</code> */ public Builder addFalseMutations( com.google.bigtable.v2.Mutation.Builder builderForValue) { if (falseMutationsBuilder_ == null) { ensureFalseMutationsIsMutable(); falseMutations_.add(builderForValue.build()); onChanged(); } else { falseMutationsBuilder_.addMessage(builderForValue.build()); } return this; } /**
/** * * * <pre> * Changes to be atomically applied to the specified row if `predicate_filter` * does not yield any cells when applied to `row_key`. Entries are applied in * order, meaning that earlier mutations can be masked by later ones. * Must contain at least one entry if `true_mutations` is empty, and at most * 100000. * </pre> * * <code>repeated .google.bigtable.v2.Mutation false_mutations = 5;</code> */ public Builder setFalseMutations( int index, com.google.bigtable.v2.Mutation.Builder builderForValue) { if (falseMutationsBuilder_ == null) { ensureFalseMutationsIsMutable(); falseMutations_.set(index, builderForValue.build()); onChanged(); } else { falseMutationsBuilder_.setMessage(index, builderForValue.build()); } return this; } /**
/** * * * <pre> * Changes to be atomically applied to the specified row if `predicate_filter` * yields at least one cell when applied to `row_key`. Entries are applied in * order, meaning that earlier mutations can be masked by later ones. * Must contain at least one entry if `false_mutations` is empty, and at most * 100000. * </pre> * * <code>repeated .google.bigtable.v2.Mutation true_mutations = 4;</code> */ public Builder addTrueMutations( int index, com.google.bigtable.v2.Mutation.Builder builderForValue) { if (trueMutationsBuilder_ == null) { ensureTrueMutationsIsMutable(); trueMutations_.add(index, builderForValue.build()); onChanged(); } else { trueMutationsBuilder_.addMessage(index, builderForValue.build()); } return this; } /**
/** * * * <pre> * Changes to be atomically applied to the specified row if `predicate_filter` * yields at least one cell when applied to `row_key`. Entries are applied in * order, meaning that earlier mutations can be masked by later ones. * Must contain at least one entry if `false_mutations` is empty, and at most * 100000. * </pre> * * <code>repeated .google.bigtable.v2.Mutation true_mutations = 4;</code> */ public Builder setTrueMutations( int index, com.google.bigtable.v2.Mutation.Builder builderForValue) { if (trueMutationsBuilder_ == null) { ensureTrueMutationsIsMutable(); trueMutations_.set(index, builderForValue.build()); onChanged(); } else { trueMutationsBuilder_.setMessage(index, builderForValue.build()); } return this; } /**