// Path: domain/src/main/java/sergio/vasco/androidforexample/domain/model/Contact.java
// public class Contact {
// 
//   private int idContact;
//   private String firstName;
//   private String lastName;
//   private int phone;
//   private String email;
// 
//   public int getIdContact() {
//     return idContact;
//   }
// 
//   public void setIdContact(int idContact) {
//     this.idContact = idContact;
//   }
// 
//   public String getFirstName() {
//     return firstName;
//   }
// 
//   public void setFirstName(String firstName) {
//     this.firstName = firstName;
//   }
// 
//   public String getLastName() {
//     return lastName;
//   }
// 
//   public void setLastName(String lastName) {
//     this.lastName = lastName;
//   }
// 
//   public int getPhone() {
//     return phone;
//   }
// 
//   public void setPhone(int phone) {
//     this.phone = phone;
//   }
// 
//   public String getEmail() {
//     return email;
//   }
// 
//   public void setEmail(String email) {
//     this.email = email;
//   }
// }
// 
// 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: data/src/main/java/sergio/vasco/realmforandroid/data/repository/database/DataBaseService.java
// public interface DataBaseService {
//   void getInstance();
//   void insert(RealmObject table);
//   <E extends RealmObject> RealmResults<E> query (Class<E> genericClass);
//   <E extends RealmObject> int getNextId(String idName, Class<E> genericClass);
//   void beginTransaction();
//   void commitTransaction();
// }
// 
// Path: data/src/main/java/sergio/vasco/realmforandroid/data/repository/database/model/DataBaseContact.java
// public class DataBaseContact extends RealmObject {
// 
//   @PrimaryKey
//   private int idContact;
//   private String firstName;
//   private String lastName;
//   private int phone;
//   private String email;
// 
//   public int getIdContact() {
//     return idContact;
//   }
// 
//   public void setIdContact(int idContact) {
//     this.idContact = idContact;
//   }
// 
//   public String getFirstName() {
//     return firstName;
//   }
// 
//   public void setFirstName(String firstName) {
//     this.firstName = firstName;
//   }
// 
//   public String getLastName() {
//     return lastName;
//   }
// 
//   public void setLastName(String lastName) {
//     this.lastName = lastName;
//   }
// 
//   public int getPhone() {
//     return phone;
//   }
// 
//   public void setPhone(int phone) {
//     this.phone = phone;
//   }
// 
//   public String getEmail() {
//     return email;
//   }
// 
//   public void setEmail(String email) {
//     this.email = email;
//   }
// }
// 
// Path: data/src/main/java/sergio/vasco/realmforandroid/data/repository/database/model/mappers/DataContactMapper.java
// public class DataContactMapper {
// 
//   public Contact dataBaseContactToContact(DataBaseContact dataBaseContact){
//     Contact contact = new Contact();
//     contact.setIdContact(dataBaseContact.getIdContact());
//     contact.setFirstName(dataBaseContact.getFirstName());
//     contact.setLastName(dataBaseContact.getLastName());
//     contact.setEmail(dataBaseContact.getEmail());
//     contact.setPhone(dataBaseContact.getPhone());
//     return contact;
//   }
// 
//   public DataBaseContact contactToDataBaseContact(Contact contact){
//     DataBaseContact dataBaseContact = new DataBaseContact();
//     dataBaseContact.setIdContact(contact.getIdContact());
//     dataBaseContact.setFirstName(contact.getFirstName());
//     dataBaseContact.setLastName(contact.getLastName());
//     dataBaseContact.setEmail(contact.getEmail());
//     dataBaseContact.setPhone(contact.getPhone());
//     return dataBaseContact;
//   }
// }


import io.realm.RealmResults;
import java.util.ArrayList;
import java.util.List;
import sergio.vasco.androidforexample.domain.model.Contact;
import sergio.vasco.androidforexample.repository.datasources.ContactsDataSource;
import sergio.vasco.realmforandroid.data.repository.database.DataBaseService;
import sergio.vasco.realmforandroid.data.repository.database.model.DataBaseContact;
import sergio.vasco.realmforandroid.data.repository.database.model.mappers.DataContactMapper;
package sergio.vasco.realmforandroid.data.repository.database.datasources;


/**
 * Name: Sergio Vasco
 * Date: 26/1/16.
 */
public class ContactsDataSourceImp implements ContactsDataSource {

  private DataBaseService dataBaseService;
  private DataContactMapper dataContactMapper;

  public ContactsDataSourceImp(DataBaseService dataBaseService) {
    this.dataBaseService = dataBaseService;
    this.dataContactMapper = new DataContactMapper();
  }

// Path: domain/src/main/java/sergio/vasco/androidforexample/domain/model/Contact.java
// public class Contact {
// 
//   private int idContact;
//   private String firstName;
//   private String lastName;
//   private int phone;
//   private String email;
// 
//   public int getIdContact() {
//     return idContact;
//   }
// 
//   public void setIdContact(int idContact) {
//     this.idContact = idContact;
//   }
// 
//   public String getFirstName() {
//     return firstName;
//   }
// 
//   public void setFirstName(String firstName) {
//     this.firstName = firstName;
//   }
// 
//   public String getLastName() {
//     return lastName;
//   }
// 
//   public void setLastName(String lastName) {
//     this.lastName = lastName;
//   }
// 
//   public int getPhone() {
//     return phone;
//   }
// 
//   public void setPhone(int phone) {
//     this.phone = phone;
//   }
// 
//   public String getEmail() {
//     return email;
//   }
// 
//   public void setEmail(String email) {
//     this.email = email;
//   }
// }
// 
// 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: data/src/main/java/sergio/vasco/realmforandroid/data/repository/database/DataBaseService.java
// public interface DataBaseService {
//   void getInstance();
//   void insert(RealmObject table);
//   <E extends RealmObject> RealmResults<E> query (Class<E> genericClass);
//   <E extends RealmObject> int getNextId(String idName, Class<E> genericClass);
//   void beginTransaction();
//   void commitTransaction();
// }
// 
// Path: data/src/main/java/sergio/vasco/realmforandroid/data/repository/database/model/DataBaseContact.java
// public class DataBaseContact extends RealmObject {
// 
//   @PrimaryKey
//   private int idContact;
//   private String firstName;
//   private String lastName;
//   private int phone;
//   private String email;
// 
//   public int getIdContact() {
//     return idContact;
//   }
// 
//   public void setIdContact(int idContact) {
//     this.idContact = idContact;
//   }
// 
//   public String getFirstName() {
//     return firstName;
//   }
// 
//   public void setFirstName(String firstName) {
//     this.firstName = firstName;
//   }
// 
//   public String getLastName() {
//     return lastName;
//   }
// 
//   public void setLastName(String lastName) {
//     this.lastName = lastName;
//   }
// 
//   public int getPhone() {
//     return phone;
//   }
// 
//   public void setPhone(int phone) {
//     this.phone = phone;
//   }
// 
//   public String getEmail() {
//     return email;
//   }
// 
//   public void setEmail(String email) {
//     this.email = email;
//   }
// }
// 
// Path: data/src/main/java/sergio/vasco/realmforandroid/data/repository/database/model/mappers/DataContactMapper.java
// public class DataContactMapper {
// 
//   public Contact dataBaseContactToContact(DataBaseContact dataBaseContact){
//     Contact contact = new Contact();
//     contact.setIdContact(dataBaseContact.getIdContact());
//     contact.setFirstName(dataBaseContact.getFirstName());
//     contact.setLastName(dataBaseContact.getLastName());
//     contact.setEmail(dataBaseContact.getEmail());
//     contact.setPhone(dataBaseContact.getPhone());
//     return contact;
//   }
// 
//   public DataBaseContact contactToDataBaseContact(Contact contact){
//     DataBaseContact dataBaseContact = new DataBaseContact();
//     dataBaseContact.setIdContact(contact.getIdContact());
//     dataBaseContact.setFirstName(contact.getFirstName());
//     dataBaseContact.setLastName(contact.getLastName());
//     dataBaseContact.setEmail(contact.getEmail());
//     dataBaseContact.setPhone(contact.getPhone());
//     return dataBaseContact;
//   }
// }


// Path: data/src/main/java/sergio/vasco/realmforandroid/data/repository/database/datasources/ContactsDataSourceImp.java
import io.realm.RealmResults;
import java.util.ArrayList;
import java.util.List;
import sergio.vasco.androidforexample.domain.model.Contact;
import sergio.vasco.androidforexample.repository.datasources.ContactsDataSource;
import sergio.vasco.realmforandroid.data.repository.database.DataBaseService;
import sergio.vasco.realmforandroid.data.repository.database.model.DataBaseContact;
import sergio.vasco.realmforandroid.data.repository.database.model.mappers.DataContactMapper;

package sergio.vasco.realmforandroid.data.repository.database.datasources;


/**
 * Name: Sergio Vasco
 * Date: 26/1/16.
 */
public class ContactsDataSourceImp implements ContactsDataSource {

  private DataBaseService dataBaseService;
  private DataContactMapper dataContactMapper;

  public ContactsDataSourceImp(DataBaseService dataBaseService) {
    this.dataBaseService = dataBaseService;
    this.dataContactMapper = new DataContactMapper();
  }

  @Override public void insertContact(Contact contact) {