blob: 3419b5b2875057149f0b1b09de1a91567a612f1b [file] [log] [blame]
/*
* Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package androidx.room.integration.kotlintestapp.dao
import androidx.room.Delete
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.RawQuery
import androidx.room.Update
import androidx.sqlite.db.SupportSQLiteQuery
interface BaseDao<T> {
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insert(t: T)
@Insert
fun insertAll(t: List<T>)
@Insert
fun insertAllSet(t: Set<T>): List<Long>
@Insert
fun insertAllCollection(t: Collection<T>): Array<Long>
@Insert
fun insertAllArg(vararg t: T)
@Update
fun update(t: T)
@Delete
fun delete(t: T)
@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun suspendInsert(t: T)
@Update
suspend fun suspendUpdate(t: T)
@Delete
suspend fun suspendDelete(t: T)
@RawQuery
suspend fun rawQuery(query: SupportSQLiteQuery): List<T>
}