Mercury-IM/app/src/main/java/org/mercury_im/messenger/persistence/database/dao/RosterEntryDao.java

41 lines
1.3 KiB
Java

package org.mercury_im.messenger.persistence.database.dao;
import androidx.lifecycle.LiveData;
import androidx.room.Dao;
import androidx.room.Delete;
import androidx.room.Insert;
import androidx.room.Query;
import androidx.room.TypeConverters;
import org.mercury_im.messenger.persistence.database.type_converter.EntityBareJidConverter;
import org.mercury_im.messenger.persistence.database.model.RosterEntryModel;
import java.util.List;
import static androidx.room.OnConflictStrategy.REPLACE;
@Dao
@TypeConverters(EntityBareJidConverter.class)
public interface RosterEntryDao {
/**
* Return a {@link LiveData} wrapping a {@link List} of all {@link RosterEntryModel RosterEntries}
* which are currently found in the database.
* @return
*/
@Query("select * from RosterEntryModel")
LiveData<List<RosterEntryModel>> getAllRosterEntries();
@Query("select * from RosterEntryModel where id = :id")
RosterEntryModel getRosterEntryById(String id);
@Query("select * from RosterEntryModel where accountId = :accountId")
LiveData<List<RosterEntryModel>> getRosterEntriesForAccount(String accountId);
@Insert(onConflict = REPLACE)
void addRosterEntry(RosterEntryModel rosterEntry);
@Delete
void deleteRosterEntry(RosterEntryModel rosterEntry);
}