in src/main/java/com/amazonaws/dao/OrderDao.java [108:141]
public OrderPage getOrders(final String exclusiveStartOrderId) {
final ScanResponse result;
try {
ScanRequest.Builder scanBuilder = ScanRequest.builder()
.tableName(tableName)
.limit(pageSize);
if (!isNullOrEmpty(exclusiveStartOrderId)) {
scanBuilder.exclusiveStartKey(Collections.singletonMap(ORDER_ID,
AttributeValue.builder().s(exclusiveStartOrderId).build()));
}
result = dynamoDb.scan(scanBuilder.build());
} catch (ResourceNotFoundException e) {
throw new TableDoesNotExistException("Order table " + tableName
+ " does not exist");
}
final List<Order> orders = result.items().stream()
.map(this::convert)
.collect(Collectors.toList());
OrderPage.OrderPageBuilder builder = OrderPage.builder().orders(orders);
if (result.lastEvaluatedKey() != null && !result.lastEvaluatedKey().isEmpty()) {
if ((!result.lastEvaluatedKey().containsKey(ORDER_ID)
|| isNullOrEmpty(result.lastEvaluatedKey().get(ORDER_ID).s()))) {
throw new IllegalStateException(
"orderId did not exist or was not a non-empty string in the lastEvaluatedKey");
} else {
builder.lastEvaluatedKey(result.lastEvaluatedKey().get(ORDER_ID).s());
}
}
return builder.build();
}