package net.agef.jobexchange.webservice.adapter;
import net.agef.jobexchange.domain.AddressEnum;
import net.agef.jobexchange.domain.ContactPerson;
import net.agef.jobexchange.domain.TitleEnum;
import net.agef.jobexchange.domain.User;
import net.agef.jobexchange.exceptions.CountryNotFoundException;
import net.agef.jobexchange.exceptions.EnumValueNotFoundException;
import net.agef.jobexchange.webservice.entities.AddressDTO;
import net.agef.jobexchange.webservice.entities.ContactPersonDTO;
public class ContactPersonAssemblerWorker implements ContactPersonAssembler{
private AddressAssembler ada;
public ContactPersonAssemblerWorker(AddressAssembler addressAssembler){
this.ada = addressAssembler;
}
@Override
public ContactPersonDTO createDTO(ContactPerson contactPerson) {
ContactPersonDTO dto = new ContactPersonDTO();
if(contactPerson!=null){
if(contactPerson.getAddresses()!=null){
dto.setAddresses(contactPerson.getAddresses().toString());
}
if(contactPerson.getTitle()!=null){
dto.setTitle(contactPerson.getTitle().toString());
}
dto.setEmailBusiness(contactPerson.getEmailBusiness());
dto.setFamilyName(contactPerson.getFamilyName());
dto.setFathersName(contactPerson.getFathersName());
dto.setGivenName(contactPerson.getGivenName());
dto.setInternet(contactPerson.getInternet());
dto.setPosition(contactPerson.getPosition());
}
return dto;
}
@Override
public ContactPersonDTO createDTOByUser(User user) {
ContactPersonDTO dto = new ContactPersonDTO();
if(user!=null){
if(user.getAddresses()!=null){
dto.setAddresses(user.getAddresses().toString());
}
if(user.getTitle()!=null){
dto.setTitle(user.getTitle().toString());
}
dto.setEmailBusiness(user.getEmailBusiness());
dto.setFamilyName(user.getFamilyName());
dto.setFathersName(user.getFathersName());
dto.setGivenName(user.getGivenName());
dto.setInternet(user.getInternet());
dto.setPosition(user.getPosition());
}
return dto;
}
@Override
public ContactPerson createDomainObj(ContactPersonDTO dto, AddressDTO addressDTO) throws EnumValueNotFoundException, CountryNotFoundException {
ContactPerson contactPerson = new ContactPerson();
if(dto!=null){
if(addressDTO!=null){
contactPerson.setContactPersonAddress(ada.createDomainObj(addressDTO));
}
if(dto.getAddresses()!=null){
contactPerson.setAddresses(AddressEnum.fromValue(dto.getAddresses()));
}
if(dto.getTitle()!=null){
contactPerson.setTitle(TitleEnum.fromValue(dto.getTitle()));
}
contactPerson.setEmailBusiness(dto.getEmailBusiness());
contactPerson.setFamilyName(dto.getFamilyName());
contactPerson.setFathersName(dto.getFathersName());
contactPerson.setGivenName(dto.getGivenName());
contactPerson.setInternet(dto.getInternet());
contactPerson.setPosition(dto.getPosition());
}
return contactPerson;
}
@Override
public ContactPerson updateDomainObj(ContactPerson contactPersonDomain, ContactPersonDTO dto, AddressDTO addressDTO) throws EnumValueNotFoundException, CountryNotFoundException {
ContactPerson contactPerson = contactPersonDomain;
if(dto!=null){
if(addressDTO!=null){
contactPerson.setContactPersonAddress(ada.updateDomainObj(addressDTO, contactPerson.getContactPersonAddress()));
}
if(dto.getAddresses()!=null){
contactPerson.setAddresses(AddressEnum.fromValue(dto.getAddresses()));
}
if(dto.getTitle()!=null){
contactPerson.setTitle(TitleEnum.fromValue(dto.getTitle()));
}
contactPerson.setEmailBusiness(dto.getEmailBusiness());
contactPerson.setFamilyName(dto.getFamilyName());
contactPerson.setFathersName(dto.getFathersName());
contactPerson.setGivenName(dto.getGivenName());
contactPerson.setInternet(dto.getInternet());
contactPerson.setPosition(dto.getPosition());
}
return contactPerson;
}
}