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
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,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,
DynamoDbEnhancedClientExtension extension,
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,
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 . |
OperationName |
operationName()
The type, or name, of the operation.
|
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,
DynamoDbEnhancedClientExtension extension)
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,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, DynamoDbEnhancedClientExtension extension)
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.extension
- A DynamoDbEnhancedClientExtension
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, DynamoDbEnhancedClientExtension extension, 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.extension
- A DynamoDbEnhancedClientExtension
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, DynamoDbEnhancedClientExtension extension, 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.extension
- A DynamoDbEnhancedClientExtension
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.OperationName operationName()
Copyright © 2022. All rights reserved.