Coverage Summary for Class: NoteDao_Impl (com.stslex93.notes.core.database.note)
Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
NoteDao_Impl |
100%
(17/17)
|
83.3%
(10/12)
|
98.7%
(150/152)
|
NoteDao_Impl$1 |
100%
(3/3)
|
|
100%
(8/8)
|
100%
(35/35)
|
NoteDao_Impl$Companion |
100%
(1/1)
|
|
100%
(1/1)
|
100%
(1/1)
|
NoteDao_Impl$getAll$1 |
100%
(3/3)
|
100%
(2/2)
|
100%
(28/28)
|
100%
(116/116)
|
Total |
100%
(24/24)
|
85.7%
(12/14)
|
98.9%
(187/189)
|
100%
(152/152)
|
package com.stslex93.notes.core.database.note
import androidx.paging.PagingSource
import androidx.room.EntityInsertAdapter
import androidx.room.RoomDatabase
import androidx.room.RoomRawQuery
import androidx.room.coroutines.createFlow
import androidx.room.paging.LimitOffsetPagingSource
import androidx.room.util.appendPlaceholders
import androidx.room.util.getColumnIndexOrThrow
import androidx.room.util.performBlocking
import androidx.room.util.performSuspending
import androidx.sqlite.SQLiteStatement
import com.stslex93.notes.core.database.database.Converters
import javax.`annotation`.processing.Generated
import kotlin.Int
import kotlin.Long
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.MutableList
import kotlin.collections.Set
import kotlin.collections.mutableListOf
import kotlin.reflect.KClass
import kotlin.text.StringBuilder
import kotlinx.coroutines.flow.Flow
@Generated(value = ["androidx.room.RoomProcessor"])
@Suppress(names = ["UNCHECKED_CAST", "DEPRECATION", "REDUNDANT_PROJECTION", "REMOVAL"])
public class NoteDao_Impl(
__db: RoomDatabase,
) : NoteDao {
private val __db: RoomDatabase
private val __insertAdapterOfNoteEntity: EntityInsertAdapter<NoteEntity>
private val __converters: Converters = Converters()
init {
this.__db = __db
this.__insertAdapterOfNoteEntity = object : EntityInsertAdapter<NoteEntity>() {
protected override fun createQuery(): String =
"INSERT OR REPLACE INTO `note_table` (`id`,`title`,`content`,`timestamp`,`labels`) VALUES (nullif(?, 0),?,?,?,?)"
protected override fun bind(statement: SQLiteStatement, entity: NoteEntity) {
statement.bindLong(1, entity.id.toLong())
statement.bindText(2, entity.title)
statement.bindText(3, entity.content)
statement.bindLong(4, entity.timestamp)
val _tmp: String = __converters.jsonListString(entity.labels)
statement.bindText(5, _tmp)
}
}
}
public override suspend fun insert(note: NoteEntity): Unit = performSuspending(__db, false, true)
{ _connection ->
__insertAdapterOfNoteEntity.insert(_connection, note)
}
public override fun getAll(query: String): PagingSource<Int, NoteEntity> {
val _sql: String =
"SELECT * FROM note_table WHERE title LIKE '%' || ? || '%' OR content LIKE '%' || ? || '%' ORDER BY timestamp DESC"
val _rawQuery: RoomRawQuery = RoomRawQuery(_sql) { _stmt ->
var _argIndex: Int = 1
_stmt.bindText(_argIndex, query)
_argIndex = 2
_stmt.bindText(_argIndex, query)
}
return object : LimitOffsetPagingSource<NoteEntity>(_rawQuery, __db, "note_table") {
protected override suspend fun convertRows(limitOffsetQuery: RoomRawQuery, itemCount: Int):
List<NoteEntity> = performSuspending(__db, true, false) { _connection ->
val _stmt: SQLiteStatement = _connection.prepare(limitOffsetQuery.sql)
limitOffsetQuery.getBindingFunction().invoke(_stmt)
try {
val _columnIndexOfId: Int = getColumnIndexOrThrow(_stmt, "id")
val _columnIndexOfTitle: Int = getColumnIndexOrThrow(_stmt, "title")
val _columnIndexOfContent: Int = getColumnIndexOrThrow(_stmt, "content")
val _columnIndexOfTimestamp: Int = getColumnIndexOrThrow(_stmt, "timestamp")
val _columnIndexOfLabels: Int = getColumnIndexOrThrow(_stmt, "labels")
val _result: MutableList<NoteEntity> = mutableListOf()
while (_stmt.step()) {
val _item: NoteEntity
val _tmpId: Int
_tmpId = _stmt.getLong(_columnIndexOfId).toInt()
val _tmpTitle: String
_tmpTitle = _stmt.getText(_columnIndexOfTitle)
val _tmpContent: String
_tmpContent = _stmt.getText(_columnIndexOfContent)
val _tmpTimestamp: Long
_tmpTimestamp = _stmt.getLong(_columnIndexOfTimestamp)
val _tmpLabels: Set<String>
val _tmp: String
_tmp = _stmt.getText(_columnIndexOfLabels)
_tmpLabels = __converters.jsonToListString(_tmp)
_item = NoteEntity(_tmpId,_tmpTitle,_tmpContent,_tmpTimestamp,_tmpLabels)
_result.add(_item)
}
_result
} finally {
_stmt.close()
}
}
}
}
public override fun getAllNotes(): List<NoteEntity> {
val _sql: String = "SELECT * FROM note_table"
return performBlocking(__db, true, false) { _connection ->
val _stmt: SQLiteStatement = _connection.prepare(_sql)
try {
val _columnIndexOfId: Int = getColumnIndexOrThrow(_stmt, "id")
val _columnIndexOfTitle: Int = getColumnIndexOrThrow(_stmt, "title")
val _columnIndexOfContent: Int = getColumnIndexOrThrow(_stmt, "content")
val _columnIndexOfTimestamp: Int = getColumnIndexOrThrow(_stmt, "timestamp")
val _columnIndexOfLabels: Int = getColumnIndexOrThrow(_stmt, "labels")
val _result: MutableList<NoteEntity> = mutableListOf()
while (_stmt.step()) {
val _item: NoteEntity
val _tmpId: Int
_tmpId = _stmt.getLong(_columnIndexOfId).toInt()
val _tmpTitle: String
_tmpTitle = _stmt.getText(_columnIndexOfTitle)
val _tmpContent: String
_tmpContent = _stmt.getText(_columnIndexOfContent)
val _tmpTimestamp: Long
_tmpTimestamp = _stmt.getLong(_columnIndexOfTimestamp)
val _tmpLabels: Set<String>
val _tmp: String
_tmp = _stmt.getText(_columnIndexOfLabels)
_tmpLabels = __converters.jsonToListString(_tmp)
_item = NoteEntity(_tmpId,_tmpTitle,_tmpContent,_tmpTimestamp,_tmpLabels)
_result.add(_item)
}
_result
} finally {
_stmt.close()
}
}
}
public override fun getNoteFlow(id: Int): Flow<NoteEntity> {
val _sql: String = "SELECT * FROM note_table WHERE id=?"
return createFlow(__db, false, arrayOf("note_table")) { _connection ->
val _stmt: SQLiteStatement = _connection.prepare(_sql)
try {
var _argIndex: Int = 1
_stmt.bindLong(_argIndex, id.toLong())
val _columnIndexOfId: Int = getColumnIndexOrThrow(_stmt, "id")
val _columnIndexOfTitle: Int = getColumnIndexOrThrow(_stmt, "title")
val _columnIndexOfContent: Int = getColumnIndexOrThrow(_stmt, "content")
val _columnIndexOfTimestamp: Int = getColumnIndexOrThrow(_stmt, "timestamp")
val _columnIndexOfLabels: Int = getColumnIndexOrThrow(_stmt, "labels")
val _result: NoteEntity
if (_stmt.step()) {
val _tmpId: Int
_tmpId = _stmt.getLong(_columnIndexOfId).toInt()
val _tmpTitle: String
_tmpTitle = _stmt.getText(_columnIndexOfTitle)
val _tmpContent: String
_tmpContent = _stmt.getText(_columnIndexOfContent)
val _tmpTimestamp: Long
_tmpTimestamp = _stmt.getLong(_columnIndexOfTimestamp)
val _tmpLabels: Set<String>
val _tmp: String
_tmp = _stmt.getText(_columnIndexOfLabels)
_tmpLabels = __converters.jsonToListString(_tmp)
_result = NoteEntity(_tmpId,_tmpTitle,_tmpContent,_tmpTimestamp,_tmpLabels)
} else {
error("The query result was empty, but expected a single row to return a NON-NULL object of type <com.stslex93.notes.core.database.note.NoteEntity>.")
}
_result
} finally {
_stmt.close()
}
}
}
public override suspend fun getNote(id: Int): NoteEntity {
val _sql: String = "SELECT * FROM note_table WHERE id=?"
return performSuspending(__db, true, false) { _connection ->
val _stmt: SQLiteStatement = _connection.prepare(_sql)
try {
var _argIndex: Int = 1
_stmt.bindLong(_argIndex, id.toLong())
val _columnIndexOfId: Int = getColumnIndexOrThrow(_stmt, "id")
val _columnIndexOfTitle: Int = getColumnIndexOrThrow(_stmt, "title")
val _columnIndexOfContent: Int = getColumnIndexOrThrow(_stmt, "content")
val _columnIndexOfTimestamp: Int = getColumnIndexOrThrow(_stmt, "timestamp")
val _columnIndexOfLabels: Int = getColumnIndexOrThrow(_stmt, "labels")
val _result: NoteEntity
if (_stmt.step()) {
val _tmpId: Int
_tmpId = _stmt.getLong(_columnIndexOfId).toInt()
val _tmpTitle: String
_tmpTitle = _stmt.getText(_columnIndexOfTitle)
val _tmpContent: String
_tmpContent = _stmt.getText(_columnIndexOfContent)
val _tmpTimestamp: Long
_tmpTimestamp = _stmt.getLong(_columnIndexOfTimestamp)
val _tmpLabels: Set<String>
val _tmp: String
_tmp = _stmt.getText(_columnIndexOfLabels)
_tmpLabels = __converters.jsonToListString(_tmp)
_result = NoteEntity(_tmpId,_tmpTitle,_tmpContent,_tmpTimestamp,_tmpLabels)
} else {
error("The query result was empty, but expected a single row to return a NON-NULL object of type <com.stslex93.notes.core.database.note.NoteEntity>.")
}
_result
} finally {
_stmt.close()
}
}
}
public override fun getNotesById(ids: List<String>): Flow<List<NoteEntity>> {
val _stringBuilder: StringBuilder = StringBuilder()
_stringBuilder.append("SELECT * FROM note_table WHERE id IN (")
val _inputSize: Int = ids.size
appendPlaceholders(_stringBuilder, _inputSize)
_stringBuilder.append(")")
val _sql: String = _stringBuilder.toString()
return createFlow(__db, false, arrayOf("note_table")) { _connection ->
val _stmt: SQLiteStatement = _connection.prepare(_sql)
try {
var _argIndex: Int = 1
for (_item: String in ids) {
_stmt.bindText(_argIndex, _item)
_argIndex++
}
val _columnIndexOfId: Int = getColumnIndexOrThrow(_stmt, "id")
val _columnIndexOfTitle: Int = getColumnIndexOrThrow(_stmt, "title")
val _columnIndexOfContent: Int = getColumnIndexOrThrow(_stmt, "content")
val _columnIndexOfTimestamp: Int = getColumnIndexOrThrow(_stmt, "timestamp")
val _columnIndexOfLabels: Int = getColumnIndexOrThrow(_stmt, "labels")
val _result: MutableList<NoteEntity> = mutableListOf()
while (_stmt.step()) {
val _item_1: NoteEntity
val _tmpId: Int
_tmpId = _stmt.getLong(_columnIndexOfId).toInt()
val _tmpTitle: String
_tmpTitle = _stmt.getText(_columnIndexOfTitle)
val _tmpContent: String
_tmpContent = _stmt.getText(_columnIndexOfContent)
val _tmpTimestamp: Long
_tmpTimestamp = _stmt.getLong(_columnIndexOfTimestamp)
val _tmpLabels: Set<String>
val _tmp: String
_tmp = _stmt.getText(_columnIndexOfLabels)
_tmpLabels = __converters.jsonToListString(_tmp)
_item_1 = NoteEntity(_tmpId,_tmpTitle,_tmpContent,_tmpTimestamp,_tmpLabels)
_result.add(_item_1)
}
_result
} finally {
_stmt.close()
}
}
}
public override suspend fun deleteNotesById(ids: List<Int>) {
val _stringBuilder: StringBuilder = StringBuilder()
_stringBuilder.append("DELETE FROM note_table WHERE id IN (")
val _inputSize: Int = ids.size
appendPlaceholders(_stringBuilder, _inputSize)
_stringBuilder.append(") ")
val _sql: String = _stringBuilder.toString()
return performSuspending(__db, false, true) { _connection ->
val _stmt: SQLiteStatement = _connection.prepare(_sql)
try {
var _argIndex: Int = 1
for (_item: Int in ids) {
_stmt.bindLong(_argIndex, _item.toLong())
_argIndex++
}
_stmt.step()
} finally {
_stmt.close()
}
}
}
public override suspend fun deleteAll() {
val _sql: String = "DELETE FROM note_table"
return performSuspending(__db, false, true) { _connection ->
val _stmt: SQLiteStatement = _connection.prepare(_sql)
try {
_stmt.step()
} finally {
_stmt.close()
}
}
}
public companion object {
public fun getRequiredConverters(): List<KClass<*>> = emptyList()
}
}