Awesome
JMapper Framework
Fast as hand-written code with zero compromise.
Artifact information
Status
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.<br> Required java 8+<br>
Would you like to contribute to the development of JMapper?<br> contact us (jmapper.framework@gmail.com) for more information.<br><br>
Follow us on twitter<br> <a href="https://twitter.com/jmapper_av"><img src="http://www.teachthought.com/wp-content/uploads/2012/10/twitter-logo-break.png" width="120" height="120" /></a>