Допустим, у меня есть объект Foo, который содержит список ссылок на объект Bar:
public class Foo{
String fooStr;
List<Bar> barList;
//get/set barList/someStr go here
}
public class Bar {
String barStr;
}
Используя Dozer, предполагая, что Bar для java.util.HashMap является тривиальным отображением, какЯ сопоставляю экземпляры Foo экземплярам java.util.HashMap таким образом, что ссылочные экземпляры Bar также сопоставляются с java.util.HashMap? То есть я хочу, чтобы результатом сопоставления был HashMap с ключом"barList", который содержит экземпляр ArrayList>.Каждая HashMap в этом списке должна быть отображением Bar на HashMap.
Например, если бы Foo содержал одну ссылку на Bar, а не список, я бы сделал:
<mapping>
<class-a>Foo</class-a>
<class-b>java.util.Map</class-b>
<field>
<a>bar</a>
<b key="bar">this</b>
<a-hint>Bar</a-hint>
<b-hint>java.util.Map</b-hint>
</field>
</mapping>
И это создаст хэш-карту, которая будет выглядеть следующим образом (используя объекты JSON для представления HashMaps):
{
"fooStr" : "value of fooStr",
{
"barStr" : "value of barStr"
}
}
Но я хочу знать, как я могу выразить преобразование в HashMap со списком ссылок на Barтак, что я получаю это:
{
"fooStr" : "value of fooStr",
"barList" : [{ "barStr" : "bar1" }, { "barStr" : "bar2" }, ...]
}
Ответы, которые не используют пользовательский маппер, предпочтительнее, но я понимаю, если это единственный способ добиться такого поведения.