// Path: domain/src/main/java/sergio/vasco/androidforexample/domain/abstractions/Bus.java
// public interface Bus {
//   void post(Object object);
//   void postInmediate(Object object);
//   void register(Object object);
//   void unregister(Object object);
// }
// 
// Path: domain/src/main/java/sergio/vasco/androidforexample/domain/interactors/main/GetContactsFromDataBaseInteractor.java
// public class GetContactsFromDataBaseInteractor implements Interactor {
// 
//   private Bus bus;
//   private GetContactsEvent event;
//   private ContactsRepository contactsRepository;
// 
//   public GetContactsFromDataBaseInteractor(Bus bus, ContactsRepository contactsRepository) {
//     this.bus = bus;
//     this.contactsRepository = contactsRepository;
//     this.event = new GetContactsEvent();
//   }
// 
//   @Override public void execute() throws Throwable {
//     List<Contact> contactList = contactsRepository.getContacts();
//     event.setContactList(contactList);
//     bus.post(event);
//   }
// }
// 
// Path: domain/src/main/java/sergio/vasco/androidforexample/domain/interactors/main/InsertContactsIntoDataBaseInteractor.java
// public class InsertContactsIntoDataBaseInteractor implements Interactor {
// 
//   private Contact contact;
//   private ContactsRepository contactsRepository;
//   private Bus bus;
// 
//   public InsertContactsIntoDataBaseInteractor(Bus bus,ContactsRepository contactsRepository) {
//     this.bus = bus;
//     this.contactsRepository = contactsRepository;
//   }
// 
//   @Override public void execute() throws Throwable {
//     contactsRepository.insertContact(contact);
//   }
// 
//   public void setContact(Contact contact) {
//     this.contact = contact;
//   }
// }
// 
// Path: domain/src/main/java/sergio/vasco/androidforexample/domain/repository/ContactsRepository.java
// public interface ContactsRepository {
//   List<Contact> getContacts();
//   void insertContact(Contact contact);
// }


import dagger.Module;
import dagger.Provides;
import javax.inject.Singleton;
import sergio.vasco.androidforexample.domain.abstractions.Bus;
import sergio.vasco.androidforexample.domain.interactors.main.GetContactsFromDataBaseInteractor;
import sergio.vasco.androidforexample.domain.interactors.main.InsertContactsIntoDataBaseInteractor;
import sergio.vasco.androidforexample.domain.repository.ContactsRepository;
package sergio.vasco.realmforandroid.app.di.modules;


/**
 * Name: Sergio Vasco
 * Date: 15/1/16.
 */
@Module
public class InteractorModule {

// Path: domain/src/main/java/sergio/vasco/androidforexample/domain/abstractions/Bus.java
// public interface Bus {
//   void post(Object object);
//   void postInmediate(Object object);
//   void register(Object object);
//   void unregister(Object object);
// }
// 
// Path: domain/src/main/java/sergio/vasco/androidforexample/domain/interactors/main/GetContactsFromDataBaseInteractor.java
// public class GetContactsFromDataBaseInteractor implements Interactor {
// 
//   private Bus bus;
//   private GetContactsEvent event;
//   private ContactsRepository contactsRepository;
// 
//   public GetContactsFromDataBaseInteractor(Bus bus, ContactsRepository contactsRepository) {
//     this.bus = bus;
//     this.contactsRepository = contactsRepository;
//     this.event = new GetContactsEvent();
//   }
// 
//   @Override public void execute() throws Throwable {
//     List<Contact> contactList = contactsRepository.getContacts();
//     event.setContactList(contactList);
//     bus.post(event);
//   }
// }
// 
// Path: domain/src/main/java/sergio/vasco/androidforexample/domain/interactors/main/InsertContactsIntoDataBaseInteractor.java
// public class InsertContactsIntoDataBaseInteractor implements Interactor {
// 
//   private Contact contact;
//   private ContactsRepository contactsRepository;
//   private Bus bus;
// 
//   public InsertContactsIntoDataBaseInteractor(Bus bus,ContactsRepository contactsRepository) {
//     this.bus = bus;
//     this.contactsRepository = contactsRepository;
//   }
// 
//   @Override public void execute() throws Throwable {
//     contactsRepository.insertContact(contact);
//   }
// 
//   public void setContact(Contact contact) {
//     this.contact = contact;
//   }
// }
// 
// Path: domain/src/main/java/sergio/vasco/androidforexample/domain/repository/ContactsRepository.java
// public interface ContactsRepository {
//   List<Contact> getContacts();
//   void insertContact(Contact contact);
// }


// Path: app/src/main/java/sergio/vasco/realmforandroid/app/di/modules/InteractorModule.java
import dagger.Module;
import dagger.Provides;
import javax.inject.Singleton;
import sergio.vasco.androidforexample.domain.abstractions.Bus;
import sergio.vasco.androidforexample.domain.interactors.main.GetContactsFromDataBaseInteractor;
import sergio.vasco.androidforexample.domain.interactors.main.InsertContactsIntoDataBaseInteractor;
import sergio.vasco.androidforexample.domain.repository.ContactsRepository;

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


/**
 * Name: Sergio Vasco
 * Date: 15/1/16.
 */
@Module
public class InteractorModule {

  @Singleton @Provides GetContactsFromDataBaseInteractor provideGetContactsFromDataBaseInteractor(Bus bus, ContactsRepository contactsRepository){