/**
*
*/
package net.agef.jobexchange.webservice.adapter;
import net.agef.jobexchange.domain.Address;
import net.agef.jobexchange.exceptions.CountryNotFoundException;
import net.agef.jobexchange.webservice.entities.AddressDTO;
/**
* @author AGEF
*
*/
public class AddressAssemblerWorker implements AddressAssembler{
private CountryAssembler ca;
public AddressAssemblerWorker(CountryAssembler countryAssembler) {
this.ca = countryAssembler;
}
@Override
public AddressDTO createDTO(Address address) {
AddressDTO dto = new AddressDTO();
if(address!=null){
dto.setAddress1(address.getAddress1());
dto.setAddress2(address.getAddress2());
dto.setCity(address.getCity());
dto.setCountry(ca.createDTO(address.getCountry()));
dto.setFaxNumber(address.getFaxNumber());
dto.setFederalState(address.getFederalState());
dto.setMobileNumber(address.getMobileNumber());
dto.setPhoneNumber(address.getPhoneNumber());
dto.setZipCode(address.getZipCode());
}
return dto;
}
@Override
public Address createDomainObj(AddressDTO dto) throws CountryNotFoundException {
Address address = new Address();
if(dto!=null){
address.setAddress1(dto.getAddress1());
address.setAddress2(dto.getAddress2());
address.setCity(dto.getCity());
address.setCountry(ca.getDomainObj(dto.getCountry()));
address.setFaxNumber(dto.getFaxNumber());
address.setFederalState(dto.getFederalState());
address.setMobileNumber(dto.getMobileNumber());
address.setPhoneNumber(dto.getPhoneNumber());
address.setZipCode(dto.getZipCode());
}
return address;
}
@Override
public Address updateDomainObj(AddressDTO dto, Address existingAddress) throws CountryNotFoundException {
Address address = existingAddress;
if(dto!=null){
address.setAddress1(dto.getAddress1());
address.setAddress2(dto.getAddress2());
address.setCity(dto.getCity());
address.setCountry(ca.getDomainObj(dto.getCountry()));
address.setFaxNumber(dto.getFaxNumber());
address.setFederalState(dto.getFederalState());
address.setMobileNumber(dto.getMobileNumber());
address.setPhoneNumber(dto.getPhoneNumber());
address.setZipCode(dto.getZipCode());
}
return address;
}
}