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...
Dozer automatically maps all fields with the same property name from the source object into the destination object. We will then place our custom XML file on the classpath directly under the src folder.
Dozer uses reflection to access data object properties, so it is designed to work with data objects that have corresponding getter and setter methods for its fields.
It is mainly bean to bean mapper that recursively copies data from one java object to another java object – attribute by attribute. We realize it's full capability when We are dealing with deeply-nested complex java beans, which we are easily seen in large enterprise applications.
net.sf.dozer » dozer-parentApache. Dozer is a powerful Java Bean to Java Bean mapper that recursively copies data from one object to another. Last Release on Apr 22, 2014.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With