# ReadCRUDFromKeyValueRepo

open class ReadCRUDFromKeyValueRepo < RegisteredType , IdType >(original: ReadKeyValueRepo < IdType , RegisteredType >) : ReadCRUDRepo < RegisteredType , IdType > (source)

Adapter that exposes a ReadKeyValueRepo as a ReadCRUDRepo. Maps CRUD read operations to the underlying key-value repository operations.

#### Parameters

original

The underlying ReadKeyValueRepo to delegate operations to

#### Type Parameters

RegisteredType

The type of objects stored in the repository

IdType

The type of identifiers (keys) used to reference stored objects

## Constructors

ReadCRUDFromKeyValueRepo
Link copied to clipboard
constructor(original: ReadKeyValueRepo < IdType , RegisteredType >)

## Functions

asReadKeyValueRepo
Link copied to clipboard
fun < K , V > ReadCRUDRepo < K , V >. asReadKeyValueRepo (): ReadKeyValueFromCRUDRepo < V , K >

Wraps this ReadCRUDRepo as a ReadKeyValueFromCRUDRepo, exposing CRUD IDs as keys and CRUD objects as values in a ReadKeyValueRepo.

cached
Link copied to clipboard
fun < ObjectType , IdType > ReadCRUDRepo < ObjectType , IdType >. cached (kvCache: KVCache < IdType , ObjectType >, locker: SmartRWLocker = SmartRWLocker(), idGetter: ( ObjectType ) -> IdType ): ReadCRUDCacheRepo < ObjectType , IdType >
fun < ObjectType , IdType > ReadCRUDRepo < ObjectType , IdType >. cached (kvCache: KeyValueRepo < IdType , ObjectType >, locker: SmartRWLocker = SmartRWLocker(), idGetter: ( ObjectType ) -> IdType ): FullReadCRUDCacheRepo < ObjectType , IdType >
contains
Link copied to clipboard
open suspend override fun contains (id: IdType ): Boolean

Returns true if an object with the given id exists in the repository.

count
Link copied to clipboard
open suspend override fun count (): Long

Returns the total count of objects stored in the repository.

diff
Link copied to clipboard
suspend fun < Id , Registered > ReadCRUDRepo < Registered , Id >. diff (other: Map < Id , Registered >): MapDiff < Id , Registered >

Computes the difference between this ReadCRUDRepo and a map of items. Retrieves all items from the repository and compares them with the provided map.

directlyCached
Link copied to clipboard
fun < ObjectType , IdType > ReadCRUDRepo < ObjectType , IdType >. directlyCached (kvCache: KeyValueRepo < IdType , ObjectType >, locker: SmartRWLocker = SmartRWLocker(), idGetter: ( ObjectType ) -> IdType ): DirectFullReadCRUDCacheRepo < ObjectType , IdType >
getAll
Link copied to clipboard
open suspend override fun getAll (): Map < IdType , RegisteredType >

Returns all objects in the repository as a map of ID to object. Default implementation iterates all pages using getIdsByPagination and getById.

getById
Link copied to clipboard
open suspend override fun getById (id: IdType ): RegisteredType ?

Returns the object associated with the given id, or null if not found.

getByPagination
Link copied to clipboard
open suspend override fun getByPagination (pagination: Pagination ): PaginationResult < RegisteredType >

Returns a paginated list of all objects in the repository.

getIdsByPagination
Link copied to clipboard
open suspend override fun getIdsByPagination (pagination: Pagination ): PaginationResult < IdType >

Returns a paginated list of all IDs in the repository.

maxPagePagination
Link copied to clipboard
inline suspend fun ReadCRUDRepo <*, *>. maxPagePagination (): SimplePagination

Creates a pagination starting from the first page with size equal to the total count of items in this ReadCRUDRepo. This effectively creates a single page containing all items.

withMapper
Link copied to clipboard
inline fun < FromKey , FromValue , ToKey , ToValue > ReadCRUDRepo < ToValue , ToKey >. withMapper (mapper: MapperRepo < FromKey , FromValue , ToKey , ToValue >): ReadCRUDRepo < FromValue , FromKey >

Wraps this ReadCRUDRepo with a mapper to expose different key and value types.

inline fun < FromKey , FromValue , ToKey , ToValue > ReadCRUDRepo < ToValue , ToKey >. withMapper (noinline keyFromToTo: suspend FromKey .() -> ToKey = { this as ToKey }, noinline valueFromToTo: suspend FromValue .() -> ToValue = { this as ToValue }, noinline keyToToFrom: suspend ToKey .() -> FromKey = { this as FromKey }, noinline valueToToFrom: suspend ToValue .() -> FromValue = { this as FromValue }): ReadCRUDRepo < FromValue , FromKey >

Wraps this ReadCRUDRepo with custom conversion functions for keys and values.