Skip to content

Commit bee8cf4

Browse files
committed
JAVA-2263 use method from base for all checks
1 parent f8e5f4c commit bee8cf4

2 files changed

Lines changed: 11 additions & 27 deletions

File tree

mapper-processor/src/main/java/com/datastax/oss/driver/internal/mapper/processor/entity/EntityHelperSchemaValidationMethodGenerator.java

Lines changed: 4 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import static com.datastax.oss.driver.api.mapper.annotations.SchemaHint.*;
1919

2020
import com.datastax.oss.driver.api.core.CqlIdentifier;
21-
import com.datastax.oss.driver.api.core.metadata.schema.ColumnMetadata;
2221
import com.datastax.oss.driver.api.core.metadata.schema.TableMetadata;
2322
import com.datastax.oss.driver.api.core.type.UserDefinedType;
2423
import com.datastax.oss.driver.api.mapper.annotations.SchemaHint;
@@ -29,7 +28,6 @@
2928
import com.squareup.javapoet.TypeName;
3029
import java.util.ArrayList;
3130
import java.util.List;
32-
import java.util.Map;
3331
import java.util.Optional;
3432
import java.util.stream.Collectors;
3533
import javax.lang.model.element.Modifier;
@@ -149,24 +147,12 @@ private void findMissingColumnsInTable(MethodSpec.Builder methodBuilder) {
149147
}
150148

151149
private void generateMissingColumnsCheck(MethodSpec.Builder methodBuilder) {
152-
methodBuilder.addStatement(
153-
"$1T<$2T, $3T> columns = (($4T) tableMetadata.get()).getColumns()",
154-
Map.class,
155-
CqlIdentifier.class,
156-
ColumnMetadata.class,
157-
DefaultTableMetadata.class);
158150

159151
methodBuilder.addStatement(
160-
"$1T<$2T> missingTableCqlNames = new $3T<>();",
152+
"$1T<$2T> missingTableCqlNames = findMissingColumnsCql(expectedCqlNames, (($3T) tableMetadata.get()).getColumns().keySet())",
161153
List.class,
162154
CqlIdentifier.class,
163-
ArrayList.class);
164-
methodBuilder.beginControlFlow(
165-
"for ($1T cqlIdentifier : expectedCqlNames)", CqlIdentifier.class);
166-
methodBuilder.beginControlFlow("if (columns.get(cqlIdentifier) == null)");
167-
methodBuilder.addStatement("missingTableCqlNames.add(cqlIdentifier)");
168-
methodBuilder.endControlFlow();
169-
methodBuilder.endControlFlow();
155+
DefaultTableMetadata.class);
170156

171157
// Throw if there are any missingTableCqlNames
172158
CodeBlock missingCqlColumnExceptionMessage =
@@ -256,16 +242,9 @@ private void findMissingColumnsInUdt(MethodSpec.Builder methodBuilder, boolean g
256242
CqlIdentifier.class);
257243

258244
methodBuilder.addStatement(
259-
"$1T<$2T> missingTableCqlNames = new $3T<>();",
245+
"$1T<$2T> missingTableCqlNames = findMissingColumnsCql(expectedCqlNames, columns)",
260246
List.class,
261-
CqlIdentifier.class,
262-
ArrayList.class);
263-
methodBuilder.beginControlFlow(
264-
"for ($1T cqlIdentifier : expectedCqlNames)", CqlIdentifier.class);
265-
methodBuilder.beginControlFlow("if (!columns.contains(cqlIdentifier))");
266-
methodBuilder.addStatement("missingTableCqlNames.add(cqlIdentifier)");
267-
methodBuilder.endControlFlow();
268-
methodBuilder.endControlFlow();
247+
CqlIdentifier.class);
269248

270249
// Throw if there are any missingTableCqlNames
271250
CodeBlock missingCqlUdtExceptionMessage =

mapper-runtime/src/main/java/com/datastax/oss/driver/internal/mapper/entity/EntityHelperBase.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,16 @@ protected void throwIfKeyspaceMissing() {
8383

8484
public List<CqlIdentifier> findMissingColumns(
8585
List<CqlIdentifier> expected, Collection<ColumnMetadata> actual) {
86-
List<CqlIdentifier> missingColumns = new ArrayList<>();
8786
List<CqlIdentifier> actualCql =
8887
actual.stream().map(ColumnMetadata::getName).collect(Collectors.toList());
88+
return findMissingColumnsCql(expected, actualCql);
89+
}
90+
91+
public List<CqlIdentifier> findMissingColumnsCql(
92+
List<CqlIdentifier> expected, Collection<CqlIdentifier> actual) {
93+
List<CqlIdentifier> missingColumns = new ArrayList<>();
8994
for (CqlIdentifier cqlIdentifier : expected) {
90-
if (!actualCql.contains(cqlIdentifier)) {
95+
if (!actual.contains(cqlIdentifier)) {
9196
missingColumns.add(cqlIdentifier);
9297
}
9398
}

0 commit comments

Comments
 (0)