41 lines
1.3 KiB
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);
|
|
}
|