2010-06-15 4 views
0

J'utilise Dozer pour mapper entre les beans Java. J'ai un fichier de cartographie de Dozer avec tous les mappages présents. Un exemple de mappage est illustré ci-dessous:Comment rechercher des mappages d'attribut dans Dozer lors de l'exécution?

<mapping> 
    <class-a>com.xyz.A</class-a> 
    <class-b>com.xyz.B</class-b> 
    <field> 
     <a>key</a> 
     <b>id</b> 
    </field> 
    <field> 
     <a>actionId</a> 
     <b>action</b> 
    </field> 
</mapping> 

Maintenant, je souhaite trouver les mappages lors de l'exécution. Par exemple, donnez un champ sous forme de chaîne com.xyz.A.key, je veux trouver qu'il mappe à com.xyz.B.id par programme. J'ai regardé dans l'API Dozer (org.dozer.Mapper interface) et il expose des méthodes seulement pour mapper les beans.

Donc, ma question est la suivante: existe-t-il une API pour trouver les mappages par programme?

+0

Y at-il une raison que vous ne pouvez pas utiliser le fichier de mappage XML pour cela? – McDowell

+0

J'ai le fichier de mappage XML. J'ai besoin de découvrir ces mappings à l'exécution. –

Répondre

1

Je ne suis pas sûr que Dozer dispose d'une API publique pour inspecter les mappages.

Vous pouvez essayer ModelMapper, qui est une bibliothèque de mappage d'objets qui fournit toutes les mêmes fonctionnalités que Dozer avec une interface SPI (Service Provider Interface) pour inspecter les mappages. Utilisation de votre exemple est simple:

ModelMapper modelMapper = new ModelMapper(); 
List<Mappings> mappings = modelMapper.createTypeMap(A.class, B.class).getMappings(); 

Vérifiez le site ModelMapper pour plus d'informations:

http://modelmapper.org

Questions connexes