Mercury-IM/persistence-room/src/main/java/org/mercury_im/messenger/persistence/room/AppDatabase.java
2019-08-03 19:13:07 +02:00

63 lines
2.2 KiB
Java

package org.mercury_im.messenger.persistence.room;
import android.content.Context;
import androidx.annotation.NonNull;
import androidx.room.Database;
import androidx.room.Room;
import androidx.room.RoomDatabase;
import androidx.room.migration.Migration;
import androidx.sqlite.db.SupportSQLiteDatabase;
import org.mercury_im.messenger.persistence.room.dao.AccountDao;
import org.mercury_im.messenger.persistence.room.dao.AvatarDao;
import org.mercury_im.messenger.persistence.room.dao.ChatDao;
import org.mercury_im.messenger.persistence.room.dao.ContactDao;
import org.mercury_im.messenger.persistence.room.dao.ContactAttributesDao;
import org.mercury_im.messenger.persistence.room.dao.EntityDao;
import org.mercury_im.messenger.persistence.room.dao.MessageDao;
import org.mercury_im.messenger.persistence.room.model.RoomAccountModel;
import org.mercury_im.messenger.persistence.room.model.RoomAvatarModel;
import org.mercury_im.messenger.persistence.room.model.RoomChatModel;
import org.mercury_im.messenger.persistence.room.model.RoomContactAttributes;
import org.mercury_im.messenger.persistence.room.model.RoomEntityModel;
import org.mercury_im.messenger.persistence.room.model.RoomMessageModel;
@Database(version = 1,
entities = {
RoomContactAttributes.class,
RoomAccountModel.class,
RoomChatModel.class,
RoomMessageModel.class,
RoomEntityModel.class,
RoomAvatarModel.class
})
public abstract class AppDatabase extends RoomDatabase {
private static final String DB_NAME = "mercury_db";
private static AppDatabase INSTANCE;
public static AppDatabase getDatabase(final Context context) {
if (INSTANCE == null) {
INSTANCE = Room.databaseBuilder(context.getApplicationContext(),
AppDatabase.class, DB_NAME)
.build();
}
return INSTANCE;
}
public abstract ContactAttributesDao rosterEntryDao();
public abstract ChatDao chatDao();
public abstract MessageDao messageDao();
public abstract AccountDao accountDao();
public abstract EntityDao entityDao();
public abstract ContactDao contactDao();
public abstract AvatarDao avatarDao();
}