Package com.aerospike.mapper.tools
Interface IReactiveAeroMapper
- All Superinterfaces:
IBaseAeroMapper
- All Known Implementing Classes:
ReactiveAeroMapper
public interface IReactiveAeroMapper extends IBaseAeroMapper
-
Method Summary
Modifier and Type Method Description <T> ReactiveVirtualList<T>
asBackedList(@NotNull Class<?> owningClazz, @NotNull Object key, @NotNull String binName, Class<T> elementClazz)
Create a reactive virtual list against an attribute on a class.<T> ReactiveVirtualList<T>
asBackedList(@NotNull Object object, @NotNull String binName, Class<T> elementClazz)
Create a reactive virtual list against an attribute on a class.<T> reactor.core.publisher.Mono<Boolean>
delete(@NotNull Class<T> clazz, @NotNull Object userKey)
Delete a record by specifying a class and a user key.reactor.core.publisher.Mono<Boolean>
delete(@NotNull Object object)
Delete a record by specifying an object.<T> reactor.core.publisher.Mono<Boolean>
delete(com.aerospike.client.policy.WritePolicy writePolicy, @NotNull Class<T> clazz, @NotNull Object userKey)
Delete a record by specifying a write policy, a class and a user key.reactor.core.publisher.Mono<Boolean>
delete(com.aerospike.client.policy.WritePolicy writePolicy, @NotNull Object object)
Delete a record by specifying a write policy and an object.<T> reactor.core.publisher.Mono<Void>
find(@NotNull Class<T> clazz, Function<T,Boolean> function)
Find a record by specifying a class and a Boolean function.com.aerospike.client.reactor.IAerospikeReactorClient
getReactorClient()
<T> reactor.core.publisher.Flux<T>
query(@NotNull Class<T> clazz, com.aerospike.client.query.Filter filter)
Perform a secondary index query with the specified query policy.<T> reactor.core.publisher.Flux<T>
query(com.aerospike.client.policy.QueryPolicy policy, @NotNull Class<T> clazz, com.aerospike.client.query.Filter filter)
Perform a secondary index query with the specified query policy.<T> reactor.core.publisher.Mono<T>
read(@NotNull Class<T> clazz, @NotNull Object userKey)
Read a record from the repository and map it to an instance of the passed class.<T> reactor.core.publisher.Flux<T>
read(@NotNull Class<T> clazz, @NotNull Object[] userKeys)
Read a batch of records from the repository and map them to an instance of the passed class.<T> reactor.core.publisher.Flux<T>
read(@NotNull Class<T> clazz, @NotNull Object[] userKeys, com.aerospike.client.Operation... operations)
Read a batch of records from the repository using read operations in one batch call and map them to an instance of the passed class.<T> reactor.core.publisher.Mono<T>
read(@NotNull Class<T> clazz, @NotNull Object userKey, boolean resolveDependencies)
This method should not be used: It is used by mappers to correctly resolved dependencies.<T> reactor.core.publisher.Flux<T>
read(com.aerospike.client.policy.BatchPolicy batchPolicy, @NotNull Class<T> clazz, @NotNull Object[] userKeys)
Read a batch of records from the repository and map them to an instance of the passed class.<T> reactor.core.publisher.Flux<T>
read(com.aerospike.client.policy.BatchPolicy batchPolicy, @NotNull Class<T> clazz, @NotNull Object[] userKeys, com.aerospike.client.Operation... operations)
Read a batch of records from the repository using read operations in one batch call and map them to an instance of the passed class.<T> reactor.core.publisher.Mono<T>
read(com.aerospike.client.policy.Policy readPolicy, @NotNull Class<T> clazz, @NotNull Object userKey)
Read a record from the repository and map it to an instance of the passed class.<T> reactor.core.publisher.Mono<T>
read(com.aerospike.client.policy.Policy readPolicy, @NotNull Class<T> clazz, @NotNull Object userKey, boolean resolveDependencies)
This method should not be used: It is used by mappers to correctly resolved dependencies.<T> reactor.core.publisher.Mono<T>
readFromDigest(@NotNull Class<T> clazz, @javax.validation.constraints.NotNull byte[] digest)
Read a record from the repository and map it to an instance of the passed class, by providing a digest.<T> reactor.core.publisher.Mono<T>
readFromDigest(@NotNull Class<T> clazz, @javax.validation.constraints.NotNull byte[] digest, boolean resolveDependencies)
This method should not be used: It is used by mappers to correctly resolved dependencies.<T> reactor.core.publisher.Mono<T>
readFromDigest(com.aerospike.client.policy.Policy readPolicy, @NotNull Class<T> clazz, @javax.validation.constraints.NotNull byte[] digest)
Read a record from the repository and map it to an instance of the passed class, by providing a digest.<T> reactor.core.publisher.Mono<T>
readFromDigest(com.aerospike.client.policy.Policy readPolicy, @NotNull Class<T> clazz, @javax.validation.constraints.NotNull byte[] digest, boolean resolveDependencies)
This method should not be used: It is used by mappers to correctly resolved dependencies.<T> reactor.core.publisher.Mono<T>
save(@NotNull com.aerospike.client.policy.WritePolicy writePolicy, T object, String... binNames)
Save an object in the database with the given WritePolicy.<T> reactor.core.publisher.Flux<T>
save(@NotNull T... objects)
Save each object in the database.<T> reactor.core.publisher.Mono<T>
save(T object, String... binNames)
Save an object in the database.<T> reactor.core.publisher.Flux<T>
scan(@NotNull Class<T> clazz)
Scan every record in the set associated with the passed class.<T> reactor.core.publisher.Flux<T>
scan(@NotNull Class<T> clazz, int recordsPerSecond)
Scan every record in the set associated with the passed class, limiting the throughput to the specified recordsPerSecond.<T> reactor.core.publisher.Flux<T>
scan(com.aerospike.client.policy.ScanPolicy policy, @NotNull Class<T> clazz)
Scan every record in the set associated with the passed class.<T> reactor.core.publisher.Flux<T>
scan(com.aerospike.client.policy.ScanPolicy policy, @NotNull Class<T> clazz, int recordsPerSecond)
Scan every record in the set associated with the passed class.<T> reactor.core.publisher.Mono<T>
update(T object, String... binNames)
Updates the object in the database, merging the record with the existing record.Methods inherited from interface com.aerospike.mapper.tools.IBaseAeroMapper
asMapper, getBatchPolicy, getMappingConverter, getQueryPolicy, getReadPolicy, getScanPolicy, getWritePolicy
-
Method Details
-
save
<T> reactor.core.publisher.Flux<T> save(@NotNull @NotNull T... objects)Save each object in the database. This method will perform a REPLACE on the existing record so any existing data will be overwritten by the data in the passed object. This is a convenience method forsave(A); save(B); save(C);
Not that no transactionality is implied by this method -- if any of the save methods fail, the exception will be thrown without trying the other objects, nor attempting to roll back previously saved objects- Parameters:
objects
- One or two objects to save.- Throws:
com.aerospike.client.AerospikeException
- an AerospikeException will be thrown in case of an error.
-
save
Save an object in the database. This method will perform a REPLACE on the existing record so any existing data will be overwritten by the data in the passed object- Parameters:
object
- The object to save.- Throws:
com.aerospike.client.AerospikeException
- an AerospikeException will be thrown in case of an error.
-
save
<T> reactor.core.publisher.Mono<T> save(@NotNull @NotNull com.aerospike.client.policy.WritePolicy writePolicy, @NotNull T object, String... binNames)Save an object in the database with the given WritePolicy. This write policy will override any other set writePolicy so is effectively an upsert operation- Parameters:
writePolicy
- The write policy for the save operation.object
- The object to save.- Throws:
com.aerospike.client.AerospikeException
- an AerospikeException will be thrown in case of an error.
-
update
Updates the object in the database, merging the record with the existing record. This uses the RecordExistsAction of UPDATE. If bins are specified, only bins with the passed names will be updated (or all of them if null is passed)- Parameters:
object
- The object to update.- Throws:
com.aerospike.client.AerospikeException
- an AerospikeException will be thrown in case of an error.
-
readFromDigest
<T> reactor.core.publisher.Mono<T> readFromDigest(@NotNull @NotNull Class<T> clazz, @NotNull @javax.validation.constraints.NotNull byte[] digest)Read a record from the repository and map it to an instance of the passed class, by providing a digest.- Parameters:
clazz
- - The type of the record.digest
- - The Aerospike digest (Unique server hash value generated from set name and user key).- Returns:
- The returned mapped record.
- Throws:
com.aerospike.client.AerospikeException
- an AerospikeException will be thrown in case of an error.
-
readFromDigest
<T> reactor.core.publisher.Mono<T> readFromDigest(@NotNull @NotNull Class<T> clazz, @NotNull @javax.validation.constraints.NotNull byte[] digest, boolean resolveDependencies)This method should not be used: It is used by mappers to correctly resolved dependencies. -
readFromDigest
<T> reactor.core.publisher.Mono<T> readFromDigest(com.aerospike.client.policy.Policy readPolicy, @NotNull @NotNull Class<T> clazz, @NotNull @javax.validation.constraints.NotNull byte[] digest)Read a record from the repository and map it to an instance of the passed class, by providing a digest.- Parameters:
readPolicy
- - The read policy for the read operation.clazz
- - The type of the record.digest
- - The Aerospike digest (Unique server hash value generated from set name and user key).- Returns:
- The returned mapped record.
- Throws:
com.aerospike.client.AerospikeException
- an AerospikeException will be thrown in case of an error.
-
readFromDigest
<T> reactor.core.publisher.Mono<T> readFromDigest(com.aerospike.client.policy.Policy readPolicy, @NotNull @NotNull Class<T> clazz, @NotNull @javax.validation.constraints.NotNull byte[] digest, boolean resolveDependencies)This method should not be used: It is used by mappers to correctly resolved dependencies. -
read
<T> reactor.core.publisher.Mono<T> read(@NotNull @NotNull Class<T> clazz, @NotNull @NotNull Object userKey)Read a record from the repository and map it to an instance of the passed class.- Parameters:
clazz
- - The type of the record.userKey
- - The key of the record. The namespace and set will be derived from the values specified on the passed class.- Returns:
- The returned mapped record.
- Throws:
com.aerospike.client.AerospikeException
- an AerospikeException will be thrown in case of an error.
-
read
<T> reactor.core.publisher.Mono<T> read(@NotNull @NotNull Class<T> clazz, @NotNull @NotNull Object userKey, boolean resolveDependencies)This method should not be used: It is used by mappers to correctly resolved dependencies. -
read
<T> reactor.core.publisher.Mono<T> read(com.aerospike.client.policy.Policy readPolicy, @NotNull @NotNull Class<T> clazz, @NotNull @NotNull Object userKey)Read a record from the repository and map it to an instance of the passed class.- Parameters:
readPolicy
- - The read policy for the read operation.clazz
- - The type of the record.userKey
- - The key of the record. The namespace and set will be derived from the values specified on the passed class.- Returns:
- The returned mapped record.
- Throws:
com.aerospike.client.AerospikeException
- an AerospikeException will be thrown in case of an error.
-
read
<T> reactor.core.publisher.Mono<T> read(com.aerospike.client.policy.Policy readPolicy, @NotNull @NotNull Class<T> clazz, @NotNull @NotNull Object userKey, boolean resolveDependencies)This method should not be used: It is used by mappers to correctly resolved dependencies. -
read
<T> reactor.core.publisher.Flux<T> read(@NotNull @NotNull Class<T> clazz, @NotNull @NotNull Object[] userKeys)Read a batch of records from the repository and map them to an instance of the passed class.- Parameters:
clazz
- - The type of the record.userKeys
- - The keys of the record. The namespace and set will be derived from the values specified on the passed class.- Returns:
- The returned mapped records.
- Throws:
com.aerospike.client.AerospikeException
- an AerospikeException will be thrown in case of an error.
-
read
<T> reactor.core.publisher.Flux<T> read(com.aerospike.client.policy.BatchPolicy batchPolicy, @NotNull @NotNull Class<T> clazz, @NotNull @NotNull Object[] userKeys)Read a batch of records from the repository and map them to an instance of the passed class.- Parameters:
batchPolicy
- A given batch policy.clazz
- - The type of the record.userKeys
- - The keys of the record. The namespace and set will be derived from the values specified on the passed class.- Returns:
- The returned mapped records.
- Throws:
com.aerospike.client.AerospikeException
- an AerospikeException will be thrown in case of an error.
-
read
<T> reactor.core.publisher.Flux<T> read(@NotNull @NotNull Class<T> clazz, @NotNull @NotNull Object[] userKeys, com.aerospike.client.Operation... operations)Read a batch of records from the repository using read operations in one batch call and map them to an instance of the passed class.- Parameters:
clazz
- - The type of the record.userKeys
- - The keys of the record. The namespace and set will be derived from the values specified on the passed class.operations
- - array of read operations on record.- Returns:
- The returned mapped records.
- Throws:
com.aerospike.client.AerospikeException
- an AerospikeException will be thrown in case of an error.
-
read
<T> reactor.core.publisher.Flux<T> read(com.aerospike.client.policy.BatchPolicy batchPolicy, @NotNull @NotNull Class<T> clazz, @NotNull @NotNull Object[] userKeys, com.aerospike.client.Operation... operations)Read a batch of records from the repository using read operations in one batch call and map them to an instance of the passed class.- Parameters:
batchPolicy
- A given batch policy.clazz
- - The type of the record.userKeys
- - The keys of the record. The namespace and set will be derived from the values specified on the passed class.operations
- - array of read operations on record.- Returns:
- The returned mapped records.
- Throws:
com.aerospike.client.AerospikeException
- an AerospikeException will be thrown in case of an error.
-
delete
<T> reactor.core.publisher.Mono<Boolean> delete(@NotNull @NotNull Class<T> clazz, @NotNull @NotNull Object userKey)Delete a record by specifying a class and a user key.- Parameters:
clazz
- - The type of the record.userKey
- - The key of the record. The namespace and set will be derived from the values specified on the passed class.- Returns:
- whether record existed on server before deletion
- Throws:
com.aerospike.client.AerospikeException
- an AerospikeException will be thrown in case of an error.
-
delete
<T> reactor.core.publisher.Mono<Boolean> delete(com.aerospike.client.policy.WritePolicy writePolicy, @NotNull @NotNull Class<T> clazz, @NotNull @NotNull Object userKey)Delete a record by specifying a write policy, a class and a user key.- Parameters:
writePolicy
- - The write policy for the delete operation.clazz
- - The type of the record.userKey
- - The key of the record. The namespace and set will be derived from the values specified on the passed class.- Returns:
- whether record existed on server before deletion
- Throws:
com.aerospike.client.AerospikeException
- an AerospikeException will be thrown in case of an error.
-
delete
Delete a record by specifying an object.- Parameters:
object
- The object to delete.- Returns:
- whether record existed on server before deletion
- Throws:
com.aerospike.client.AerospikeException
- an AerospikeException will be thrown in case of an error.
-
delete
reactor.core.publisher.Mono<Boolean> delete(com.aerospike.client.policy.WritePolicy writePolicy, @NotNull @NotNull Object object)Delete a record by specifying a write policy and an object.- Parameters:
writePolicy
- - The write policy for the delete operation.object
- The object to delete.- Returns:
- whether record existed on server before deletion
- Throws:
com.aerospike.client.AerospikeException
- an AerospikeException will be thrown in case of an error.
-
find
<T> reactor.core.publisher.Mono<Void> find(@NotNull @NotNull Class<T> clazz, Function<T,Boolean> function)Find a record by specifying a class and a Boolean function.- Parameters:
clazz
- - The type of the record.function
- a Boolean function.- Throws:
com.aerospike.client.AerospikeException
- an AerospikeException will be thrown in case of an error.
-
scan
Scan every record in the set associated with the passed class. Each record will be converted to the appropriate class.- Parameters:
clazz
- - the class used to determine which set to scan and to convert the returned records to.
-
scan
<T> reactor.core.publisher.Flux<T> scan(com.aerospike.client.policy.ScanPolicy policy, @NotNull @NotNull Class<T> clazz)Scan every record in the set associated with the passed class. Each record will be converted to the appropriate class.- Parameters:
policy
- - the scan policy to use. If this is null, the default scan policy of the passed class will be used.clazz
- - the class used to determine which set to scan and to convert the returned records to.
-
scan
Scan every record in the set associated with the passed class, limiting the throughput to the specified recordsPerSecond. Each record will be converted to the appropriate class.- Parameters:
clazz
- - the class used to determine which set to scan and to convert the returned records to.recordsPerSecond
- - the maximum number of records to be processed every second.
-
scan
<T> reactor.core.publisher.Flux<T> scan(com.aerospike.client.policy.ScanPolicy policy, @NotNull @NotNull Class<T> clazz, int recordsPerSecond)Scan every record in the set associated with the passed class. Each record will be converted to the appropriate class.- Parameters:
policy
- - the scan policy to use. If this is null, the default scan policy of the passed class will be used.clazz
- - the class used to determine which set to scan and to convert the returned records to.recordsPerSecond
- - the number of records to process per second. Set to 0 for unlimited, > 0 for a finite rate, < 0 for no change (use the value from the passed policy)
-
query
<T> reactor.core.publisher.Flux<T> query(@NotNull @NotNull Class<T> clazz, com.aerospike.client.query.Filter filter)Perform a secondary index query with the specified query policy. Each record will be converted to the appropriate class then passed to the processor. If the processor returns false the query is aborted whereas if the processor returns true subsequent records (if any) are processed. The query policy used will be the one associated with the passed classtype.- Parameters:
clazz
- - the class used to determine which set to scan and to convert the returned records to.filter
- - the filter used to determine which secondary index to use. If this filter is null, every record in the set associated with the passed classtype will be scanned, effectively turning the query into a scan
-
query
<T> reactor.core.publisher.Flux<T> query(com.aerospike.client.policy.QueryPolicy policy, @NotNull @NotNull Class<T> clazz, com.aerospike.client.query.Filter filter)Perform a secondary index query with the specified query policy. Each record will be converted to the appropriate class then passed to the processor. If the processor returns false the query is aborted whereas if the processor returns true subsequent records (if any) are processed.- Parameters:
policy
- - The query policy to use. If this parameter is not passed, the query policy associated with the passed classtype will be usedclazz
- - the class used to determine which set to scan and to convert the returned records to.filter
- - the filter used to determine which secondary index to use. If this filter is null, every record in the set associated with the passed classtype will be scanned, effectively turning the query into a scan
-
asBackedList
<T> ReactiveVirtualList<T> asBackedList(@NotNull @NotNull Object object, @NotNull @NotNull String binName, Class<T> elementClazz)Create a reactive virtual list against an attribute on a class. The list does all operations to the database and does not affect the underlying class, and is useful for situation when operations are needed to affect the database without having to return all the elements on the list each time. For example, consider a set of transactions associated with a credit card. Common operations might be- Return the last N transactions
- insert a new transaction into the list
- Type Parameters:
T
- the type of the elements in the list.- Parameters:
object
- The object that will use as a base for the virtual list.binName
- The Aerospike bin name.elementClazz
- The class of the elements in the list.- Returns:
- A reactive virtual list.
-
asBackedList
<T> ReactiveVirtualList<T> asBackedList(@NotNull @NotNull Class<?> owningClazz, @NotNull @NotNull Object key, @NotNull @NotNull String binName, Class<T> elementClazz)Create a reactive virtual list against an attribute on a class. The list does all operations to the database and does not affect the underlying class, and is useful for situation when operations are needed to affect the database without having to return all the elements on the list each time. Note that the object being mapped does not need to actually exist in this case. The owning class is used purely for the definitions of how to map the list elements (are they to be mapped in the database as a list or a map, is each element a list or a map, etc), as well as using the namespace / set definition for the location to map into the database. The passed key is used to map the object to the database. For example, consider a set of transactions associated with a credit card. Common operations might be- Return the last N transactions
- insert a new transaction into the list
- Type Parameters:
T
- the type of the elements in the list.- Parameters:
owningClazz
- Used for the definitions of how to map the list elements.key
- The key to map the object to the database.binName
- The Aerospike bin name.elementClazz
- The class of the elements in the list.- Returns:
- A reactive virtual list.
-
getReactorClient
com.aerospike.client.reactor.IAerospikeReactorClient getReactorClient()
-