R
- low level result typepublic abstract class ItemCollection<R> extends PageBasedCollection<Item,R>
Item
's.
An ItemCollection
object maintains a cursor pointing to its
current pages of data. Initially the cursor is positioned before the first page.
The next method moves the cursor to the next row, and because it returns
false when there are no more rows in the ItemCollection
object,
it can be used in a while loop to iterate through the collection.
Network calls can be triggered when the collection is iterated across page
boundaries.Constructor and Description |
---|
ItemCollection() |
Modifier and Type | Method and Description |
---|---|
protected void |
accumulateStats(ConsumedCapacity consumedCapacity,
Integer count,
Integer scannedCount) |
ConsumedCapacity |
getAccumulatedConsumedCapacity()
Returns the consumed capacity accumulated so far.
|
int |
getAccumulatedItemCount()
Returns the count of items accumulated so far.
|
int |
getAccumulatedScannedCount()
Returns the scanned count accumulated so far.
|
R |
getLastLowLevelResult()
Returns the low-level result last retrieved (for the current page) from
the server side; or null if there has yet no calls to the server.
|
abstract Integer |
getMaxResultSize()
Returns the maximum number of resources to be retrieved in this
collection; or null if there is no limit.
|
ConsumedCapacity |
getTotalConsumedCapacity()
Deprecated.
This method returns the accumulated consumed capacity and not the total.
Use
getAccumulatedScannedCount() instead. |
int |
getTotalCount()
Deprecated.
This method returns the accumulated count and not the total count.
Use
getAccumulatedItemCount() instead. |
int |
getTotalScannedCount()
Deprecated.
This method returns the accumulated count and not the total count.
Use
getAccumulatedScannedCount() instead. |
PageIterable<Item,R> |
pages()
Returns an
Iterable<Page<Item, R>> that iterates over pages of
items from this collection. |
LowLevelResultListener<R> |
registerLowLevelResultListener(LowLevelResultListener<R> listener)
Used to register a listener for the event of receiving a low-level result
from the server side.
|
firstPage, iterator, setLastLowLevelResult
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
forEach, spliterator
protected final void accumulateStats(ConsumedCapacity consumedCapacity, Integer count, Integer scannedCount)
@Deprecated public int getTotalCount()
getAccumulatedItemCount()
instead.public int getAccumulatedItemCount()
@Deprecated public int getTotalScannedCount()
getAccumulatedScannedCount()
instead.public int getAccumulatedScannedCount()
@Deprecated public ConsumedCapacity getTotalConsumedCapacity()
getAccumulatedScannedCount()
instead.public ConsumedCapacity getAccumulatedConsumedCapacity()
public PageIterable<Item,R> pages()
Iterable<Page<Item, R>>
that iterates over pages of
items from this collection. Each call to Iterator.next
on an
Iterator
returned from this Iterable
results in exactly
one call to DynamoDB to retrieve a single page of results.
ItemCollection<QueryResult> collection = ...;
for (Page<Item> page : collection.pages()) {
processItems(page);
ConsumedCapacity consumedCapacity =
page.getLowLevelResult().getConsumedCapacity();
Thread.sleep(getBackoff(consumedCapacity.getCapacityUnits()));
}
The use of the internal/undocumented PageIterable
class instead
of Iterable
in the public interface here is retained for
backwards compatibility. It doesn't expose any methods beyond those
of the Iterable
interface. This method will be changed to return
an Iterable<Page<Item, R>>
directly in a future release of the
SDK.
pages
in class PageBasedCollection<Item,R>
Page
public abstract Integer getMaxResultSize()
getMaxResultSize
in class PageBasedCollection<Item,R>
public R getLastLowLevelResult()
getLastLowLevelResult
in class PageBasedCollection<Item,R>
public LowLevelResultListener<R> registerLowLevelResultListener(LowLevelResultListener<R> listener)
registerLowLevelResultListener
in class PageBasedCollection<Item,R>
listener
- listener to be registered. If null, a "none" listener will be
set.Copyright © 2023. All rights reserved.