Re: [Wikitty-devel] [Wikitty-commits] r494 - in trunk/wikitty-api/src: main/java/org/nuiton/wikitty test/java/org/nuiton/wikitty/api
Le 22/11/2010 19:55, bpoussin@users.nuiton.org a écrit :
Author: bpoussin
Log: add FIXME on bad code and test unit that must be passed when this code will be corrected
try { + // FIXME poussin 20101122 this is completely false :( + // we can't use BeanUtils.copyProperties to copy to Wikitty + // there are no get or set method for field BeanUtils.copyProperties(result, entity); } catch (Exception eee) { throw new WikittyException("Could not transform entity to Wikitty", eee);
Le problème viens sur les wikittyId et version a priori. Mais normalement les DTO/wikittys/... viennent du service et donc on a déjà des wikittyId et version et donc on a pas besoin de les setter. Je dis une grosse connerie ou pas ? Du coup si on retrouve pas wikitty dans le wikitty service, on peut retourner null ?
On Tue, 23 Nov 2010 10:27:17 +0100 Jean Couteau <couteau@codelutin.com> wrote:
Le 22/11/2010 19:55, bpoussin@users.nuiton.org a écrit :
Author: bpoussin
Log: add FIXME on bad code and test unit that must be passed when this code will be corrected
try { + // FIXME poussin 20101122 this is completely false :( + // we can't use BeanUtils.copyProperties to copy to Wikitty + // there are no get or set method for field BeanUtils.copyProperties(result, entity); } catch (Exception eee) { throw new WikittyException("Could not transform entity to Wikitty", eee);
Le problème viens sur les wikittyId et version a priori. Mais normalement les DTO/wikittys/... viennent du service et donc on a déjà des wikittyId et version et donc on a pas besoin de les setter.
Je dis une grosse connerie ou pas ?
Du coup si on retrouve pas wikitty dans le wikitty service, on peut retourner null ?
oui, tu dis une betise :). Parce que justement tout pause probleme sauf l'id et la version :). - On recupere un Business entity avec son wikitty a l'interieur. - On demande sa conversion en DTO - On modifie sa version DTO - On demande le wikitty equivalent du DTO via la nouvelle methode getWikitty - Il faut que les champs du wikitty reflete les modif qui ont ete faite sur le dto et non pas que le wikitty soit equivalent a ce qu'on avait avant les modif. Car sinon la methode getWikitty ne sert absolument a rien :( autant faire un restore en passant l'id. Donc il faut reflechir a un moyen pour faire passer les valeurs du DTO dans le wikitty et donc retrouver l'equivalence de champs entre les deux. Cela n'est pas trivial et il faut une aide externe pour que ce soit le plus simple possible. Je propose que lors de la generation du DTO sur chaque champs on ajoute une annotation qui indique le FQN du champs wikitty equivalent. Du coup le mapping entre les deux est simple. Donc a faire: - creer une annotation - l'utilise pour la copie DTO <==> wikitty -- Benjamin POUSSIN -------------------- tél: +33 (0) 2 40 50 29 28 email: poussin@codelutin.com () campagne du ruban ascii http://www.codelutin.com /\ pour les mails en ascii
Le 23/11/2010 11:52, Benjamin POUSSIN a écrit :
oui, tu dis une betise :). Parce que justement tout pause probleme sauf l'id et la version :).
arf pour moi c'était l'inverse...
- On recupere un Business entity avec son wikitty a l'interieur. - On demande sa conversion en DTO - On modifie sa version DTO - On demande le wikitty equivalent du DTO via la nouvelle methode getWikitty - Il faut que les champs du wikitty reflete les modif qui ont ete faite sur le dto et non pas que le wikitty soit equivalent a ce qu'on avait avant les modif. Car sinon la methode getWikitty ne sert absolument a rien :( autant faire un restore en passant l'id.
Je suis bien d'accord :D
Donc il faut reflechir a un moyen pour faire passer les valeurs du DTO dans le wikitty et donc retrouver l'equivalence de champs entre les deux.
Cela n'est pas trivial et il faut une aide externe pour que ce soit le plus simple possible. Je propose que lors de la generation du DTO sur chaque champs on ajoute une annotation qui indique le FQN du champs wikitty equivalent. Du coup le mapping entre les deux est simple.
Donc a faire: - creer une annotation - l'utilise pour la copie DTO <==> wikitty
Ok, je vois, mais le problème c'est que la méthode en question est dans l'API et que le module dto dépends de l'api et on risque de se retrouver avec une dépendance cyclique (en tout cas pour la méthode getWikitty, pas pour la conversion DTO sur le DTOHelper).
Le 23/11/2010 11:52, Benjamin POUSSIN a écrit :
Donc il faut reflechir a un moyen pour faire passer les valeurs du DTO dans le wikitty et donc retrouver l'equivalence de champs entre les deux.
Cela n'est pas trivial et il faut une aide externe pour que ce soit le plus simple possible. Je propose que lors de la generation du DTO sur chaque champs on ajoute une annotation qui indique le FQN du champs wikitty equivalent. Du coup le mapping entre les deux est simple.
Donc a faire: - creer une annotation - l'utilise pour la copie DTO <==> wikitty
Après discussion avec Tony, il y a une API de binding dans Nuiton utils qui est utilisée dans Topia. Il y aurai moyen de l'utiliser simplement, ça éviterai de tout calculer au runtime, en plus c'est généré. A discuter. Jean
On Wed, 24 Nov 2010 11:17:47 +0100 Jean Couteau <couteau@codelutin.com> wrote:
Le 23/11/2010 11:52, Benjamin POUSSIN a écrit :
Donc il faut reflechir a un moyen pour faire passer les valeurs du DTO dans le wikitty et donc retrouver l'equivalence de champs entre les deux.
Cela n'est pas trivial et il faut une aide externe pour que ce soit le plus simple possible. Je propose que lors de la generation du DTO sur chaque champs on ajoute une annotation qui indique le FQN du champs wikitty equivalent. Du coup le mapping entre les deux est simple.
Donc a faire: - creer une annotation - l'utilise pour la copie DTO <==> wikitty
Après discussion avec Tony, il y a une API de binding dans Nuiton utils qui est utilisée dans Topia. Il y aurai moyen de l'utiliser simplement, ça éviterai de tout calculer au runtime, en plus c'est généré. Bah moi je suis tout pour :) et ceci pour 7 raisons :
1) l'api est simple et efficace 2) on peut tout générer 3) c'est safe 4) c'est pas intrusif : pas d'annoation sur des champs d'entité 5) ne pas réinventer la terre (même si c'est le leitmotiv de Wikitty :)) 6) améliorer une api de nuiton-utils qui a le mérite d'exister 7) conjuger les talents et pas seulement et pas uniquement celui des développeurs concepteurs de wikitty Qui dit mieux ?
A discuter.
Jean _______________________________________________ Wikitty-devel mailing list Wikitty-devel@list.nuiton.org http://list.nuiton.org/cgi-bin/mailman/listinfo/wikitty-devel
-- Tony Chemit -------------------- tél: +33 (0) 2 40 50 29 28 email: chemit@codelutin.com http://www.codelutin.com
participants (3)
-
Benjamin POUSSIN -
chemit -
Jean Couteau