Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2014-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved.
   *
   * Licensed under the Apache License, Version 2.0 (the "License").
   * You may not use this file except in compliance with the License.
   * A copy of the License is located at
   *
   *  http://aws.amazon.com/apache2.0
   *
  * or in the "license" file accompanying this file. This file is distributed
  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
  * express or implied. See the License for the specific language governing
  * permissions and limitations under the License.
  */
 package com.amazonaws.services.dynamodbv2.document.internal;
 import static com.amazonaws.services.dynamodbv2.document.internal.InternalUtils.toItemList;
 
 import java.util.List;
 import java.util.Map;
 
 
 class ScanPage extends Page<ItemScanOutcome> {
 
     private final AmazonDynamoDB client;
     private final ScanSpec spec;
     private final ScanRequest request;
     private final int index;
     private final Map<StringAttributeValuelastEvaluatedKey;
 
     public ScanPage(
             AmazonDynamoDB client,
             ScanSpec spec,
             ScanRequest request,
             int index,
             ScanOutcome outcome) {
         super(Collections.unmodifiableList(
                 toItemList(outcome.getScanResult().getItems())),
             outcome);
         this. = client;
         this. = spec;
         this. = request;
         this. = index;
 
         final Integer max = spec.getMaxResultSize();
         final ScanResult result = outcome.getScanResult();
         final List<?> ilist = result.getItems();
         final int size = ilist == null ? 0 : ilist.size();
         if (max != null && (index + size) > max) {
             this. = null;
         } else {
             this. = result.getLastEvaluatedKey();
         }
     }
 
     @Override
     public boolean hasNextPage() {
         if ( == null)
             return false;
         Integer max = .getMaxResultSize();
         if (max == null)
             return true;
         return nextRequestLimit(max.intValue()) > 0;
     }
 
     private int nextRequestLimit(int max) {
         int nextIndex =  + this.size();
         return InternalUtils.minimum(
                 max - nextIndex,
                 .getMaxPageSize());
     }
 
     @Override
     public Page<ItemScanOutcomenextPage() {
         if ( == null) {
             throw new NoSuchElementException("No more pages");
         }
         final Integer max = .getMaxResultSize();
         if (max != null) {
             int nextLimit = nextRequestLimit(max.intValue());
             if (nextLimit == 0)
                 throw new NoSuchElementException("No more pages");
             .setLimit(nextLimit);
         }
         // fire off request to the server side
         ScanResult result = .scan();
         final int nextIndex =  + this.size();
         return new ScanPage(nextIndex
                 new ScanOutcome(result));
    }
New to GrepCode? Check out our FAQ X