J'ai un objet source dont la structure est la suivante :
class SourceA {
int www;
SourceB sourceB;
}
class SourceB {
int xxx;
int yyy;
int zzz;
}
Et la destination :
class Dest {
int aaa;
int bbb;
int ccc;
int ddd;
}
C'est la manière la plus directe de configurer le mappage :
ModelMapper mapper = new ModelMapper();
mapper.createTypeMap(SourceA.class, Dest.class)
.addMapping(SourceA::getWww, Dest::setDdd)
.addMapping(src -> src.getSourceB().getXxx(), Dest::setAaa)
.addMapping(src -> src.getSourceB().getYyy(), Dest::setBbb)
.addMapping(src -> src.getSourceB().getZzz(), Dest::setCcc);
Mais j'aimerais faire quelque chose comme ça :
ModelMapper mapper = new ModelMapper();
mapper.createTypeMap(SourceB.class, Dest.class)
.addMapping(SourceB::getXxx, Dest::setAaa)
.addMapping(SourceB::getYyy, Dest::setBbb)
.addMapping(SourceB::getZzz, Dest::setCcc);
mapper.createTypeMap(SourceA.class, Dest.class)
.addMapping(SourceA::getWww, Dest::setDdd)
.addMapping(SourceA::getSourceB, ???); // How to reference self here?
Et toujours convertir SourceA en Dest en une seule étape, comme dans la première option :
Dest dest = mapper.map(sourceA, Dest.class);
Il s'agit évidemment d'un exemple simplifié à l'extrême, mais mon problème est de créer un mappage où, à un moment donné, je peux faire référence à un autre mappage pour l'objet Root dest.