/* * This code is distributed under The GNU Lesser General Public License (LGPLv3) * Please visit GNU site for LGPLv3 http://www.gnu.org/copyleft/lesser.html * * Copyright Denis Pavlov 2009 * Web: http://www.genericdtoassembler.org * SVN: https://svn.code.sf.net/p/geda-genericdto/code/trunk/ * SVN (mirror): http://geda-genericdto.googlecode.com/svn/trunk/ */ package com.inspiresoftware.lib.dto.geda.benchmark.support.manual; import com.inspiresoftware.lib.dto.geda.benchmark.Mapper; import com.inspiresoftware.lib.dto.geda.benchmark.domain.Address; import com.inspiresoftware.lib.dto.geda.benchmark.domain.Country; import com.inspiresoftware.lib.dto.geda.benchmark.domain.Name; import com.inspiresoftware.lib.dto.geda.benchmark.domain.Person; import com.inspiresoftware.lib.dto.geda.benchmark.dto.AddressDTO; import com.inspiresoftware.lib.dto.geda.benchmark.dto.PersonDTO; /** * . * <p/> * User: denispavlov * Date: Sep 17, 2012 * Time: 10:29:18 AM */ public class ManualBasicMapper implements Mapper { public Object fromEntity(final Object entity) { final Person person = (Person) entity; final PersonDTO dto = new PersonDTO(); dto.setId(person.getId()); if (person.getName() != null) { dto.setFirstName(person.getName().getFirstname()); dto.setLastName(person.getName().getSurname()); } if (person.getCurrentAddress() != null) { final Address address = person.getCurrentAddress(); final AddressDTO addressDTO = fromAddress(address); dto.setCurrentAddress(addressDTO); } return dto; } private AddressDTO fromAddress(final Address address) { final AddressDTO addressDTO = new AddressDTO(); addressDTO.setAddressLine1(address.getAddressLine1()); addressDTO.setAddressLine2(address.getAddressLine2()); addressDTO.setCity(address.getCity()); addressDTO.setPostCode(address.getPostCode()); if (address.getCountry() != null) { addressDTO.setCountryName(address.getCountry().getName()); } return addressDTO; } public Object fromDto(final Object dto) { final Person person = new Person(); final PersonDTO personDTO = (PersonDTO) dto; person.setId(personDTO.getId()); person.setName(new Name(personDTO.getFirstName(), personDTO.getLastName())); if (personDTO.getCurrentAddress() != null) { final AddressDTO addressDTO = personDTO.getCurrentAddress(); final Address address = fromAddressDTO(addressDTO); person.setCurrentAddress(address); } return person; } private Address fromAddressDTO(final AddressDTO addressDTO) { final Address address = new Address(); address.setAddressLine1(addressDTO.getAddressLine1()); address.setAddressLine2(addressDTO.getAddressLine2()); address.setCity(addressDTO.getCity()); address.setPostCode(addressDTO.getPostCode()); address.setCountry(new Country(addressDTO.getCountryName())); return address; } }