Fast as hand-written code with zero compromise.
[![Dependency Status] (https://www.versioneye.com/user/projects/5539172d1d2989cb78000002/badge.svg?style=flat)] (https://www.versioneye.com/user/projects/5539172d1d2989cb78000002)
#####Write the configuration using what you prefer: Annotation, XML or API. Most relevant features:
- One to Many and Many to One relationship
- dynamic conversions, whose body adapts to every relationship
- inherited configurations, you can split the configuration along the hierarchy
- and more..
especially its use is intuitive
##Configuration Below it is shown the same configuration in the three types allowed #####Annotation
class Destination{ class Source{
@JMap
private String id; private String id;
@JMap("sourceField")
private String destinationField; private String sourceField;
private String other; private String other;
// getters and setters... // getters and setters...
} }
#####XML
<jmapper>
<class name="it.jmapper.bean.Destination">
<attribute name="id">
<value name="id"/>
</attribute>
<attribute name="destinationField">
<value name="sourceField">
</attribute>
</class>
</jmapper>
#####API
JMapperAPI jmapperAPI = new JMapperAPI()
.add(mappedClass(Destination.class)
.add(attribute("id")
.value("id"))
.add(attribute("destinationField")
.value("sourceField")));
##Creation
JMapper<Destination, Source> mapper;
#####Annotation
mapper = new JMapper<>(Destination.class, Source.class);
#####XML
mapper = new JMapper<>(Destination.class, Source.class, xml);
#####API
mapper = new JMapper<>(Destination.class, Source.class, jmapperAPI);
##Usage
Source source = new Source("id", "sourceField", "other");
Destination destination = mapper.getDestination(source);
##Result
destination ["id", "sourceField", null]
With JMapper we have all the advantages of dynamic mapping with the performance of static code, with 0 memory consumption.
Required java 5+
Would you like to contribute to the development of JMapper?
contact us (jmapper.framework@gmail.com) for more information.