in src/main/java/software/amazon/qldb/tutorial/InsertIonTypes.java [69:94]
public static void updateRecordAndVerifyType(final TransactionExecutor txn, final IonValue ionValue) {
final String updateStatement = String.format("UPDATE %s SET Name = ?", TABLE_NAME);
final List<IonValue> parameters = Collections.singletonList(ionValue);
txn.execute(updateStatement, parameters);
log.info("Updated document.");
final String searchQuery = String.format("SELECT VALUE Name FROM %s", TABLE_NAME);
final Result result = txn.execute(searchQuery);
if (result.isEmpty()) {
throw new AssertionError("Did not find any values for the Name key.");
}
for (IonValue value : result) {
if (!ionValue.getClass().isInstance(value)) {
throw new AssertionError(String.format("The queried value, %s, is not an instance of %s.",
value.getClass().toString(), ionValue.getClass().toString()));
}
if (!value.getType().equals(ionValue.getType())) {
throw new AssertionError(String.format("The queried value type, %s, does not match %s.",
value.getType().toString(), ionValue.getType().toString()));
}
}
log.info("Successfully verified value is instance of {} with type {}.", ionValue.getClass().toString(),
ionValue.getType().toString());
}