Sto tentando di migrare un progetto che utilizza dozer
a orika
.Come configurare Orika per mappare una classe a un'altra in base al contesto?
In dozer, si tratta di una pratica comune per avere qualcosa di simile:
<?xml version="1.0" encoding="UTF-8"?>
<mappings xmlns="http://dozer.sourceforge.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://dozer.sourceforge.net
http://dozer.sourceforge.net/schema/beanmapping.xsd">
<mapping map-id="all">
<class-a>com.bnppa.cdj.dto.Source</class-a>
<class-b>com.bnppa.cdj.dto.Destination</class-b>
<field>
<a>id</a>
<b>id</b>
</field>
<field>
<a>someField</a>
<b>someField</b>
</field>
</mapping>
<mapping map-id="small">
<class-a>com.bnppa.cdj.dto.Source</class-a>
<class-b>com.bnppa.cdj.dto.Destination</class-b>
<field>
<a>id</a>
<b>id</b>
</field>
</mapping>
</mappings>
E quindi utilizzare il mapId quando si converte l'oggetto:
Source s = ...
List<String> mappingFiles = new ArrayList<String>();
mappingFiles.add("dozer/dozerMapping.xml");
mapper = new DozerBeanMapper(mappingFiles);
Destination d = mapper.map(mySource, Destination.class, "small");
Quindi la mia domanda è: Come configurare Orika ad avere queste cose come la mappa?
non riesco a trovare il modo di dichiarare una mappa-id quando mi definisco i miei mapper:
MapperFactory factory = new DefaultMapperFactory.Builder().build();
//Register a mapper
factory.registerClassMap(factory.classMap(Source.class, Destination.class)
.field("id","id")
.field("someField", "someField")
.toClassMap());