All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.com.harmony.kotlin.data.repository.SingleDataSourceRepository.kt Maven / Gradle / Ivy

package com.harmony.kotlin.data.repository

import com.harmony.kotlin.data.datasource.DeleteDataSource
import com.harmony.kotlin.data.datasource.GetDataSource
import com.harmony.kotlin.data.datasource.PutDataSource
import com.harmony.kotlin.data.operation.Operation
import com.harmony.kotlin.data.query.Query

class SingleDataSourceRepository(
  private val getDataSource: GetDataSource,
  private val putDataSource: PutDataSource,
  private val deleteDataSource: DeleteDataSource
) : GetRepository, PutRepository, DeleteRepository {

  override suspend fun get(query: Query, operation: Operation): T = getDataSource.get(query)

  @Deprecated("Use get instead")
  override suspend fun getAll(query: Query, operation: Operation): List = getDataSource.getAll(query)

  override suspend fun put(query: Query, value: T?, operation: Operation): T = putDataSource.put(query, value)

  @Deprecated("Use put instead")
  override suspend fun putAll(query: Query, value: List?, operation: Operation): List = putDataSource.putAll(query, value)

  override suspend fun delete(query: Query, operation: Operation) = deleteDataSource.delete(query)
}

class SingleGetDataSourceRepository(private val getDataSource: GetDataSource) : GetRepository {

  override suspend fun get(query: Query, operation: Operation): T = getDataSource.get(query)

  @Deprecated("Use get instead")
  override suspend fun getAll(query: Query, operation: Operation): List = getDataSource.getAll(query)
}

class SinglePutDataSourceRepository(private val putDataSource: PutDataSource) : PutRepository {
  override suspend fun put(query: Query, value: T?, operation: Operation): T = putDataSource.put(query, value)

  @Deprecated("Use put instead")
  override suspend fun putAll(query: Query, value: List?, operation: Operation): List = putDataSource.putAll(query, value)
}

class SingleDeleteDataSourceRepository(private val deleteDataSource: DeleteDataSource) : DeleteRepository {

  override suspend fun delete(query: Query, operation: Operation) = deleteDataSource.delete(query)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy