Interface IndexOperation<ItemT,RequestT,ResponseT,ResultT>

Type Parameters:
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.
ResponseT - The type of the response object for the DynamoDb call in the low level DynamoDbClient.
ResultT - The type of the mapped result object that will be returned by the execution of this operation.
All Superinterfaces:
CommonOperation<ItemT,RequestT,ResponseT,ResultT>

public interface IndexOperation<ItemT,RequestT,ResponseT,ResultT> extends CommonOperation<ItemT,RequestT,ResponseT,ResultT>
Interface for a single operation that can be executed against a secondary index of a mapped database table. Conceptually an operation maps 1:1 with an actual DynamoDb call.

A concrete implementation of this interface should also implement TableOperation with the same types if the operation supports being executed against both the primary index and secondary indices.

  • Method Details

    • executeOnSecondaryIndex

      default ResultT executeOnSecondaryIndex(TableSchema<ItemT> tableSchema, String tableName, String indexName, DynamoDbEnhancedClientExtension extension, DynamoDbClient dynamoDbClient)
      Default implementation of a complete synchronous execution of this operation against a secondary index. It will construct a context based on the given table name and secondary index name and then call execute() on the CommonOperation interface to perform the operation.
      Parameters:
      tableSchema - A TableSchema that maps the table to a modelled object.
      tableName - The physical name of the table that contains the secondary index to execute the operation against.
      indexName - The physical name of the secondary index to execute the operation against.
      extension - A DynamoDbEnhancedClientExtension that may modify the request or result of this operation. A null value here will result in no modifications.
      dynamoDbClient - A DynamoDbClient to make the call against.
      Returns:
      A high level result object as specified by the implementation of this operation.
    • executeOnSecondaryIndexAsync

      default CompletableFuture<ResultT> executeOnSecondaryIndexAsync(TableSchema<ItemT> tableSchema, String tableName, String indexName, DynamoDbEnhancedClientExtension extension, DynamoDbAsyncClient dynamoDbAsyncClient)
      Default implementation of a complete non-blocking asynchronous execution of this operation against a secondary index. It will construct a context based on the given table name and secondary index name and then call executeAsync() on the CommonOperation interface to perform the operation.
      Parameters:
      tableSchema - A TableSchema that maps the table to a modelled object.
      tableName - The physical name of the table that contains the secondary index to execute the operation against.
      indexName - The physical name of the secondary index to execute the operation against.
      extension - A DynamoDbEnhancedClientExtension that may modify the request or result of this operation. A null value here will result in no modifications.
      dynamoDbAsyncClient - A DynamoDbAsyncClient to make the call against.
      Returns:
      A high level result object as specified by the implementation of this operation.