Mercury-IM/persistence-room/src/main/java/org/mercury_im/messenger/persistence/room/RoomRepositoryModule.java

68 lines
2.6 KiB
Java

package org.mercury_im.messenger.persistence.room;
import org.mercury_im.messenger.persistence.repository.AccountRepository;
import org.mercury_im.messenger.persistence.repository.AvatarRepository;
import org.mercury_im.messenger.persistence.repository.ChatRepository;
import org.mercury_im.messenger.persistence.repository.EntityCapsRepository;
import org.mercury_im.messenger.persistence.repository.MessageRepository;
import org.mercury_im.messenger.persistence.repository.RosterRepository;
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.EntityCapsDao;
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.dao.RosterInformationDao;
import org.mercury_im.messenger.persistence.room.repository.IAccountRepository;
import org.mercury_im.messenger.persistence.room.repository.IAvatarRepository;
import org.mercury_im.messenger.persistence.room.repository.IChatRepository;
import org.mercury_im.messenger.persistence.room.repository.IEntityCapsRepository;
import org.mercury_im.messenger.persistence.room.repository.IMessageRepository;
import org.mercury_im.messenger.persistence.room.repository.IRosterRepository;
import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
@Module
public class RoomRepositoryModule {
@Singleton
@Provides
AccountRepository provideAccountRepository(AccountDao dao) {
return new IAccountRepository(dao);
}
@Singleton
@Provides
ChatRepository provideChatRepository(ChatDao chatDao, RosterRepository rosterRepository) {
return new IChatRepository(chatDao, rosterRepository);
}
@Singleton
@Provides
MessageRepository provideMessageRepository(MessageDao dao) {
return new IMessageRepository(dao);
}
@Singleton
@Provides
RosterRepository provideContactRepository(EntityDao entityDao, ContactDao contactDao, RosterInformationDao rosterInformationDao) {
return new IRosterRepository(entityDao, contactDao, rosterInformationDao);
}
@Singleton
@Provides
AvatarRepository provideAvatarRepository(AvatarDao avatarDao) {
return new IAvatarRepository(avatarDao);
}
@Singleton
@Provides
EntityCapsRepository providerEntityCapsRepository(EntityCapsDao entityCapsDao) {
return new IEntityCapsRepository(entityCapsDao);
}
}