public OrderPage getOrders()

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();
    }