Hi I try to map following Source class in to following Destination class. I used following mapping in order to map string values in to the list string. It isn't mapping properly. I need to know how to map 2 string values into one destination string list using Dozer.
public class SourceClass {
protected String streetName;
protected String additionalStreetName;
}
public class Destination {
protected List<String> addressLine;
}
<mapping map-id="newId" >
<class-a>myPackage.SourceClass </class-a>
<class-b>myPackage.Destination</class-b>
<field>
<a>streetName</a>
<b>addressLine[0]</b>
</field>
<field>
<a>additionalStreetName</a>
<b>addressLine[1]</b>
</field>
</mapping>
This is the answer that I am come up with..
import java.util.ArrayList;
import java.util.List;
import org.dozer.DozerConverter;
import org.dozer.Mapper;
import org.dozer.MapperAware;
public class TestConverter extends DozerConverter<String, List>
implements MapperAware {
public TestConverter() {
super(String.class, List.class);
// TODO Auto-generated constructor stub
}
@Override
public void setMapper(Mapper mapper) {
// TODO Auto-generated method stub
}
@Override
public List convertTo(String source, List destination) {
if (source == null) {
return new ArrayList<String>();
}
if (destination == null) {
destination = new ArrayList<String>();
}
//destination.getAddressLine().add(source.getAdditionalStreetName());
destination.add(source);
return destination;
}
@Override
public String convertFrom(List source, String destination) {
// TODO Auto-generated method stub
return null;
}
}
===============In dozerMapper.xml under configuration===========================
<custom-converters>
<converter
type="company.realMap.TestConverter">
<class-a>desAdv.SourceClass</class-a>
<class-b>abcReq.Destination</class-b>
</converter>
===============In dozerMapper.xml under mapping==========================
<field custom-converter="myPackage.TestConverter">
<a>streetName</a>
<b>addressLine</b>
</field>
<field custom-converter="myPackage.TestConverter">
<a>additionalStreetName</a>
<b>addressLine</b>