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()
   }
 }