Skip to content
This repository was archived by the owner on May 8, 2026. It is now read-only.

Commit 59addc0

Browse files
committed
PR feedback
1 parent 6e39723 commit 59addc0

3 files changed

Lines changed: 80 additions & 21 deletions

File tree

google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/models/ConsistencyRequest.java

Lines changed: 32 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -90,42 +90,49 @@ public static ConsistencyRequest forReplicationFromTableName(
9090
true);
9191
}
9292

93-
@InternalApi
94-
public CheckConsistencyRequest toCheckConsistencyProto(
95-
TableAdminRequestContext requestContext, String token) {
96-
Preconditions.checkState(
97-
!isFullyQualified(),
98-
"Use toCheckConsistencyProto(String token) for fully qualified table names.");
93+
private CheckConsistencyRequest.Builder buildBaseRequest(String name, String token) {
9994
CheckConsistencyRequest.Builder builder = CheckConsistencyRequest.newBuilder();
100-
TableName tableName =
101-
TableName.of(requestContext.getProjectId(), requestContext.getInstanceId(), getTableId());
10295

10396
if (getMode().equals(CheckConsistencyRequest.ModeCase.STANDARD_READ_REMOTE_WRITES)) {
10497
builder.setStandardReadRemoteWrites(StandardReadRemoteWrites.newBuilder().build());
10598
} else {
10699
builder.setDataBoostReadLocalWrites(DataBoostReadLocalWrites.newBuilder().build());
107100
}
108101

109-
return builder.setName(tableName.toString()).setConsistencyToken(token).build();
102+
return builder.setName(name).setConsistencyToken(token);
110103
}
111104

105+
/**
106+
* Creates a CheckConsistencyRequest proto. This variant is used when the ConsistencyRequest
107+
* was initialized with a short table ID, relying on the TableAdminRequestContext to construct
108+
* the fully qualified table name.
109+
*/
112110
@InternalApi
113-
public CheckConsistencyRequest toCheckConsistencyProto(String token) {
114-
Preconditions.checkState(
115-
isFullyQualified(),
116-
"Use toCheckConsistencyProto(TableAdminRequestContext, String) for non-qualified table"
117-
+ " names.");
118-
CheckConsistencyRequest.Builder builder = CheckConsistencyRequest.newBuilder();
111+
public CheckConsistencyRequest toCheckConsistencyProto(
112+
TableAdminRequestContext requestContext, String token) {
113+
Preconditions.checkState(!isFullyQualified(), "Use toCheckConsistencyProto(String token) for fully qualified table names.");
114+
TableName tableName =
115+
TableName.of(requestContext.getProjectId(), requestContext.getInstanceId(), getTableId());
119116

120-
if (getMode().equals(CheckConsistencyRequest.ModeCase.STANDARD_READ_REMOTE_WRITES)) {
121-
builder.setStandardReadRemoteWrites(StandardReadRemoteWrites.newBuilder().build());
122-
} else {
123-
builder.setDataBoostReadLocalWrites(DataBoostReadLocalWrites.newBuilder().build());
124-
}
117+
return buildBaseRequest(tableName.toString(), token).build();
118+
}
125119

126-
return builder.setName(getTableId()).setConsistencyToken(token).build();
120+
/**
121+
* Creates a CheckConsistencyRequest proto. This variant is used when the ConsistencyRequest
122+
* was initialized with a fully qualified table name, eliminating the need for a request context.
123+
*/
124+
@InternalApi
125+
public CheckConsistencyRequest toCheckConsistencyProto(String token) {
126+
Preconditions.checkState(isFullyQualified(), "Use toCheckConsistencyProto(TableAdminRequestContext, String) for non-qualified table names.");
127+
128+
return buildBaseRequest(getTableId(), token).build();
127129
}
128130

131+
/**
132+
* Creates a GenerateConsistencyTokenRequest proto. This variant is used when the ConsistencyRequest
133+
* was initialized with a short table ID, relying on the TableAdminRequestContext to construct
134+
* the fully qualified table name.
135+
*/
129136
@InternalApi
130137
public GenerateConsistencyTokenRequest toGenerateTokenProto(
131138
TableAdminRequestContext requestContext) {
@@ -138,6 +145,10 @@ public GenerateConsistencyTokenRequest toGenerateTokenProto(
138145
return builder.setName(tableName.toString()).build();
139146
}
140147

148+
/**
149+
* Creates a GenerateConsistencyTokenRequest proto. This variant is used when the ConsistencyRequest
150+
* was initialized with a fully qualified table name, eliminating the need for a request context.
151+
*/
141152
@InternalApi
142153
public GenerateConsistencyTokenRequest toGenerateTokenProto() {
143154
Preconditions.checkState(

google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/EnhancedBigtableTableAdminStub.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,15 @@ public class EnhancedBigtableTableAdminStub extends GrpcBigtableTableAdminStub {
6262
private final OperationCallable<Void, Empty, OptimizeRestoredTableMetadata>
6363
optimizeRestoredTableOperationBaseCallable;
6464

65+
/**
66+
* Creates an instance of {@link EnhancedBigtableTableAdminStub} using the provided settings.
67+
* This variant is used by the V2 client stack which relies on fully qualified table names
68+
* and therefore does not require a {@link TableAdminRequestContext}.
69+
*
70+
* @param settings The settings used to configure the stub.
71+
* @return A new instance of {@code EnhancedBigtableTableAdminStub}.
72+
* @throws IOException If there are errors creating the underlying client context.
73+
*/
6574
public static EnhancedBigtableTableAdminStub createEnhanced(
6675
BigtableTableAdminStubSettings settings) throws IOException {
6776
return new EnhancedBigtableTableAdminStub(settings, ClientContext.create(settings), null);

google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/models/ConsistencyRequestTest.java

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,4 +97,43 @@ public void testToCheckConsistencyProtoWithToken() {
9797
assertThat(checkConsistencyRequest.getModeCase())
9898
.isEqualTo(CheckConsistencyRequest.ModeCase.STANDARD_READ_REMOTE_WRITES);
9999
}
100+
101+
@Test
102+
public void testToCheckConsistencyProtoFromTableName() {
103+
String fullTableName = NameUtil.formatTableName(PROJECT_ID, INSTANCE_ID, TABLE_ID);
104+
ConsistencyRequest consistencyRequest = ConsistencyRequest.forReplicationFromTableName(fullTableName);
105+
106+
CheckConsistencyRequest checkConsistencyRequest =
107+
consistencyRequest.toCheckConsistencyProto(CONSISTENCY_TOKEN);
108+
109+
assertThat(checkConsistencyRequest.getName()).isEqualTo(fullTableName);
110+
assertThat(checkConsistencyRequest.getConsistencyToken()).isEqualTo(CONSISTENCY_TOKEN);
111+
assertThat(checkConsistencyRequest.getModeCase())
112+
.isEqualTo(CheckConsistencyRequest.ModeCase.STANDARD_READ_REMOTE_WRITES);
113+
}
114+
115+
@Test
116+
public void testToCheckConsistencyProtoFromTableNameWithToken() {
117+
String fullTableName = NameUtil.formatTableName(PROJECT_ID, INSTANCE_ID, TABLE_ID);
118+
ConsistencyRequest consistencyRequest =
119+
ConsistencyRequest.forReplicationFromTableName(fullTableName, CONSISTENCY_TOKEN);
120+
121+
CheckConsistencyRequest checkConsistencyRequest =
122+
consistencyRequest.toCheckConsistencyProto(CONSISTENCY_TOKEN);
123+
124+
assertThat(checkConsistencyRequest.getName()).isEqualTo(fullTableName);
125+
assertThat(checkConsistencyRequest.getConsistencyToken()).isEqualTo(CONSISTENCY_TOKEN);
126+
assertThat(checkConsistencyRequest.getModeCase())
127+
.isEqualTo(CheckConsistencyRequest.ModeCase.STANDARD_READ_REMOTE_WRITES);
128+
}
129+
130+
@Test
131+
public void testToGenerateTokenProtoFromTableName() {
132+
String fullTableName = NameUtil.formatTableName(PROJECT_ID, INSTANCE_ID, TABLE_ID);
133+
ConsistencyRequest consistencyRequest = ConsistencyRequest.forReplicationFromTableName(fullTableName);
134+
135+
GenerateConsistencyTokenRequest generateRequest = consistencyRequest.toGenerateTokenProto();
136+
137+
assertThat(generateRequest.getName()).isEqualTo(fullTableName);
138+
}
100139
}

0 commit comments

Comments
 (0)