I have a model like this:
public class PersonDto {
private CarDto car;
public CarDto getCar() {
return car;
}
public void setCar(CarDto car) {
this.car = car;
}
public static class CarDto {
private String model;
private String color;
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
}
}
And the VO is immutable:
public class PersonVo {
private final CarDto car;
public PersonVo(CarDto car) {
super();
this.car = car;
}
public CarDto getCar() {
return car;
}
public static class CarDto {
private final String model;
private final String color;
public CarDto(String model, String color) {
super();
this.model = model;
this.color = color;
}
public String getModel() {
return model;
}
public String getColor() {
return color;
}
}
}
Is there an easy way using ModelMapper
Providers to convert this scenario from Dto to Vo?
I can't figure it out using one provider for PersonVo
because when I'm creating the new object I don't know how to parse the CarDto
...
public class PersonVoProvider implements Provider<PersonVo> {
public PersonVo get(org.modelmapper.Provider.ProvisionRequest<PersonVo> request) {
PersonDto source = PersonDto.class.cast(request.getSource());
return new PersonVo(car); ????????????
}
}