Mercury-IM/persistence-room
Paul Schaub b8b171a4f5
Rename chatPojos peerName field to contactName
2019-09-30 02:34:47 +02:00
..
schemas/org.mercury_im.messenger.persistence.room.AppDatabase Small changes 2019-09-13 01:22:54 +02:00
src Rename chatPojos peerName field to contactName 2019-09-30 02:34:47 +02:00
.gitignore persitence-room: gitignore iml files and schema 2019-09-30 02:22:54 +02:00
README.md Temp 2019-06-10 02:52:08 +02:00
build.gradle persistence-room: bump compileSdkVersion to 29 2019-09-30 02:21:44 +02:00
proguard-rules.pro Hacked Roster loading 2019-05-19 02:00:33 +02:00

README.md

Room Persistence Layer of Mercury

This Android Module contains an implementation of the interfaces of the persistence module. In particular it defines SQL schemes and provides DAOs as well as implementations of Model classes and Repositories that utilize the Room Database Framework.

Packages and Classes

AppDatabase

defines what makes up the database itself. It lists all available entities and provides dao classes.

dao package

Contains data access objects (DAOs) which provide CRUD methods (Create, Read, Update, Delete) for all the models.

Note, that the BaseDao interface already defines methods for creating, updating and deleting entities and is extended by most DAO classes.

model package

Contains classes that represent the data itself in form of models.

repository package

Contains implementations of data repositories. Repositories are single sources of truth and provide a user-friendly separation layer between the application and the DAOs.

Ideally this layer would also provide access to the XMPP domain, but this is still subject to discussion.

type_converter package

Contains Room specific type converter that convert non-basic data types into basic data types which can be handled by the database and vice versa.