View on GitHub

JMapper Framework

Elegance, high performance and robustness all in one java bean mapper

Download this project as a .zip file Download this project as a tar.gz file

JMapper Framework Build Status

Fast as hand-written code with zero compromise.
Write the configuration using what you prefer: Annotation, XML or API.

Most relevant features:

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+

issues status
Stories in Progress

Dependency information
Maven Central Dependency Status

For a complete guide
wiki pages

Do you like the project? think it has good potential?
Let us know any malfunctions, new features and more through the JMapper Framework group.

Do you want to contribute to the development of JMapper?
There are many features to be implemented, such as:

contact us (jmapper.framework@gmail.com) for more information.

Do you want to do a friendly chat?
Join the chat at https://gitter.im/jmapper-framework/jmapper-core

Follow us on twitter