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.ResultT - The type of the mapped result object that will be returned by the execution of this operation.public interface CommonOperation<ItemT,RequestT,ResponseT,ResultT>
This interface is extended by TableOperation and IndexOperation which contain implementations of
the behavior to actually execute the operation in the context of a table or secondary index and are used by
MappedTable or AsyncMappedTable and MappedIndex or AsyncMappedIndex 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,CompletableFuture<ResponseT>> |
asyncServiceCall(DynamoDbAsyncClient dynamoDbAsyncClient)
Provides a function for making the low level non-blocking asynchronous SDK call to DynamoDb.
|
default ResultT |
execute(TableSchema<ItemT> tableSchema,
OperationContext context,
MapperExtension mapperExtension,
DynamoDbClient dynamoDbClient)
Default implementation of a complete synchronous execution of this operation against either the primary or a
secondary index.
|
default CompletableFuture<ResultT> |
executeAsync(TableSchema<ItemT> tableSchema,
OperationContext context,
MapperExtension mapperExtension,
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,
MapperExtension mapperExtension)
This method generates the request that needs to be sent to a low level
DynamoDbClient. |
Function<RequestT,ResponseT> |
serviceCall(DynamoDbClient dynamoDbClient)
Provides a function for making the low level synchronous SDK call to DynamoDb.
|
ResultT |
transformResponse(ResponseT response,
TableSchema<ItemT> tableSchema,
OperationContext context,
MapperExtension mapperExtension)
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, MapperExtension mapperExtension)
DynamoDbClient.tableSchema - A TableSchema that maps the table to a modelled object.context - An object containing the context, or target, of the command execution.mapperExtension - A MapperExtension 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,ResponseT> serviceCall(DynamoDbClient dynamoDbClient)
dynamoDbClient - A low level DynamoDbClient to make the call against.Function<RequestT,CompletableFuture<ResponseT>> asyncServiceCall(DynamoDbAsyncClient dynamoDbAsyncClient)
dynamoDbAsyncClient - A low level DynamoDbAsyncClient to make the call against.ResultT transformResponse(ResponseT response, TableSchema<ItemT> tableSchema, OperationContext context, MapperExtension mapperExtension)
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.mapperExtension - A MapperExtension that may modify the result of this operation. A null value
here will result in no modifications.default ResultT execute(TableSchema<ItemT> tableSchema, OperationContext context, MapperExtension mapperExtension, DynamoDbClient dynamoDbClient)
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.mapperExtension - A MapperExtension that may modify the request or result of this operation. A
null value here will result in no modifications.default CompletableFuture<ResultT> executeAsync(TableSchema<ItemT> tableSchema, OperationContext context, MapperExtension mapperExtension, DynamoDbAsyncClient dynamoDbAsyncClient)
CompletableFuture returned by the SDK in a new one that calls transformResponse() to
convert the response object returned in the previous step 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.mapperExtension - A MapperExtension that may modify the request or result of this operation. A
null value here will result in no modifications.CompletableFuture of the high level result object as specified by the implementation of this
operation.Copyright © 2020. All rights reserved.