package com.example.cuida.data.dao; import android.database.Cursor; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.lifecycle.LiveData; import androidx.room.EntityDeletionOrUpdateAdapter; import androidx.room.EntityInsertionAdapter; import androidx.room.RoomDatabase; import androidx.room.RoomSQLiteQuery; import androidx.room.util.CursorUtil; import androidx.room.util.DBUtil; import androidx.sqlite.db.SupportSQLiteStatement; import com.example.cuida.data.model.Medication; import java.lang.Class; import java.lang.Exception; import java.lang.Override; import java.lang.String; import java.lang.SuppressWarnings; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.concurrent.Callable; @SuppressWarnings({"unchecked", "deprecation"}) public final class MedicationDao_Impl implements MedicationDao { private final RoomDatabase __db; private final EntityInsertionAdapter __insertionAdapterOfMedication; private final EntityDeletionOrUpdateAdapter __updateAdapterOfMedication; public MedicationDao_Impl(@NonNull final RoomDatabase __db) { this.__db = __db; this.__insertionAdapterOfMedication = new EntityInsertionAdapter(__db) { @Override @NonNull protected String createQuery() { return "INSERT OR ABORT INTO `medications` (`id`,`name`,`time`,`dosage`,`notes`,`isTaken`) VALUES (nullif(?, 0),?,?,?,?,?)"; } @Override protected void bind(@NonNull final SupportSQLiteStatement statement, final Medication entity) { statement.bindLong(1, entity.id); if (entity.name == null) { statement.bindNull(2); } else { statement.bindString(2, entity.name); } if (entity.time == null) { statement.bindNull(3); } else { statement.bindString(3, entity.time); } if (entity.dosage == null) { statement.bindNull(4); } else { statement.bindString(4, entity.dosage); } if (entity.notes == null) { statement.bindNull(5); } else { statement.bindString(5, entity.notes); } final int _tmp = entity.isTaken ? 1 : 0; statement.bindLong(6, _tmp); } }; this.__updateAdapterOfMedication = new EntityDeletionOrUpdateAdapter(__db) { @Override @NonNull protected String createQuery() { return "UPDATE OR ABORT `medications` SET `id` = ?,`name` = ?,`time` = ?,`dosage` = ?,`notes` = ?,`isTaken` = ? WHERE `id` = ?"; } @Override protected void bind(@NonNull final SupportSQLiteStatement statement, final Medication entity) { statement.bindLong(1, entity.id); if (entity.name == null) { statement.bindNull(2); } else { statement.bindString(2, entity.name); } if (entity.time == null) { statement.bindNull(3); } else { statement.bindString(3, entity.time); } if (entity.dosage == null) { statement.bindNull(4); } else { statement.bindString(4, entity.dosage); } if (entity.notes == null) { statement.bindNull(5); } else { statement.bindString(5, entity.notes); } final int _tmp = entity.isTaken ? 1 : 0; statement.bindLong(6, _tmp); statement.bindLong(7, entity.id); } }; } @Override public void insert(final Medication medication) { __db.assertNotSuspendingTransaction(); __db.beginTransaction(); try { __insertionAdapterOfMedication.insert(medication); __db.setTransactionSuccessful(); } finally { __db.endTransaction(); } } @Override public void update(final Medication medication) { __db.assertNotSuspendingTransaction(); __db.beginTransaction(); try { __updateAdapterOfMedication.handle(medication); __db.setTransactionSuccessful(); } finally { __db.endTransaction(); } } @Override public LiveData> getAllMedications() { final String _sql = "SELECT * FROM medications ORDER BY time ASC"; final RoomSQLiteQuery _statement = RoomSQLiteQuery.acquire(_sql, 0); return __db.getInvalidationTracker().createLiveData(new String[] {"medications"}, false, new Callable>() { @Override @Nullable public List call() throws Exception { final Cursor _cursor = DBUtil.query(__db, _statement, false, null); try { final int _cursorIndexOfId = CursorUtil.getColumnIndexOrThrow(_cursor, "id"); final int _cursorIndexOfName = CursorUtil.getColumnIndexOrThrow(_cursor, "name"); final int _cursorIndexOfTime = CursorUtil.getColumnIndexOrThrow(_cursor, "time"); final int _cursorIndexOfDosage = CursorUtil.getColumnIndexOrThrow(_cursor, "dosage"); final int _cursorIndexOfNotes = CursorUtil.getColumnIndexOrThrow(_cursor, "notes"); final int _cursorIndexOfIsTaken = CursorUtil.getColumnIndexOrThrow(_cursor, "isTaken"); final List _result = new ArrayList(_cursor.getCount()); while (_cursor.moveToNext()) { final Medication _item; final String _tmpName; if (_cursor.isNull(_cursorIndexOfName)) { _tmpName = null; } else { _tmpName = _cursor.getString(_cursorIndexOfName); } final String _tmpTime; if (_cursor.isNull(_cursorIndexOfTime)) { _tmpTime = null; } else { _tmpTime = _cursor.getString(_cursorIndexOfTime); } final String _tmpDosage; if (_cursor.isNull(_cursorIndexOfDosage)) { _tmpDosage = null; } else { _tmpDosage = _cursor.getString(_cursorIndexOfDosage); } final String _tmpNotes; if (_cursor.isNull(_cursorIndexOfNotes)) { _tmpNotes = null; } else { _tmpNotes = _cursor.getString(_cursorIndexOfNotes); } _item = new Medication(_tmpName,_tmpTime,_tmpDosage,_tmpNotes); _item.id = _cursor.getInt(_cursorIndexOfId); final int _tmp; _tmp = _cursor.getInt(_cursorIndexOfIsTaken); _item.isTaken = _tmp != 0; _result.add(_item); } return _result; } finally { _cursor.close(); } } @Override protected void finalize() { _statement.release(); } }); } @Override public LiveData getNextMedication() { final String _sql = "SELECT * FROM medications ORDER BY time ASC LIMIT 1"; final RoomSQLiteQuery _statement = RoomSQLiteQuery.acquire(_sql, 0); return __db.getInvalidationTracker().createLiveData(new String[] {"medications"}, false, new Callable() { @Override @Nullable public Medication call() throws Exception { final Cursor _cursor = DBUtil.query(__db, _statement, false, null); try { final int _cursorIndexOfId = CursorUtil.getColumnIndexOrThrow(_cursor, "id"); final int _cursorIndexOfName = CursorUtil.getColumnIndexOrThrow(_cursor, "name"); final int _cursorIndexOfTime = CursorUtil.getColumnIndexOrThrow(_cursor, "time"); final int _cursorIndexOfDosage = CursorUtil.getColumnIndexOrThrow(_cursor, "dosage"); final int _cursorIndexOfNotes = CursorUtil.getColumnIndexOrThrow(_cursor, "notes"); final int _cursorIndexOfIsTaken = CursorUtil.getColumnIndexOrThrow(_cursor, "isTaken"); final Medication _result; if (_cursor.moveToFirst()) { final String _tmpName; if (_cursor.isNull(_cursorIndexOfName)) { _tmpName = null; } else { _tmpName = _cursor.getString(_cursorIndexOfName); } final String _tmpTime; if (_cursor.isNull(_cursorIndexOfTime)) { _tmpTime = null; } else { _tmpTime = _cursor.getString(_cursorIndexOfTime); } final String _tmpDosage; if (_cursor.isNull(_cursorIndexOfDosage)) { _tmpDosage = null; } else { _tmpDosage = _cursor.getString(_cursorIndexOfDosage); } final String _tmpNotes; if (_cursor.isNull(_cursorIndexOfNotes)) { _tmpNotes = null; } else { _tmpNotes = _cursor.getString(_cursorIndexOfNotes); } _result = new Medication(_tmpName,_tmpTime,_tmpDosage,_tmpNotes); _result.id = _cursor.getInt(_cursorIndexOfId); final int _tmp; _tmp = _cursor.getInt(_cursorIndexOfIsTaken); _result.isTaken = _tmp != 0; } else { _result = null; } return _result; } finally { _cursor.close(); } } @Override protected void finalize() { _statement.release(); } }); } @NonNull public static List> getRequiredConverters() { return Collections.emptyList(); } }