|
18 | 18 | import static com.datastax.oss.driver.api.mapper.annotations.SchemaHint.*; |
19 | 19 |
|
20 | 20 | import com.datastax.oss.driver.api.core.CqlIdentifier; |
21 | | -import com.datastax.oss.driver.api.core.metadata.schema.ColumnMetadata; |
22 | 21 | import com.datastax.oss.driver.api.core.metadata.schema.TableMetadata; |
23 | 22 | import com.datastax.oss.driver.api.core.type.UserDefinedType; |
24 | 23 | import com.datastax.oss.driver.api.mapper.annotations.SchemaHint; |
|
29 | 28 | import com.squareup.javapoet.TypeName; |
30 | 29 | import java.util.ArrayList; |
31 | 30 | import java.util.List; |
32 | | -import java.util.Map; |
33 | 31 | import java.util.Optional; |
34 | 32 | import java.util.stream.Collectors; |
35 | 33 | import javax.lang.model.element.Modifier; |
@@ -149,24 +147,12 @@ private void findMissingColumnsInTable(MethodSpec.Builder methodBuilder) { |
149 | 147 | } |
150 | 148 |
|
151 | 149 | 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); |
158 | 150 |
|
159 | 151 | methodBuilder.addStatement( |
160 | | - "$1T<$2T> missingTableCqlNames = new $3T<>();", |
| 152 | + "$1T<$2T> missingTableCqlNames = findMissingColumnsCql(expectedCqlNames, (($3T) tableMetadata.get()).getColumns().keySet())", |
161 | 153 | List.class, |
162 | 154 | 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); |
170 | 156 |
|
171 | 157 | // Throw if there are any missingTableCqlNames |
172 | 158 | CodeBlock missingCqlColumnExceptionMessage = |
@@ -256,16 +242,9 @@ private void findMissingColumnsInUdt(MethodSpec.Builder methodBuilder, boolean g |
256 | 242 | CqlIdentifier.class); |
257 | 243 |
|
258 | 244 | methodBuilder.addStatement( |
259 | | - "$1T<$2T> missingTableCqlNames = new $3T<>();", |
| 245 | + "$1T<$2T> missingTableCqlNames = findMissingColumnsCql(expectedCqlNames, columns)", |
260 | 246 | 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); |
269 | 248 |
|
270 | 249 | // Throw if there are any missingTableCqlNames |
271 | 250 | CodeBlock missingCqlUdtExceptionMessage = |
|
0 commit comments