Dozer : osez le mapping de beans !

Qui n’a jamais été confronté à devoir écrire 10 lignes de code uniquement pour copier les variables d’un objet vers un autre ?

Exemple classique avec un framework MVC : Vous récupérez le formulaire soumis sous forme de Bean. Vous devez ensuite passer toutes les valeurs à l’objet représentant le model (model.setNom(bean.getNom()), model.setAge(bean.getAge())….).

Cela passe encore quand vous avez 5 valeurs à entrer, mais avec des formulaires contenant 20 champs et plus c’est une autre histoire…

Pour simplifier tout ça, il existe un petit framework qui ne nécessite qu’une seule ligne de code : Dozer

MapperIF mapper = new DozerBeanMapper();<br></br>
DestinationObject destObject = (DestinationObject) mapper.map(sourceObject, DestinationObject.class);```

Voilà c’est fini. Cela nécessite cependant que les attributs des deux objets portent le même nom. Dans le cas contraire il faut ajouter un fichier XML pour décrire les différents champs à mapper :




package.SourceClassName


package.DestinationClassName





SourceFieldName


DestinationFieldName





```

Dans cet exemple : l’attribut SourceFieldName de l’objet SourceClassName sera copié dans l’attribut DestinationFieldName de l’objet DestinationFieldName. Il est également possible de spécifier les attributs à exclure lors de la copie.

En bref, c’est un outil bien pratique pour se décharger de l’insertion parfois fastidieuse des valeurs d’un Bean vers un autre objet.