/* * 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.modelmapper; import com.inspiresoftware.lib.dto.geda.benchmark.Mapper; import com.inspiresoftware.lib.dto.geda.benchmark.domain.Person; import com.inspiresoftware.lib.dto.geda.benchmark.dto.PersonDTO; import org.modelmapper.ModelMapper; import org.modelmapper.PropertyMap; /** * . * <p/> * User: denispavlov * Date: Sep 17, 2012 * Time: 11:39:32 AM */ public class ModelMapperBasicMapper implements Mapper { private ModelMapper mapperFromDto; private ModelMapper mapperFromEntity; public ModelMapperBasicMapper() { mapperFromDto = new ModelMapper(); mapperFromDto.addMappings(new PropertyMap<PersonDTO, Person>() { @Override protected void configure() { map().getName().setFirstname(source.getFirstName()); map().getName().setSurname(source.getLastName()); } }); mapperFromEntity = new ModelMapper(); mapperFromEntity.addMappings(new PropertyMap<Person, PersonDTO>() { @Override protected void configure() { map().setFirstName(source.getName().getFirstname()); map().setLastName(source.getName().getSurname()); } }); } public Object fromEntity(final Object entity) { return mapperFromEntity.map(entity, PersonDTO.class); } public Object fromDto(final Object dto) { return mapperFromDto.map(dto, Person.class); } }