/** * * * <pre> * Update an existing column family to the specified schema, or fail * if no column family exists with the given ID. * </pre> * * <code>.google.bigtable.admin.v2.ColumnFamily update = 3;</code> */ public Builder setUpdate(com.google.bigtable.admin.v2.ColumnFamily.Builder builderForValue) { if (updateBuilder_ == null) { mod_ = builderForValue.build(); onChanged(); } else { updateBuilder_.setMessage(builderForValue.build()); } modCase_ = 3; return this; } /**
/** * * * <pre> * Create a new column family with the specified schema, or fail if * one already exists with the given ID. * </pre> * * <code>.google.bigtable.admin.v2.ColumnFamily create = 2;</code> */ public Builder setCreate(com.google.bigtable.admin.v2.ColumnFamily.Builder builderForValue) { if (createBuilder_ == null) { mod_ = builderForValue.build(); onChanged(); } else { createBuilder_.setMessage(builderForValue.build()); } modCase_ = 2; return this; } /**
/** * Adds a new columnFamily with {@link GCRule} to the configuration. Please note that calling this * method with the same familyId will overwrite the previous family. * * @param familyId * @param gcRule */ public CreateTableRequest addFamily(String familyId, GCRule gcRule) { Preconditions.checkNotNull(familyId); tableRequest.putColumnFamilies( familyId, ColumnFamily.newBuilder().setGcRule(gcRule.toProto()).build()); return this; }
/** * <p>Adapt a single instance of an HBase {@link org.apache.hadoop.hbase.HColumnDescriptor} to * an instance of {@link com.google.bigtable.admin.v2.ColumnFamily.Builder}.</p> * * <p>NOTE: This method does not set the name of the ColumnFamily.Builder. The assumption is * that the CreateTableRequest or CreateColumFamilyRequest takes care of the naming. As of now * (3/11/2015), the server insists on having a blank name.</p> * * @param columnDescriptor a {@link org.apache.hadoop.hbase.HColumnDescriptor} object. * @return a {@link com.google.bigtable.admin.v2.ColumnFamily.Builder} object. */ public ColumnFamily adapt(HColumnDescriptor columnDescriptor) { throwIfRequestingUnknownFeatures(columnDescriptor); throwIfRequestingUnsupportedFeatures(columnDescriptor); ColumnFamily.Builder resultBuilder = ColumnFamily.newBuilder(); GCRule gcRule = buildGarbageCollectionRule(columnDescriptor); if (gcRule != null) { resultBuilder.setGcRule(gcRule.toProto()); } return resultBuilder.build(); }
/** * <p>Adapt a single instance of an HBase {@link org.apache.hadoop.hbase.HColumnDescriptor} to * an instance of {@link com.google.bigtable.admin.v2.ColumnFamily.Builder}.</p> * * <p>NOTE: This method does not set the name of the ColumnFamily.Builder. The assumption is * that the CreateTableRequest or CreateColumFamilyRequest takes care of the naming. As of now * (3/11/2015), the server insists on having a blank name.</p> * * @param columnDescriptor a {@link org.apache.hadoop.hbase.HColumnDescriptor} object. * @return a {@link com.google.bigtable.admin.v2.ColumnFamily.Builder} object. */ public ColumnFamily adapt(HColumnDescriptor columnDescriptor) { throwIfRequestingUnknownFeatures(columnDescriptor); throwIfRequestingUnsupportedFeatures(columnDescriptor); ColumnFamily.Builder resultBuilder = ColumnFamily.newBuilder(); GCRule gcRule = buildGarbageCollectionRule(columnDescriptor); if (gcRule != null) { resultBuilder.setGcRule(gcRule.toProto()); } return resultBuilder.build(); }
/** * * * <pre> * Update an existing column family to the specified schema, or fail * if no column family exists with the given ID. * </pre> * * <code>.google.bigtable.admin.v2.ColumnFamily update = 3;</code> */ public Builder setUpdate(com.google.bigtable.admin.v2.ColumnFamily.Builder builderForValue) { if (updateBuilder_ == null) { mod_ = builderForValue.build(); onChanged(); } else { updateBuilder_.setMessage(builderForValue.build()); } modCase_ = 3; return this; } /**
/** * * * <pre> * Create a new column family with the specified schema, or fail if * one already exists with the given ID. * </pre> * * <code>.google.bigtable.admin.v2.ColumnFamily create = 2;</code> */ public Builder setCreate(com.google.bigtable.admin.v2.ColumnFamily.Builder builderForValue) { if (createBuilder_ == null) { mod_ = builderForValue.build(); onChanged(); } else { createBuilder_.setMessage(builderForValue.build()); } modCase_ = 2; return this; } /**
/** * <pre> * Update an existing column family to the specified schema, or fail * if no column family exists with the given ID. * </pre> * * <code>.google.bigtable.admin.v2.ColumnFamily update = 3;</code> */ public Builder setUpdate( com.google.bigtable.admin.v2.ColumnFamily.Builder builderForValue) { if (updateBuilder_ == null) { mod_ = builderForValue.build(); onChanged(); } else { updateBuilder_.setMessage(builderForValue.build()); } modCase_ = 3; return this; } /**
/** * <pre> * Create a new column family with the specified schema, or fail if * one already exists with the given ID. * </pre> * * <code>.google.bigtable.admin.v2.ColumnFamily create = 2;</code> */ public Builder setCreate( com.google.bigtable.admin.v2.ColumnFamily.Builder builderForValue) { if (createBuilder_ == null) { mod_ = builderForValue.build(); onChanged(); } else { createBuilder_.setMessage(builderForValue.build()); } modCase_ = 2; return this; } /**
/** Helper function to create an empty table. */ private void createEmptyTable(String instanceName, String tableId) { Table.Builder tableBuilder = Table.newBuilder(); tableBuilder.putColumnFamilies(COLUMN_FAMILY_NAME, ColumnFamily.newBuilder().build()); CreateTableRequest.Builder createTableRequestBuilder = CreateTableRequest.newBuilder() .setParent(instanceName) .setTableId(tableId) .setTable(tableBuilder.build()); tableAdminClient.createTable(createTableRequestBuilder.build()); }
/** * Adds a new columnFamily with {@link GCRule} to the configuration. Please note that calling this * method with the same familyId will overwrite the previous family. * * @param familyId * @param gcRule */ public CreateTableRequest addFamily(String familyId, GCRule gcRule) { Preconditions.checkNotNull(familyId); tableRequest.putColumnFamilies( familyId, ColumnFamily.newBuilder().setGcRule(gcRule.toProto()).build()); return this; }
@Test public void createTable() { com.google.bigtable.admin.v2.CreateTableRequest actual = CreateTableRequest.of("tableId") .addFamily("cf1") .addFamily("cf2", GCRules.GCRULES.maxVersions(1)) .addSplit(ByteString.copyFromUtf8("c")) .toProto(PROJECT_ID, INSTANCE_ID); com.google.bigtable.admin.v2.CreateTableRequest expected = com.google.bigtable.admin.v2.CreateTableRequest.newBuilder() .setTableId("tableId") .setParent(InstanceName.of("project", "instance").toString()) .addInitialSplits(Split.newBuilder().setKey(ByteString.copyFromUtf8("c"))) .setTable( Table.newBuilder() .putColumnFamilies( "cf1", com.google.bigtable.admin.v2.ColumnFamily.newBuilder().build()) .putColumnFamilies( "cf2", com.google.bigtable.admin.v2.ColumnFamily.newBuilder() .setGcRule(GCRules.GCRULES.maxVersions(1).toProto()) .build())) .build(); assertThat(actual).isEqualTo(expected); }
@Test public void testModifyFamilies() { // Setup com.google.bigtable.admin.v2.ModifyColumnFamiliesRequest expectedRequest = com.google.bigtable.admin.v2.ModifyColumnFamiliesRequest.newBuilder() .setName(TABLE_NAME) .addModifications( Modification.newBuilder() .setId("cf") .setCreate(ColumnFamily.newBuilder().setGcRule(GcRule.getDefaultInstance()))) .build(); com.google.bigtable.admin.v2.Table fakeResponse = com.google.bigtable.admin.v2.Table.newBuilder() .setName(TABLE_NAME) .putColumnFamilies( "cf", ColumnFamily.newBuilder().setGcRule(GcRule.getDefaultInstance()).build()) .build(); Mockito.when(mockModifyTableCallable.futureCall(expectedRequest)) .thenReturn(ApiFutures.immediateFuture(fakeResponse)); // Execute Table actualResult = adminClient.modifyFamilies(ModifyColumnFamiliesRequest.of(TABLE_ID).addFamily("cf")); // Verify assertThat(actualResult).isEqualTo(Table.fromProto(fakeResponse)); }