I have a source object with a structure like this:
class SourceA {
int www;
SourceB sourceB;
}
class SourceB {
int xxx;
int yyy;
int zzz;
}
And the destination:
class Dest {
int aaa;
int bbb;
int ccc;
int ddd;
}
This is the most direct way to configure the mapping:
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);
But I'd like to do something like this:
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?
And still convert SourceA to Dest in just 1 step, like in the first option:
Dest dest = mapper.map(sourceA, Dest.class);
Obviously this is an oversimplified example, my problem is to create a mapping where at some point I can reference another mapping to the root dest object.