How to map collections in Dozer

data-mapping, dozer, java, mapping

Solution

To quote:

"Nested collections are handled automatically, but you are correct that top level collections need to be iterated over. Currently there isn't a more elegant way to handle this."

Someone has figured a way to do it without a looping construct in your code base, but I think it's just easier (and more readable/maintainable) to put it in your code. Hopefully they'll add this ability sooner than later.

Problem

I'd like to do something like: ``` ArrayList<CustomObject> objects = new ArrayList<CustomObject>(); ... DozerBeanMapper MAPPER = new DozerBeanMapper(); ... ArrayList<NewObject> newObjects = MAPPER.map(objects, ...); ``` Assuming: ``` <mapping> <class-a>com.me.CustomObject</class-a> <class-b>com.me.NewObject</class-b> <field> <a>id</a> <b>id2</b> </field> </mapping> ``` I tried : ``` ArrayList<NewObject> holder = new ArrayList<NewObject>(); MAPPER.map(objects, holder); ``` but the holder object is empty. I also played with changing the second argument without any luck...

Original source