// Path: domain/src/main/java/sergio/vasco/androidforexample/domain/repository/ContactsRepository.java
// public interface ContactsRepository {
//   List<Contact> getContacts();
//   void insertContact(Contact contact);
// }
// 
// Path: repository/src/main/java/sergio/vasco/androidforexample/repository/contacts/ContactsRepositoryImp.java
// public class ContactsRepositoryImp implements ContactsRepository{
// 
//   private ContactsDataSource contactsDataBaseDataSource;
// 
//   public ContactsRepositoryImp(ContactsDataSource contactsDataBaseDataSource) {
//     this.contactsDataBaseDataSource = contactsDataBaseDataSource;
//   }
// 
//   @Override public List<Contact> getContacts() {
//     return contactsDataBaseDataSource.getContacts();
//   }
// 
//   @Override public void insertContact(Contact contact) {
//     contactsDataBaseDataSource.insertContact(contact);
//   }
// }
// 
// Path: repository/src/main/java/sergio/vasco/androidforexample/repository/datasources/ContactsDataSource.java
// public interface ContactsDataSource {
//   void insertContact(Contact contact);
//   void deleteContact();
//   void updateContact();
//   List<Contact> getContacts();
// }


import dagger.Module;
import dagger.Provides;
import javax.inject.Singleton;
import sergio.vasco.androidforexample.domain.repository.ContactsRepository;
import sergio.vasco.androidforexample.repository.contacts.ContactsRepositoryImp;
import sergio.vasco.androidforexample.repository.datasources.ContactsDataSource;
package sergio.vasco.realmforandroid.app.di.modules;


/**
 * Name: Sergio Vasco
 * Date: 26/1/16.
 */
@Module
public class RepositoryModule {

  @Singleton @Provides ContactsRepository provideContactsRepository(ContactsDataSource contactsDataSource){
// Path: domain/src/main/java/sergio/vasco/androidforexample/domain/repository/ContactsRepository.java
// public interface ContactsRepository {
//   List<Contact> getContacts();
//   void insertContact(Contact contact);
// }
// 
// Path: repository/src/main/java/sergio/vasco/androidforexample/repository/contacts/ContactsRepositoryImp.java
// public class ContactsRepositoryImp implements ContactsRepository{
// 
//   private ContactsDataSource contactsDataBaseDataSource;
// 
//   public ContactsRepositoryImp(ContactsDataSource contactsDataBaseDataSource) {
//     this.contactsDataBaseDataSource = contactsDataBaseDataSource;
//   }
// 
//   @Override public List<Contact> getContacts() {
//     return contactsDataBaseDataSource.getContacts();
//   }
// 
//   @Override public void insertContact(Contact contact) {
//     contactsDataBaseDataSource.insertContact(contact);
//   }
// }
// 
// Path: repository/src/main/java/sergio/vasco/androidforexample/repository/datasources/ContactsDataSource.java
// public interface ContactsDataSource {
//   void insertContact(Contact contact);
//   void deleteContact();
//   void updateContact();
//   List<Contact> getContacts();
// }


// Path: app/src/main/java/sergio/vasco/realmforandroid/app/di/modules/RepositoryModule.java
import dagger.Module;
import dagger.Provides;
import javax.inject.Singleton;
import sergio.vasco.androidforexample.domain.repository.ContactsRepository;
import sergio.vasco.androidforexample.repository.contacts.ContactsRepositoryImp;
import sergio.vasco.androidforexample.repository.datasources.ContactsDataSource;

package sergio.vasco.realmforandroid.app.di.modules;


/**
 * Name: Sergio Vasco
 * Date: 26/1/16.
 */
@Module
public class RepositoryModule {

  @Singleton @Provides ContactsRepository provideContactsRepository(ContactsDataSource contactsDataSource){
    return new ContactsRepositoryImp(contactsDataSource);