ItemT
- The modelled object that this table maps records to.RequestT
- The type of the request object for the DynamoDb call in the low level DynamoDbClient
or
DynamoDbAsyncClient
.ResponseT
- The type of the response object for the DynamoDb call in the low level DynamoDbClient
or DynamoDbAsyncClient
.public interface PaginatedOperation<ItemT,RequestT,ResponseT>
This interface is extended by PaginatedTableOperation
and PaginatedIndexOperation
which contain
implementations of the behavior to actually execute the operation in the context of a table or secondary index and
are used by DynamoDbTable
or DynamoDbAsyncTable
and DynamoDbIndex
or DynamoDbAsyncIndex
respectively. By sharing this common interface operations are able to re-use code regardless of whether they are
executed in the context of a primary or secondary index or whether they are being executed in a synchronous or
non-blocking asynchronous fashion.
Modifier and Type | Method and Description |
---|---|
Function<RequestT,SdkPublisher<ResponseT>> |
asyncServiceCall(DynamoDbAsyncClient dynamoDbAsyncClient)
Provides a function for making the low level non-blocking asynchronous SDK call to DynamoDb.
|
default PageIterable<ItemT> |
execute(TableSchema<ItemT> tableSchema,
OperationContext context,
DynamoDbEnhancedClientExtension extension,
DynamoDbClient dynamoDbClient)
Default implementation of a complete synchronous execution of this operation against either the primary or a
secondary index.
|
default PagePublisher<ItemT> |
executeAsync(TableSchema<ItemT> tableSchema,
OperationContext context,
DynamoDbEnhancedClientExtension extension,
DynamoDbAsyncClient dynamoDbAsyncClient)
Default implementation of a complete non-blocking asynchronous execution of this operation against either the
primary or a secondary index.
|
RequestT |
generateRequest(TableSchema<ItemT> tableSchema,
OperationContext context,
DynamoDbEnhancedClientExtension extension)
This method generates the request that needs to be sent to a low level
DynamoDbClient . |
Function<RequestT,SdkIterable<ResponseT>> |
serviceCall(DynamoDbClient dynamoDbClient)
Provides a function for making the low level synchronous SDK call to DynamoDb.
|
Page<ItemT> |
transformResponse(ResponseT response,
TableSchema<ItemT> tableSchema,
OperationContext context,
DynamoDbEnhancedClientExtension dynamoDbEnhancedClientExtension)
Takes the response object returned by the actual DynamoDb call and maps it into a higher level abstracted
result object.
|
RequestT generateRequest(TableSchema<ItemT> tableSchema, OperationContext context, DynamoDbEnhancedClientExtension extension)
DynamoDbClient
.tableSchema
- A TableSchema
that maps the table to a modelled object.context
- An object containing the context, or target, of the command execution.extension
- A DynamoDbEnhancedClientExtension
that may modify the request of this operation. A null
value here will result in no modifications.DynamoDbClient
call to perform the operation.Function<RequestT,SdkIterable<ResponseT>> serviceCall(DynamoDbClient dynamoDbClient)
dynamoDbClient
- A low level DynamoDbClient
to make the call against.Function<RequestT,SdkPublisher<ResponseT>> asyncServiceCall(DynamoDbAsyncClient dynamoDbAsyncClient)
dynamoDbAsyncClient
- A low level DynamoDbAsyncClient
to make the call against.Page<ItemT> transformResponse(ResponseT response, TableSchema<ItemT> tableSchema, OperationContext context, DynamoDbEnhancedClientExtension dynamoDbEnhancedClientExtension)
response
- The response object returned by the DynamoDb call for this operation.tableSchema
- A TableSchema
that maps the table to a modelled object.context
- An object containing the context, or target, of the command execution.dynamoDbEnhancedClientExtension
- A DynamoDbEnhancedClientExtension
that may modify the result of
this operation. A null value here will result in no modifications.default PageIterable<ItemT> execute(TableSchema<ItemT> tableSchema, OperationContext context, DynamoDbEnhancedClientExtension extension, DynamoDbClient dynamoDbClient)
It performs three steps:
generateRequest(software.amazon.awssdk.enhanced.dynamodb.TableSchema<ItemT>, software.amazon.awssdk.enhanced.dynamodb.OperationContext, software.amazon.awssdk.enhanced.dynamodb.DynamoDbEnhancedClientExtension)
to get the request object.asyncServiceCall(software.amazon.awssdk.services.dynamodb.DynamoDbAsyncClient)
and call it using the request object generated in the previous step.SdkIterable
that was returned by the previous step with a transformation that turns each
object returned to a high level result.tableSchema
- A TableSchema
that maps the table to a modelled object.context
- An object containing the context, or target, of the command execution.dynamoDbClient
- A DynamoDbClient
to make the call against.extension
- A DynamoDbEnhancedClientExtension
that may modify the request or result of this
operation. A null value here will result in no modifications.default PagePublisher<ItemT> executeAsync(TableSchema<ItemT> tableSchema, OperationContext context, DynamoDbEnhancedClientExtension extension, DynamoDbAsyncClient dynamoDbAsyncClient)
It performs three steps:
generateRequest(software.amazon.awssdk.enhanced.dynamodb.TableSchema<ItemT>, software.amazon.awssdk.enhanced.dynamodb.OperationContext, software.amazon.awssdk.enhanced.dynamodb.DynamoDbEnhancedClientExtension)
to get the request object.
asyncServiceCall(software.amazon.awssdk.services.dynamodb.DynamoDbAsyncClient)
and call it using the request object generated in the previous step.
SdkPublisher
returned by the SDK in a new one that calls transformResponse() to
convert the response objects published to a high level result.
tableSchema
- A TableSchema
that maps the table to a modelled object.context
- An object containing the context, or target, of the command execution.dynamoDbAsyncClient
- A DynamoDbAsyncClient
to make the call against.extension
- A DynamoDbEnhancedClientExtension
that may modify the request or result of this
operation. A null value here will result in no modifications.SdkPublisher
that will publish pages of the high level result object as specified by the
implementation of this operation.Copyright © 2021. All rights reserved.