Я создаю загрузочное приложение Sprint, где я делаю запрос, а затем получаю ответ. Прежде чем я сделаю запрос, мне нужно преобразовать свои данные. Но класс Destination для преобразования может отличаться для того же класса Source для преобразования. Пример:
public Request getTransformedRequest(Request, String typeTransformation) {
Request transformedRequest= mapper.map(request,Request.class);
return transformedRequest;
}
Если я не использую Конвертеры, и я использую только обычное отображение Dozer, я могу иметь следующее в моем mapping.xml;
<mapping map-id="Type1">
<class-a>ClassA</class-a>
<class-b>ClassB</class-b>
</mapping>
<mapping map-id="Type2">
<class-a>ClassA</class-a>
<class-b>ClassC</class-b>
</mapping>
И затем вмой код, для того же класса Source, я могу переключиться с помощью идентификатора сопоставления;
ClassB mapper.map(request,Request.class,"Type1"); //Here ClassB extends Request
ClassC mapper.map(request,Request.class,"Type2"); //Here ClassC extends Request
Моя проблема, это не может сделать то же самое с конвертерами. Я хочу иметь разные конвертеры для одного и того же класса источника:
<convertertype="CustomConverterType1" >
<class-a>
ClassA
</class-a>
<class-b>
ClassB
</class-b>
</converter>
<converter type="CustomConverterType2" >
<class-a>
ClassA
</class-a>
<class-b>
ClassC
</class-b>
</converter>
Итак, в моем сценарии я хотел бы выбрать (как в примере с идентификатором отображения) желаемый конвертер. Я действительно ценю ту же помощь. Заранее спасибо.