branch feature/refactor_reference updated (852ad86 -> 9e740bd)
This is an automated email from the git hooks/post-receive script. New change to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git discards 852ad86 Fix api discards 5be7df6 Nommer le label set discards 35a0169 Fix some tests discards d57c850 Add fixme discards 3cc570b Amélioration des logs + bien transformer les références vers référentiels + prise en compte des champs techniques discards 14c611d Suppression de la méthode loadForRead et renommage de l'autre en loadForm discards 295365d Suppression classe non utilisée discards 340e403 Déplacement du cache de rérentiels dans le module de l'API de service et intégration dans les tests discards 7a56f19 Ajout d'une méthode utile pour récupérer tous les types de lables d'un formulaire discards 4eb7611 Réajout de méthodes enlevées trop rapidemment discards c650adc Fix generic discards 6dce4e6 Meilleure utilisation des ReferenceDto discards f1e3cd0 Début de revue du code de l'application swing : y'a du boulot... discards 38c5db5 amélioration du design des ReferenceSetDto (si on utilise des generics, on le fait jusqu'au bout :() + quelques corrections par ci-par là discards f86dd9b Permettre aussi d'intégrer les ensembles de références sur les données métiers à la récupération d'un FormDto discards 3f1d907 Utilisation du système de requète sur l'écran TripSeine discards 215eb14 Mise en place du cache de réferentiels et intégration dans l'application swing discards 37347bc Fix NPE discards 2b82426 Ajout au FormDto du nom des deux requètes qu'il peut utiliser discards b0ac682 Permettre de transformer un ObserveReference en RefereceDto discards c4959a1 Reformatage des définitions discards fbb865c ajout des définitions pour les référentiels discards 4653914 ajout des définitions des requetes discards 1577189 Avoid NPe + improve code discards 22c3ce2 Effet de bord kevin discards 30aadab Ajout d'une action pour recharger la configuration du serveur discards 65fcee2 remove dead code discards 64ba103 introduction nouvelle api de references plus simple et mise en place discards aee09c8 Début d'implantation d'un cache de référentiels (à finir) discards fd559ab Ajout d'un service pour récupérer des referecne set (à finir) discards ab4af87 Ajout de définition de requètes de données discards 2f01ded Ajout d'une méthode toString pour faire un rendu simple d'un dto discards 220789a Ajout de méthodes pour faire un rendu i18n plus facile adds 61cbc89 ajout des menus pour les routes (refs #7622) adds ac49cd8 actions de déplcement des routes et marées (refs #7622) adds 16da14f ajout d'une méthode pour savoir si un noeud est un noeud de route (refs #7622) adds 83ab966 ajout des nouveaux menus sur les noeuds de route (refs #7622) adds fc73420 i18n (refs #7622) adds 6d80401 ajout des méthodes pour déplacer une route (refs #7622) adds 2c34abf ajout de l'icone (refs #7622) adds 76b94bd ajout d'une methode pour déplacer plusieurs routes (refs #7622) adds f7122a1 ajout de l'icone de déplacement de route (refs #7622) adds 677e264 refactoring de la sélection des éléments des listes (refs #7622) adds 654085f ajout du bouton pour déplacer des routes depuis la liste (refs #7622) adds 0b7f406 refactoring des actions du menu contextuel de l'arbre (refs #7622) adds b2b70d4 correction des positions (refs #7622) adds acbb79d correction de l'action de déplacement des routes depuis la liste (refs #7622) adds e5719f9 meilleur gestion de l'activation du menu de fermeture des neouds (refs #7622) adds ce9258e fix decorateur (refs #7622) adds 9d54b0b correction du déplacement des routes (fixes #7622) adds 63416d7 Effet de bord kevin adds e12b6de ajout de la méthode pour déplacer une activité seine (refs #7623) adds f918af6 refactoring des menus contextuels de l'arbre + correction des actions (refs #7623) adds 2e46280 refactoring des menus contextuels de l'arbre + ajout des menus sur les activites seines (refs #7623) adds b5b63d4 ajout des méthodes pour déplacer plusieurs activités seine (refs #7623) adds 96cb83e ajout de l'action pour déplacer plusieurs actvités seine (refs #7623) adds 51c988f wording (refs #7623) adds 0d0ff3f correction dans le déplacement des routes (récupération des marées via les noeuds de l'arbre, fix npe quand on clique sur annuler pendant le choix de la marée, mise à jour du model inutile vu qu'on a déjà changer de noeud) (refs #7622) adds 1aaea37 correction dans le déplacement des marées (récupération des programmes via les noeuds de l'arbre, fix npe quand on clique sur annuler pendant le choix de la marée) (refs #7621) adds a3bfa37 fix icons adds fb11637 fixes #7623 [PS] Ajout de nouvelles fonctionnalités sur la liste des activités adds 8d81cfc ajout d'une annotation oubliée adds 942f1df on évite de sauver n fois les entités adds 6cefceb ajout de la méthode pour déplacer une activité longline (refs #7624) adds 2a8eeff ajout du menu de déplacement d'un noeud d'activité longline adds 28de073 renommage adds 471fe45 refactor adds a4ce97d reload program node (refs #7624) adds 187d336 refactor adds d355416 ajout des méthodes pour déplacer plusieurs activites longline (refs #7624) adds c46d642 ajout de l'action de déplacement des activités dans la liste (fixes #7624) adds 109b6d2 fixes #7624 [LL] Ajout de nouvelles fonctionnalités sur la liste des activités new 3eac353 Ajout de méthodes pour faire un rendu i18n plus facile new 4bb2bff Ajout d'une méthode toString pour faire un rendu simple d'un dto new e51a85b Ajout de définition de requètes de données new 8478b78 Ajout d'un service pour récupérer des referecne set (à finir) new 2ce56e4 Début d'implantation d'un cache de référentiels (à finir) new bc75e21 introduction nouvelle api de references plus simple et mise en place new 01f6fb6 remove dead code new 42d4983 Ajout d'une action pour recharger la configuration du serveur new 28bb481 Avoid NPe + improve code new 366574f ajout des définitions des requetes new e8a38b2 ajout des définitions pour les référentiels new 8d921fe Reformatage des définitions new 7b59358 Permettre de transformer un ObserveReference en RefereceDto new 564ed13 Ajout au FormDto du nom des deux requètes qu'il peut utiliser new 203b122 Fix NPE new 76e2634 Mise en place du cache de réferentiels et intégration dans l'application swing new 5a951b7 Utilisation du système de requète sur l'écran TripSeine new fa1235c Permettre aussi d'intégrer les ensembles de références sur les données métiers à la récupération d'un FormDto new 91f61e4 amélioration du design des ReferenceSetDto (si on utilise des generics, on le fait jusqu'au bout :() + quelques corrections par ci-par là new 2fc9a91 Début de revue du code de l'application swing : y'a du boulot... new 35a18ff Meilleure utilisation des ReferenceDto new 9ede930 Fix generic new c90ed43 Réajout de méthodes enlevées trop rapidemment new 7fd9a31 Ajout d'une méthode utile pour récupérer tous les types de lables d'un formulaire new 657b8b3 Déplacement du cache de rérentiels dans le module de l'API de service et intégration dans les tests new d563b90 Suppression classe non utilisée new ac539a7 Suppression de la méthode loadForRead et renommage de l'autre en loadForm new dbb5658 Amélioration des logs + bien transformer les références vers référentiels + prise en compte des champs techniques new d8a13bc Add fixme new 2ce324b Fix some tests new fcb72be Nommer le label set new f5c2c3c Fix api new 5156de3 Fix code after merge new 9e740bd Fix some other tests This update added new revisions after undoing existing revisions. That is to say, some revisions that were in the old version of the branch are not in the new version. This situation occurs when a user --force pushes a change and generates a repository containing something like this: * -- * -- B -- O -- O -- O (852ad86) \ N -- N -- N refs/heads/feature/refactor_reference (9e740bd) You should already have received notification emails for all of the O revisions, and so the following emails describe only the N revisions from the common base, B. Any revisions marked "omits" are not gone; other references still refer to them. Any revisions marked "discards" are gone forever. The 34 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 9e740bd4ab4a3a06506f1822aa95d574fe96ec5b Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 20 10:44:33 2015 +0100 Fix some other tests commit 5156de30d14da59f1545a7039925e1e662dcbba4 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 20 10:42:05 2015 +0100 Fix code after merge commit f5c2c3c8badb22f8fe52b58b51a565ff9cb34d05 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 20 10:17:00 2015 +0100 Fix api commit fcb72be7f24060bf5453326e49156c8c8945f311 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 20 10:16:41 2015 +0100 Nommer le label set commit 2ce324b0b651256460efe0e7a6718c40b7ad30de Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 20 10:16:28 2015 +0100 Fix some tests commit d8a13bcfdb4f93aef0836edc94310d1ac98f4e83 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 20 10:15:49 2015 +0100 Add fixme commit dbb5658db1968cf0f4d8a01db825062259b9ff6c Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 20 09:49:42 2015 +0100 Amélioration des logs + bien transformer les références vers référentiels + prise en compte des champs techniques commit ac539a758093c3c46ee599349f0f22a6e87bcd8a Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 20 09:48:04 2015 +0100 Suppression de la méthode loadForRead et renommage de l'autre en loadForm commit d563b907436ea780b3785af40932990d71aedbb3 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 20 08:44:35 2015 +0100 Suppression classe non utilisée commit 657b8b30e678456d1c47eb845569d1762d9b0288 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 20 08:44:21 2015 +0100 Déplacement du cache de rérentiels dans le module de l'API de service et intégration dans les tests commit 7fd9a31cc02b67052a9f0df79d0bb08b1c3240b1 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 20 08:43:30 2015 +0100 Ajout d'une méthode utile pour récupérer tous les types de lables d'un formulaire commit c90ed43ee00506736869739efda051562ec897ac Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 20 08:43:24 2015 +0100 Réajout de méthodes enlevées trop rapidemment commit 9ede930d17b76191a7a98d7aa2e67c0aa9c8cd17 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 20 08:43:18 2015 +0100 Fix generic commit 35a18ffa0ed0ce394b29960134c578c4784c9455 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 19 20:08:56 2015 +0100 Meilleure utilisation des ReferenceDto commit 2fc9a91bc104fca7805249becb2110f2ff316d0d Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 19 20:07:51 2015 +0100 Début de revue du code de l'application swing : y'a du boulot... commit 91f61e4c040cb3dcca05b04dcccd582b94a3145c Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 19 20:07:23 2015 +0100 amélioration du design des ReferenceSetDto (si on utilise des generics, on le fait jusqu'au bout :() + quelques corrections par ci-par là commit fa1235cd016662d32d9efee019dd13f654fe01ca Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 19 11:26:50 2015 +0100 Permettre aussi d'intégrer les ensembles de références sur les données métiers à la récupération d'un FormDto commit 5a951b73e843ec14767e3fc59c964ca029caa589 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 19 11:10:11 2015 +0100 Utilisation du système de requète sur l'écran TripSeine commit 76e2634bbbc7b966af28ffe0ca2eeb9101cbcfa9 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 19 11:09:48 2015 +0100 Mise en place du cache de réferentiels et intégration dans l'application swing commit 203b12208f29ad594ed34a9efa8964f885a59ef6 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 19 11:09:19 2015 +0100 Fix NPE commit 564ed132ac4fce02ab3d31347d4c9aa5686cc9fa Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 19 11:08:50 2015 +0100 Ajout au FormDto du nom des deux requètes qu'il peut utiliser commit 7b59358f099481f46b69bf3c079c1082758fa18b Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 19 11:08:19 2015 +0100 Permettre de transformer un ObserveReference en RefereceDto commit 8d921fec150ef5490e8830dfcac0f4ce83108da8 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 19 11:07:48 2015 +0100 Reformatage des définitions commit e8a38b20f791383683497a5c4049ead9f7243865 Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 17:53:12 2015 +0100 ajout des définitions pour les référentiels commit 366574f1b51e6cab179845fc267120e682148c5c Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 17:22:53 2015 +0100 ajout des définitions des requetes commit 28bb481cd50b1b051fe6754f36e6ce0ba554189b Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Nov 18 10:47:23 2015 +0100 Avoid NPe + improve code commit 42d49839a3f0e6581d1735f19e4270a7491b8d3c Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Nov 14 02:21:21 2015 +0100 Ajout d'une action pour recharger la configuration du serveur commit 01f6fb6dbdc60ff07af0c237521db0afdcde6f7e Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Nov 14 02:12:49 2015 +0100 remove dead code commit bc75e2133be1d6c69743c756b64db42c9b496863 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Nov 14 02:12:31 2015 +0100 introduction nouvelle api de references plus simple et mise en place commit 2ce56e4a5a8c3d5d5290e31445e5f8a2f82fe7db Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 12 09:45:18 2015 +0100 Début d'implantation d'un cache de référentiels (à finir) commit 8478b7844ae1bd7e7ebb38320897c2baf29aa34f Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 12 09:44:07 2015 +0100 Ajout d'un service pour récupérer des referecne set (à finir) commit e51a85b444f26639bb157779f42630722fe788dd Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 12 09:43:36 2015 +0100 Ajout de définition de requètes de données commit 4bb2bffeef3a3c38f154457cd43e13d25df5eccb Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 12 09:42:33 2015 +0100 Ajout d'une méthode toString pour faire un rendu simple d'un dto commit 3eac353f5e665d9f2b5d4f335982d98e7e8eeb71 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 12 09:41:33 2015 +0100 Ajout de méthodes pour faire un rendu i18n plus facile Summary of changes: .../src/main/filters/observe-ui.properties | 5 + .../main/java/fr/ird/observe/ui/ObserveMainUI.css | 22 +-- .../main/java/fr/ird/observe/ui/ObserveMainUI.jaxx | 8 +- .../shared/MoveActivityLonglinesUIAction.java | 205 ++++++++++++++++++++ .../actions/shared/MoveActivitySeinesUIAction.java | 207 ++++++++++++++++++++ .../ui/actions/shared/MoveRoutesUIAction.java | 205 ++++++++++++++++++++ .../actions/shared/MoveTripLonglinesUIAction.java | 14 +- .../ui/actions/shared/MoveTripSeinesUIAction.java | 14 +- .../ui/actions/shared/MoveTripsUIAction.java | 114 ++++++----- .../ird/observe/ui/content/list/ContentListUI.css | 10 +- .../ird/observe/ui/content/list/ContentListUI.jaxx | 13 +- .../ui/content/list/ContentListUIModel.java | 27 +-- .../list/impl/longline/ActivityLonglinesUI.css | 6 + .../list/impl/longline/ActivityLonglinesUI.jaxx | 2 + .../content/list/impl/longline/TripLonglinesUI.css | 9 +- .../list/impl/longline/TripLonglinesUI.jaxx | 22 +-- .../list/impl/longline/TripLonglinesUIModel.java | 25 --- .../content/list/impl/seine/ActivitySeinesUI.css | 6 + .../content/list/impl/seine/ActivitySeinesUI.jaxx | 2 + .../ui/content/list/impl/seine/RoutesUI.css | 6 + .../ui/content/list/impl/seine/RoutesUI.jaxx | 3 + .../ui/content/list/impl/seine/TripSeinesUI.css | 6 +- .../ui/content/list/impl/seine/TripSeinesUI.jaxx | 22 +-- .../content/list/impl/seine/TripSeinesUIModel.java | 33 ---- .../tree/ObserveNavigationTreeShowPopupAction.java | 208 +++++++++++++-------- .../java/fr/ird/observe/ui/tree/ObserveNode.java | 14 ++ .../actions/ChangeActivityRouteActionListener.java | 102 ++++++++++ .../actions/ChangeActivityTripActionListener.java | 101 ++++++++++ .../actions/ChangeRouteTripActionListener.java | 101 ++++++++++ .../actions/ChangeTripProgramActionListener.java | 74 +++----- .../ui/tree/actions/NodeChangeActionListener.java | 112 +++++++++++ .../MoveActivityLonglineNodeMenuPopulator.java | 66 +++++++ .../menu/MoveActivitySeineNodeMenuPopulator.java | 66 +++++++ .../ui/tree/menu/MoveNodeMenuPopulator.java | 40 ++++ .../ui/tree/menu/MoveRouteNodeMenuPopulator.java | 66 +++++++ .../ui/tree/menu/MoveTripNodeMenuPopulator.java | 76 ++++++++ .../ird/observe/ui/util/DecoratedNodeEntity.java | 39 ++++ .../observe-application-swing_en_GB.properties | 25 +++ .../observe-application-swing_es_ES.properties | 25 +++ .../observe-application-swing_fr_FR.properties | 23 ++- .../resources/icons/action-move-activities.png | Bin 0 -> 953 bytes .../main/resources/icons/action-move-routes.png | Bin 0 -> 943 bytes .../ActivityLonglineServiceController.java | 14 +- .../v1/seine/ActivitySeineServiceController.java | 11 ++ .../v1/seine/RouteServiceController.java | 11 ++ .../service/longline/ActivityLonglineService.java | 11 ++ .../service/seine/ActivitySeineService.java | 11 ++ .../services/service/seine/RouteService.java | 11 ++ .../services/service/AbstractServiceRestTest.java | 6 +- .../service/ReferentialServiceRestTest.java | 2 +- .../seine/TripSeineGearUseServiceRestTest.java | 4 +- .../longline/ActivityLonglineServiceTopia.java | 39 +++- .../service/seine/ActivitySeineServiceTopia.java | 39 +++- .../services/service/seine/RouteServiceTopia.java | 42 ++++- .../service/seine/TripSeineServiceTopia.java | 4 + 55 files changed, 1977 insertions(+), 352 deletions(-) create mode 100644 observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveActivityLonglinesUIAction.java create mode 100644 observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveActivitySeinesUIAction.java create mode 100644 observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveRoutesUIAction.java create mode 100644 observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeActivityRouteActionListener.java create mode 100644 observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeActivityTripActionListener.java create mode 100644 observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeRouteTripActionListener.java create mode 100644 observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/NodeChangeActionListener.java create mode 100644 observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveActivityLonglineNodeMenuPopulator.java create mode 100644 observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveActivitySeineNodeMenuPopulator.java create mode 100644 observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveNodeMenuPopulator.java create mode 100644 observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveRouteNodeMenuPopulator.java create mode 100644 observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveTripNodeMenuPopulator.java create mode 100644 observe-application-swing/src/main/java/fr/ird/observe/ui/util/DecoratedNodeEntity.java create mode 100644 observe-application-swing/src/main/resources/icons/action-move-activities.png create mode 100644 observe-application-swing/src/main/resources/icons/action-move-routes.png -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit 3eac353f5e665d9f2b5d4f335982d98e7e8eeb71 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 12 09:41:33 2015 +0100 Ajout de méthodes pour faire un rendu i18n plus facile --- .../entities/constants/ReferenceLocale.java | 31 ++----------------- .../referentiel/I18nReferenceEntities.java | 35 ++++++++++++++++++++++ 2 files changed, 37 insertions(+), 29 deletions(-) diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/constants/ReferenceLocale.java b/observe-entities/src/main/java/fr/ird/observe/entities/constants/ReferenceLocale.java index 227588c..ebb4ebd 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/constants/ReferenceLocale.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/constants/ReferenceLocale.java @@ -21,6 +21,7 @@ */ package fr.ird.observe.entities.constants; +import fr.ird.observe.entities.referentiel.I18nReferenceEntities; import fr.ird.observe.entities.referentiel.I18nReferenceEntity; import java.util.Locale; @@ -126,35 +127,7 @@ public enum ReferenceLocale { public <E extends I18nReferenceEntity> String getLabel(E i18nEntity) { - String result = null; - - switch (ordinal() + 1) { - case 1: - result = i18nEntity.getLabel1(); - break; - case 2: - result = i18nEntity.getLabel2(); - break; - case 3: - result = i18nEntity.getLabel3(); - break; - case 4: - result = i18nEntity.getLabel4(); - break; - case 5: - result = i18nEntity.getLabel5(); - break; - case 6: - result = i18nEntity.getLabel6(); - break; - case 7: - result = i18nEntity.getLabel7(); - break; - case 8: - result = i18nEntity.getLabel8(); - break; - } - + String result = I18nReferenceEntities.decorate(ordinal(), i18nEntity); return result; } diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/I18nReferenceEntities.java b/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/I18nReferenceEntities.java index e82d81f..8dcd892 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/I18nReferenceEntities.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/I18nReferenceEntities.java @@ -42,4 +42,39 @@ public class I18nReferenceEntities { } + public static <E extends I18nReferenceEntity> String decorate(int referenceLocaleOrdinal, E i18nEntity) { + + String result = null; + + switch (referenceLocaleOrdinal + 1) { + case 1: + result = i18nEntity.getLabel1(); + break; + case 2: + result = i18nEntity.getLabel2(); + break; + case 3: + result = i18nEntity.getLabel3(); + break; + case 4: + result = i18nEntity.getLabel4(); + break; + case 5: + result = i18nEntity.getLabel5(); + break; + case 6: + result = i18nEntity.getLabel6(); + break; + case 7: + result = i18nEntity.getLabel7(); + break; + case 8: + result = i18nEntity.getLabel8(); + break; + } + + return result; + + } + } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit 4bb2bffeef3a3c38f154457cd43e13d25df5eccb Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 12 09:42:33 2015 +0100 Ajout d'une méthode toString pour faire un rendu simple d'un dto --- .../entities/referentiel/ReferenceEntities.java | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/ReferenceEntities.java b/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/ReferenceEntities.java index 31d51c3..69f84aa 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/ReferenceEntities.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/ReferenceEntities.java @@ -23,6 +23,7 @@ package fr.ird.observe.entities.referentiel; */ import com.google.common.base.Predicate; +import com.google.common.collect.ImmutableMap; import fr.ird.observe.ObserveEntityEnum; import fr.ird.observe.entities.Entities; import fr.ird.observe.entities.constants.ReferenceStatus; @@ -32,6 +33,7 @@ import org.nuiton.topia.persistence.TopiaEntity; import java.util.Iterator; import java.util.List; +import java.util.Map; /** * Helper class around {@link ReferenceEntity}. @@ -89,6 +91,7 @@ public class ReferenceEntities { } public static final Predicate<? extends ReferenceEntity> IS_ACTIF_PREDICATE = new Predicate<ReferenceEntity>() { + @Override public boolean apply(ReferenceEntity input) { return ReferenceStatus.disabled != input.getStatus(); @@ -123,4 +126,45 @@ public class ReferenceEntities { <E extends TopiaEntity> void walk(Class<E> beanClass) throws Exception; } + public static <E extends ReferenceEntity> String toString(int referenceLocaleOrdinal, E entity) { + + String result = null; + if (entity != null) { + for (Map.Entry<Class<?>, ReferenceEntityToString> entry : TO_STRING_CACHE.entrySet()) { + + if (entry.getKey().isAssignableFrom(entity.getClass())) { + + ReferenceEntityToString<E> value = entry.getValue(); + result = value.toString(referenceLocaleOrdinal, entity); + break; + } + } + if (result == null && entity instanceof I18nReferenceEntity) { + + + result = I18nReferenceEntities.decorate(referenceLocaleOrdinal, (I18nReferenceEntity) entity); + } + } + + return result; + + } + + private static final ImmutableMap<Class<?>, ReferenceEntityToString> TO_STRING_CACHE = ImmutableMap + .<Class<?>, ReferenceEntityToString>builder() + .put(Species.class, new ReferenceEntityToString<Species>() { + + @Override + public String toString(int referenceLocaleOrdinal, Species entity) { + return entity.getScientificLabel(); + } + }) + .build(); + + + interface ReferenceEntityToString<E extends ReferenceEntity> { + + String toString(int referenceLocaleOrdinal, E entity); + } + } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit e51a85b444f26639bb157779f42630722fe788dd Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 12 09:43:36 2015 +0100 Ajout de définition de requètes de données --- .../services/service/ReferenceSetDefinition.java | 70 ++++++ .../services/service/ReferenceSetDefinitions.java | 253 +++++++++++++++++++++ .../service/ReferenceSetPropertyDefinition.java | 67 ++++++ .../services/service/ReferenceSetRequest.java | 31 +++ .../service/ReferenceSetRequestDefinition.java | 53 +++++ .../service/ReferenceSetRequestDefinitions.java | 39 ++++ .../service/ReferenceSetRequestKeyDefinition.java | 86 +++++++ .../service/ReferentialReferenceSetResult.java | 55 +++++ 8 files changed, 654 insertions(+) diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetDefinition.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetDefinition.java new file mode 100644 index 0000000..edac622 --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetDefinition.java @@ -0,0 +1,70 @@ +package fr.ird.observe.services.service; + +import com.google.common.collect.ImmutableSet; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.ReferenceSetDto; + +import java.io.Serializable; + +/** + * Pour définir ce que l'on doit retrouver dans un ensemble de références d'un même type. + * + * Created on 11/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ReferenceSetDefinition<D extends IdDto> implements Serializable{ + + private static final long serialVersionUID = 1L; + + /** + * Le type du dto qui doit être transformé en références. + * {@link ReferenceSetDto#getType()}. + */ + private final Class<D> type; + + private final ImmutableSet<ReferenceSetPropertyDefinition> properties; + + public ReferenceSetDefinition(Class<D> type, ImmutableSet<ReferenceSetPropertyDefinition> properties) { + this.type = type; + this.properties = properties; + } + + public Class<D> getType() { + return type; + } + + public ImmutableSet<ReferenceSetPropertyDefinition> getProperties() { + return properties; + } + + public static <D extends IdDto> Builder<D> builder(Class<D> type) { + return new Builder<>(type); + } + + public static class Builder<D extends IdDto> { + + private final Class<D> type; + + private final ImmutableSet.Builder<ReferenceSetPropertyDefinition> propertiesBuilder; + + public Builder(Class<D> type) { + this.type = type; + this.propertiesBuilder = ImmutableSet.builder(); + } + + public <O> Builder<D> addProperty(Class<O> type, String name) { + return addProperty(ReferenceSetPropertyDefinition.of(type, name)); + } + + public Builder<D> addProperty(ReferenceSetPropertyDefinition propertyDefinition) { + propertiesBuilder.add(propertyDefinition); + return this; + } + + public ReferenceSetDefinition<D> build() { + return new ReferenceSetDefinition<>(type, propertiesBuilder.build()); + } + } + +} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetDefinitions.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetDefinitions.java new file mode 100644 index 0000000..be4abc9 --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetDefinitions.java @@ -0,0 +1,253 @@ +package fr.ird.observe.services.service; + +import fr.ird.observe.services.dto.constants.GearType; +import fr.ird.observe.services.dto.referential.CountryDto; +import fr.ird.observe.services.dto.referential.FpaZoneDto; +import fr.ird.observe.services.dto.referential.GearCaracteristicDto; +import fr.ird.observe.services.dto.referential.GearCaracteristicTypeDto; +import fr.ird.observe.services.dto.referential.GearDto; +import fr.ird.observe.services.dto.referential.HarbourDto; +import fr.ird.observe.services.dto.referential.I18nReferentialDto; +import fr.ird.observe.services.dto.referential.LengthWeightParameterDto; +import fr.ird.observe.services.dto.referential.OceanDto; +import fr.ird.observe.services.dto.referential.OrganismDto; +import fr.ird.observe.services.dto.referential.PersonDto; +import fr.ird.observe.services.dto.referential.ProgramDto; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.SexDto; +import fr.ird.observe.services.dto.referential.SpeciesDto; +import fr.ird.observe.services.dto.referential.SpeciesGroupDto; +import fr.ird.observe.services.dto.referential.SpeciesListDto; +import fr.ird.observe.services.dto.referential.VesselDto; +import fr.ird.observe.services.dto.referential.VesselSizeCategoryDto; +import fr.ird.observe.services.dto.referential.VesselTypeDto; +import fr.ird.observe.services.dto.referential.longline.BaitHaulingStatusDto; +import fr.ird.observe.services.dto.referential.longline.BaitSettingStatusDto; +import fr.ird.observe.services.dto.referential.longline.BaitTypeDto; +import fr.ird.observe.services.dto.referential.longline.CatchFateLonglineDto; +import fr.ird.observe.services.dto.referential.longline.EncounterTypeDto; +import fr.ird.observe.services.dto.referential.longline.HealthnessDto; +import fr.ird.observe.services.dto.referential.longline.HookPositionDto; +import fr.ird.observe.services.dto.referential.longline.HookSizeDto; +import fr.ird.observe.services.dto.referential.longline.HookTypeDto; +import fr.ird.observe.services.dto.referential.longline.ItemHorizontalPositionDto; +import fr.ird.observe.services.dto.referential.longline.ItemVerticalPositionDto; +import fr.ird.observe.services.dto.referential.longline.LightsticksColorDto; +import fr.ird.observe.services.dto.referential.longline.LightsticksTypeDto; +import fr.ird.observe.services.dto.referential.longline.LineTypeDto; +import fr.ird.observe.services.dto.referential.longline.MaturityStatusDto; +import fr.ird.observe.services.dto.referential.longline.MitigationTypeDto; +import fr.ird.observe.services.dto.referential.longline.SensorBrandDto; +import fr.ird.observe.services.dto.referential.longline.SensorDataFormatDto; +import fr.ird.observe.services.dto.referential.longline.SensorTypeDto; +import fr.ird.observe.services.dto.referential.longline.SettingShapeDto; +import fr.ird.observe.services.dto.referential.longline.SizeMeasureTypeDto; +import fr.ird.observe.services.dto.referential.longline.StomacFullnessDto; +import fr.ird.observe.services.dto.referential.longline.TripTypeDto; +import fr.ird.observe.services.dto.referential.longline.VesselActivityLonglineDto; +import fr.ird.observe.services.dto.referential.longline.WeightMeasureTypeDto; +import fr.ird.observe.services.dto.referential.seine.DetectionModeDto; +import fr.ird.observe.services.dto.referential.seine.ObjectFateDto; +import fr.ird.observe.services.dto.referential.seine.ObjectOperationDto; +import fr.ird.observe.services.dto.referential.seine.ObjectTypeDto; +import fr.ird.observe.services.dto.referential.seine.ObservedSystemDto; +import fr.ird.observe.services.dto.referential.seine.ReasonForDiscardDto; +import fr.ird.observe.services.dto.referential.seine.ReasonForNoFishingDto; +import fr.ird.observe.services.dto.referential.seine.ReasonForNullSetDto; +import fr.ird.observe.services.dto.referential.seine.SpeciesFateDto; +import fr.ird.observe.services.dto.referential.seine.SpeciesStatusDto; +import fr.ird.observe.services.dto.referential.seine.SurroundingActivityDto; +import fr.ird.observe.services.dto.referential.seine.TransmittingBuoyOperationDto; +import fr.ird.observe.services.dto.referential.seine.TransmittingBuoyTypeDto; +import fr.ird.observe.services.dto.referential.seine.VesselActivitySeineDto; +import fr.ird.observe.services.dto.referential.seine.WeightCategoryDto; +import fr.ird.observe.services.dto.referential.seine.WindDto; + +/** + * Contient les définitions de tous les ensembles de référence utilisables dans les services. + * + * Created on 11/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public enum ReferenceSetDefinitions { + + COUNTRY(newDefaultDefinitionBuilder(CountryDto.class)), + + FPA_ZONE(newDefaultDefinitionBuilder(FpaZoneDto.class)), + + GEAR_CARACTERISTIC(newDefinitionBuilder(GearCaracteristicDto.class) + .addProperty(String.class, GearCaracteristicDto.PROPERTY_GEAR_CARACTERISTIC_TYPE)), + + GEAR_CARACTERISTIC_TYPE(newDefaultDefinitionBuilder(GearCaracteristicTypeDto.class)), + + GEAR(newDefaultDefinitionBuilder(GearDto.class)), + + HARBOUR(newDefinitionBuilder(HarbourDto.class) + .addProperty(String.class, HarbourDto.PROPERTY_CODE) + .addProperty(String.class, HarbourDto.PROPERTY_NAME) + .addProperty(String.class, HarbourDto.PROPERTY_LOCODE)), + + LENGTH_WEIGHT_PARAMETER(newDefinitionBuilder(LengthWeightParameterDto.class) + .addProperty(String.class, LengthWeightParameterDto.PROPERTY_CODE) + .addProperty(String.class, LengthWeightParameterDto.PROPERTY_OCEAN) + .addProperty(String.class, LengthWeightParameterDto.PROPERTY_SPECIES) + .addProperty(String.class, LengthWeightParameterDto.PROPERTY_LENGTH_WEIGHT_FORMULA) + .addProperty(String.class, LengthWeightParameterDto.PROPERTY_WEIGHT_LENGTH_FORMULA)), + + OCEAN(newDefaultDefinitionBuilder(OceanDto.class)), + + ORGANISM(newDefaultDefinitionBuilder(OrganismDto.class)), + + PERSON(newDefinitionBuilder(PersonDto.class) + .addProperty(String.class, PersonDto.PROPERTY_FIRST_NAME) + .addProperty(String.class, PersonDto.PROPERTY_LAST_NAME) + .addProperty(String.class, PersonDto.PROPERTY_CAPTAIN) + .addProperty(String.class, PersonDto.PROPERTY_DATA_ENTRY_OPERATOR) + .addProperty(String.class, PersonDto.PROPERTY_OBSERVER)), + + PROGRAM(newDefinitionBuilder(ProgramDto.class) + .addProperty(GearType.class, ProgramDto.PROPERTY_GEAR_TYPE) + .addProperty(String.class, ProgramDto.PROPERTY_GEAR_TYPE_PREFIX)), + + SEX(newDefaultDefinitionBuilder(SexDto.class)), + + SPECIES(newDefinitionBuilder(SpeciesDto.class) + .addProperty(String.class, SpeciesDto.PROPERTY_SCIENTIFIC_LABEL) + .addProperty(String.class, SpeciesDto.PROPERTY_HOME_ID) + .addProperty(String.class, SpeciesDto.PROPERTY_LENGTH_MEASURE_TYPE)), + + SPECIES_GROUP(newDefaultDefinitionBuilder(SpeciesGroupDto.class)), + + SPECIES_LIST(newDefaultDefinitionBuilder(SpeciesListDto.class)), + + VESSEL_SIZE_CATEGORY(newDefinitionBuilder(VesselSizeCategoryDto.class) + .addProperty(String.class, VesselSizeCategoryDto.PROPERTY_GAUGE_LABEL) + .addProperty(String.class, VesselSizeCategoryDto.PROPERTY_CAPACITY_LABEL)), + + VESSEL(newDefaultDefinitionBuilder(VesselDto.class)), + + VESSEL_TYPE(newDefaultDefinitionBuilder(VesselTypeDto.class)), + + // -------------------------------------------------------------------------------------------------------------- // + // -- REFERENTIAL LONGLINE -------------------------------------------------------------------------------------- // + // -------------------------------------------------------------------------------------------------------------- // + + BAIT_HAULING_STATUS(newDefaultDefinitionBuilder(BaitHaulingStatusDto.class)), + + BAIT_SETTING_STATUS(newDefaultDefinitionBuilder(BaitSettingStatusDto.class)), + + BAITTYPE(newDefaultDefinitionBuilder(BaitTypeDto.class)), + + CATCH_FATE_LONGLINE(newDefaultDefinitionBuilder(CatchFateLonglineDto.class)), + + ENCOUNTER_TYPE(newDefaultDefinitionBuilder(EncounterTypeDto.class)), + + HEALTHNESS(newDefaultDefinitionBuilder(HealthnessDto.class)), + + HOOK_POSITION(newDefaultDefinitionBuilder(HookPositionDto.class)), + + HOOK_SIZE(newDefaultDefinitionBuilder(HookSizeDto.class)), + + HOOK_TYPE(newDefaultDefinitionBuilder(HookTypeDto.class)), + + ITEM_HORIZONTAL_POSITION(newDefaultDefinitionBuilder(ItemHorizontalPositionDto.class)), + + ITEM_VERTICAL_POSITION(newDefaultDefinitionBuilder(ItemVerticalPositionDto.class)), + + LIGHTSTICKS_COLOR(newDefaultDefinitionBuilder(LightsticksColorDto.class)), + + LIGHTSTICKS_TYPE(newDefaultDefinitionBuilder(LightsticksTypeDto.class)), + + LINE_TYPE(newDefaultDefinitionBuilder(LineTypeDto.class)), + + MATURITY_STATUS(newDefaultDefinitionBuilder(MaturityStatusDto.class)), + + MITIGATION_TYPE(newDefaultDefinitionBuilder(MitigationTypeDto.class)), + + SENSOR_BRAND(newDefinitionBuilder(SensorBrandDto.class) + .addProperty(String.class, SensorBrandDto.PROPERTY_BRAND_NAME)), + + SENSOR_DATA_FORMAT(newDefaultDefinitionBuilder(SensorDataFormatDto.class)), + + SENSOR_TYPE(newDefaultDefinitionBuilder(SensorTypeDto.class)), + + SETTING_SHAPE(newDefaultDefinitionBuilder(SettingShapeDto.class)), + + SIZE_MEASURE_TYPE(newDefaultDefinitionBuilder(SizeMeasureTypeDto.class)), + + STOMAC_FULLNESS(newDefaultDefinitionBuilder(StomacFullnessDto.class)), + + TRIP_TYPE(newDefaultDefinitionBuilder(TripTypeDto.class)), + + VESSEL_ACTIVITY_LONGLINE(newDefaultDefinitionBuilder(VesselActivityLonglineDto.class)), + + WEIGHT_MEASURE_TYPE(newDefaultDefinitionBuilder(WeightMeasureTypeDto.class)), + + // -------------------------------------------------------------------------------------------------------------- // + // -- REFERENTIAL SEINE ----------------------------------------------------------------------------------------- // + // -------------------------------------------------------------------------------------------------------------- // + + DETECTION_MODE(newDefaultDefinitionBuilder(DetectionModeDto.class)), + + OBJECT_FATE(newDefaultDefinitionBuilder(ObjectFateDto.class)), + + OBJECT_OPERATION(newDefaultDefinitionBuilder(ObjectOperationDto.class)), + + OBJECT_TYPE(newDefaultDefinitionBuilder(ObjectTypeDto.class)), + + OBSERVED_SYSTEM(newDefaultDefinitionBuilder(ObservedSystemDto.class)), + + REASON_FOR_DISCARD(newDefaultDefinitionBuilder(ReasonForDiscardDto.class)), + + REASON_FOR_NO_FISHING(newDefaultDefinitionBuilder(ReasonForNoFishingDto.class)), + + REASON_FOR_NULL_SET(newDefaultDefinitionBuilder(ReasonForNullSetDto.class)), + + SPECIES_FATE(newDefaultDefinitionBuilder(SpeciesFateDto.class)), + + SPECIES_STATUS(newDefaultDefinitionBuilder(SpeciesStatusDto.class)), + + SURROUNDING_ACTIVITY(newDefaultDefinitionBuilder(SurroundingActivityDto.class)), + + TRANSMITTING_BUOYO_PERATION(newDefaultDefinitionBuilder(TransmittingBuoyOperationDto.class)), + + TRANSMITTING_BUOY_TYPE(newDefaultDefinitionBuilder(TransmittingBuoyTypeDto.class)), + + VESSEL_ACTIVITY_SEINE(newDefaultDefinitionBuilder(VesselActivitySeineDto.class)), + + WEIGHT_CATEGORY(newDefinitionBuilder(WeightCategoryDto.class) + .addProperty(String.class, WeightCategoryDto.PROPERTY_LABEL) + .addProperty(String.class, WeightCategoryDto.PROPERTY_SPECIES)), + + WIND(newDefinitionBuilder(WindDto.class) + .addProperty(String.class, WindDto.PROPERTY_LABEL) + .addProperty(String.class, WindDto.PROPERTY_SPEED_RANGE) + ); + + private final ReferenceSetDefinition definition; + + ReferenceSetDefinitions(ReferenceSetDefinition.Builder definition) { + this.definition = definition.build(); + } + + public ReferenceSetDefinition<?> getDefinition() { + return definition; + } + + protected static <R extends ReferentialDto> ReferenceSetDefinition.Builder newDefinitionBuilder(Class<R> type) { + ReferenceSetDefinition.Builder<R> builder = ReferenceSetDefinition.builder(type); + return builder; + } + + protected static <R extends ReferentialDto> ReferenceSetDefinition.Builder newDefaultDefinitionBuilder(Class<R> type) { + ReferenceSetDefinition.Builder<R> builder = ReferenceSetDefinition + .builder(type) + .addProperty(String.class, ReferentialDto.PROPERTY_CODE); + if (I18nReferentialDto.class.isAssignableFrom(type)) { + builder.addProperty(String.class, I18nReferentialDto.PROPERTY_LABEL); + } + return builder; + } + +} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetPropertyDefinition.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetPropertyDefinition.java new file mode 100644 index 0000000..79035bd --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetPropertyDefinition.java @@ -0,0 +1,67 @@ +package fr.ird.observe.services.service; + +import com.google.common.base.MoreObjects; + +import java.io.Serializable; +import java.util.Objects; + +/** + * Pour définir une propriété à remonter dans un ensemble de référence. + * + * Created on 11/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ReferenceSetPropertyDefinition<O> implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * Le type de la propriété. + */ + private final Class<O> type; + + /** + * Le nom de la propriété. + */ + private final String name; + + public static <O> ReferenceSetPropertyDefinition<O> of(Class<O> type, String name) { + return new ReferenceSetPropertyDefinition<>(type, name); + } + + public ReferenceSetPropertyDefinition(Class<O> type, String name) { + this.type = type; + this.name = name; + } + + public Class<O> getType() { + return type; + } + + public String getName() { + return name; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof ReferenceSetPropertyDefinition)) return false; + ReferenceSetPropertyDefinition<?> that = (ReferenceSetPropertyDefinition<?>) o; + return Objects.equals(type, that.type) && + Objects.equals(name, that.name); + } + + @Override + public int hashCode() { + return Objects.hash(type, name); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("type", type) + .add("name", name) + .toString(); + } +} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetRequest.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetRequest.java new file mode 100644 index 0000000..4801de4 --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetRequest.java @@ -0,0 +1,31 @@ +package fr.ird.observe.services.service; + +import com.google.common.collect.ImmutableMap; + +import java.util.Date; + +/** + * Created on 10/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ReferenceSetRequest { + + private final String requestName; + + private final ImmutableMap<String, Date> lastUpdateDates; + + public ReferenceSetRequest(String requestName, ImmutableMap<String, Date> lastUpdateDates) { + this.requestName = requestName; + this.lastUpdateDates = lastUpdateDates; + } + + public String getRequestName() { + return requestName; + } + + public ImmutableMap<String, Date> getLastUpdateDates() { + return lastUpdateDates; + } + +} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetRequestDefinition.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetRequestDefinition.java new file mode 100644 index 0000000..2d49605 --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetRequestDefinition.java @@ -0,0 +1,53 @@ +package fr.ird.observe.services.service; + +import com.google.common.collect.ImmutableSet; +import fr.ird.observe.services.dto.IdDto; + +import java.io.Serializable; + +/** + * Pour définir une demande de récupération d'ensemble de références. + * + * Created on 11/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ReferenceSetRequestDefinition implements Serializable { + + private static final long serialVersionUID = 1L; + + private final ImmutableSet<ReferenceSetRequestKeyDefinition> keys; + + public ReferenceSetRequestDefinition(ImmutableSet<ReferenceSetRequestKeyDefinition> keys) { + this.keys = keys; + } + + public ImmutableSet<ReferenceSetRequestKeyDefinition> getKeys() { + return keys; + } + + public static <D extends IdDto> Builder<D> builder(Class<D> type) { + return new Builder<>(type); + } + + public static class Builder<D extends IdDto> { + + private final Class<D> parentType; + + private final ImmutableSet.Builder<ReferenceSetRequestKeyDefinition> keysBuilder; + + public Builder(Class<D> parentType) { + this.parentType = parentType; + this.keysBuilder = ImmutableSet.builder(); + } + + public Builder<D> addKey(String name, ReferenceSetDefinitions propertyDefinition) { + keysBuilder.add(new ReferenceSetRequestKeyDefinition<>(parentType, propertyDefinition.getDefinition(), name)); + return this; + } + + public ReferenceSetRequestDefinition build() { + return new ReferenceSetRequestDefinition(keysBuilder.build()); + } + } +} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetRequestDefinitions.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetRequestDefinitions.java new file mode 100644 index 0000000..eef1c48 --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetRequestDefinitions.java @@ -0,0 +1,39 @@ +package fr.ird.observe.services.service; + +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.seine.TripSeineDto; + +/** + * Contient les définitions de tous les requêtes que les services proposent. + * + * Created on 11/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public enum ReferenceSetRequestDefinitions { + + TRIP_SEINE_FORM(newBuilder(TripSeineDto.class) + .addKey(TripSeineDto.PROPERTY_OBSERVER, ReferenceSetDefinitions.PERSON) + .addKey(TripSeineDto.PROPERTY_CAPTAIN, ReferenceSetDefinitions.PERSON) + .addKey(TripSeineDto.PROPERTY_DATA_ENTRY_OPERATOR, ReferenceSetDefinitions.PERSON) + .addKey(TripSeineDto.PROPERTY_VESSEL, ReferenceSetDefinitions.VESSEL) + .addKey(TripSeineDto.PROPERTY_OCEAN, ReferenceSetDefinitions.OCEAN) + .addKey(TripSeineDto.PROPERTY_DEPARTURE_HARBOUR, ReferenceSetDefinitions.HARBOUR) + .addKey(TripSeineDto.PROPERTY_LANDING_HARBOUR, ReferenceSetDefinitions.HARBOUR) + .addKey(TripSeineDto.PROPERTY_PROGRAM, ReferenceSetDefinitions.PROGRAM)),; + + public final ReferenceSetRequestDefinition definition; + + ReferenceSetRequestDefinitions(ReferenceSetRequestDefinition.Builder definitionBuilder) { + this.definition = definitionBuilder.build(); + } + + public ReferenceSetRequestDefinition getDefinition() { + return definition; + } + + public static <D extends IdDto> ReferenceSetRequestDefinition.Builder<D> newBuilder(Class<D> parentType) { + return new ReferenceSetRequestDefinition.Builder<>(parentType); + } + +} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetRequestKeyDefinition.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetRequestKeyDefinition.java new file mode 100644 index 0000000..8d72a4f --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetRequestKeyDefinition.java @@ -0,0 +1,86 @@ +package fr.ird.observe.services.service; + +import com.google.common.base.Function; +import com.google.common.collect.Iterables; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.referential.ReferentialDto; + +import java.util.Objects; + +/** + * Created on 10/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ReferenceSetRequestKeyDefinition<D extends IdDto> { + + private final Class<? extends IdDto> parentType; + + private final ReferenceSetDefinition<D> referenceSetDefinition; + + private final String name; + + private final String[] propertyNames; + + private final Class<?>[] propertyTypes; + + public ReferenceSetRequestKeyDefinition(Class<? extends IdDto> parentType, ReferenceSetDefinition<D> referenceSetDefinition, String name) { + this.parentType = parentType; + this.referenceSetDefinition = referenceSetDefinition; + this.name = name; + this.propertyNames = Iterables.toArray(Iterables.transform(referenceSetDefinition.getProperties(), new Function<ReferenceSetPropertyDefinition, String>() { + + @Override + public String apply(ReferenceSetPropertyDefinition input) { + return input.getName(); + } + }), String.class); + this.propertyTypes = Iterables.toArray(Iterables.transform(referenceSetDefinition.getProperties(), new Function<ReferenceSetPropertyDefinition, Class<?>>() { + + @Override + public Class<?> apply(ReferenceSetPropertyDefinition input) { + return input.getType(); + } + }), Class.class); + } + + public Class<? extends IdDto> getParentType() { + return parentType; + } + + public Class<D> getType() { + return referenceSetDefinition.getType(); + } + + public String[] getPropertyNames() { + return propertyNames; + } + + public Class<?>[] getPropertyTypes() { + return propertyTypes; + } + + public String getName() { + return name; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof ReferenceSetRequestKeyDefinition)) return false; + ReferenceSetRequestKeyDefinition that = (ReferenceSetRequestKeyDefinition) o; + return Objects.equals(parentType, that.parentType) && + Objects.equals(referenceSetDefinition.getType(), that.referenceSetDefinition.getType()) && + Objects.equals(name, that.name); + } + + @Override + public int hashCode() { + return Objects.hash(parentType, referenceSetDefinition.getType(), name); + } + + public boolean isReferential() { + Class<?> type = referenceSetDefinition.getType(); + return type.isAssignableFrom(ReferentialDto.class); + } +} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialReferenceSetResult.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialReferenceSetResult.java new file mode 100644 index 0000000..1de8e9e --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialReferenceSetResult.java @@ -0,0 +1,55 @@ +package fr.ird.observe.services.service; + +import com.google.common.collect.ImmutableMap; +import fr.ird.observe.services.dto.ReferenceSetDto; + +/** + * Created on 10/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ReferentialReferenceSetResult { + + private final ReferenceSetRequest request; + + private final ImmutableMap<String, ReferenceSetDto> referenceSetsMap; + + public ReferentialReferenceSetResult(ReferenceSetRequest request, ImmutableMap<String, ReferenceSetDto> referenceSetsMap) { + this.request = request; + this.referenceSetsMap = referenceSetsMap; + } + + public ReferenceSetRequest getRequest() { + return request; + } + + public ImmutableMap<String, ReferenceSetDto> getReferenceSetsMap() { + return referenceSetsMap; + } + + public static Builder builder(final ReferenceSetRequest request) { + return new Builder(request); + } + + public static class Builder { + + private final ReferenceSetRequest request; + + private final ImmutableMap.Builder<String, ReferenceSetDto> referenceSetsMapBuilder; + + public Builder(ReferenceSetRequest request) { + this.request = request; + this.referenceSetsMapBuilder = ImmutableMap.builder(); + } + + public Builder addKey(String name, ReferenceSetDto referenceSet) { + referenceSetsMapBuilder.put(name, referenceSet); + return this; + } + + public ReferentialReferenceSetResult build() { + return new ReferentialReferenceSetResult(request, referenceSetsMapBuilder.build()); + } + } + +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit 8478b7844ae1bd7e7ebb38320897c2baf29aa34f Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 12 09:44:07 2015 +0100 Ajout d'un service pour récupérer des referecne set (à finir) --- .../v1/ReferenceSetServiceController.java | 28 ++++ .../services/service/ReferenceSetService.java | 24 +++ .../fr/ird/observe/services/dto/ReferenceDto.java | 9 +- .../dto/referential/ReferentialReferenceDto.java | 6 + .../EntityToReferentialReferenceDtoBuilder.java | 113 +++++++++++++- .../services/service/ReferenceSetServiceTopia.java | 162 +++++++++++++++++++++ 6 files changed, 339 insertions(+), 3 deletions(-) diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferenceSetServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferenceSetServiceController.java new file mode 100644 index 0000000..7dcc967 --- /dev/null +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferenceSetServiceController.java @@ -0,0 +1,28 @@ +package fr.ird.observe.application.web.controller.v1; + +import fr.ird.observe.services.service.ReferenceSetRequest; +import fr.ird.observe.services.service.ReferenceSetService; +import fr.ird.observe.services.service.ReferentialReferenceSetResult; + +/** + * Created on 11/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ReferenceSetServiceController extends ObserveAuthenticatedServiceControllerSupport<ReferenceSetService> implements ReferenceSetService { + + public ReferenceSetServiceController() { + super(ReferenceSetService.class); + } + + @Override + public ReferentialReferenceSetResult loadDataReferenceSets(ReferenceSetRequest request) { + return service.loadDataReferenceSets(request); + } + + @Override + public ReferentialReferenceSetResult loadReferentialReferenceSets(ReferenceSetRequest request) { + return service.loadReferentialReferenceSets(request); + } + +} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetService.java new file mode 100644 index 0000000..36f7d0e --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetService.java @@ -0,0 +1,24 @@ +package fr.ird.observe.services.service; + +import fr.ird.observe.services.ObserveService; +import fr.ird.observe.services.dto.ReferenceSetDto; +import fr.ird.observe.services.spi.ReadDataPermission; +import fr.ird.observe.services.spi.ReadReferentialPermission; + +/** + * Pour gérer les {@link ReferenceSetDto}. + * + * Created on 11/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public interface ReferenceSetService extends ObserveService { + + @ReadDataPermission + ReferentialReferenceSetResult loadDataReferenceSets(ReferenceSetRequest request); + + @ReadReferentialPermission + ReferentialReferenceSetResult loadReferentialReferenceSets(ReferenceSetRequest request); + + +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceDto.java index 607195d..7301ecf 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceDto.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceDto.java @@ -66,7 +66,14 @@ public class ReferenceDto<D extends IdDto> extends AbstractReferenceDto { init(type, false, labelPropertyNames); } - public void init(Class<D> type, boolean convertToReference,Iterable<String> labelPropertyNames) { + public void init(Class<D> type, String[] labelPropertyNames, Class[] labelPropertyTypes, Serializable... labelPropertyValues) { + this.type = type; + this.labelPropertyNames = Arrays.asList(labelPropertyNames); + this.labelPropertyValues = labelPropertyValues; + this.labelPropertyTypes = labelPropertyTypes; + } + + public void init(Class<D> type, boolean convertToReference, Iterable<String> labelPropertyNames) { this.type = type; this.labelPropertyNames = Lists.newArrayList(labelPropertyNames); this.labelPropertyValues = new Serializable[this.labelPropertyNames.size()]; diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceDto.java index 982bc41..b594ae4 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceDto.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceDto.java @@ -53,6 +53,12 @@ public class ReferentialReferenceDto<D extends ReferentialDto> extends AbstractR return super.getType(); } + @Override + public void init(Class type, String[] labelPropertyNames, Class[] labelPropertyTypes, Serializable... labelPropertyValues) { + + super.init(type, labelPropertyNames, labelPropertyTypes, labelPropertyValues); + } + public void setPropertyValue(ReferentialLocale referentialLocale, String propertyName, Serializable propertyValue) { Preconditions.checkNotNull(referentialLocale, "referentialLocale parameter can't be null"); Preconditions.checkNotNull(propertyName, "propertyName parameter can't be null"); diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToReferentialReferenceDtoBuilder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToReferentialReferenceDtoBuilder.java index 2283ad3..25148fe 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToReferentialReferenceDtoBuilder.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToReferentialReferenceDtoBuilder.java @@ -24,6 +24,7 @@ package fr.ird.observe.services.builder; import com.google.common.base.Function; import com.google.common.base.Preconditions; +import fr.ird.observe.entities.referentiel.ReferenceEntities; import fr.ird.observe.entities.referentiel.ReferenceEntity; import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.ObserveDtoBinders; @@ -32,12 +33,16 @@ import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; import fr.ird.observe.services.dto.referential.ReferentialReferenceDtos; +import fr.ird.observe.services.service.ReferenceSetRequestKeyDefinition; import org.hibernate.Hibernate; import org.hibernate.proxy.HibernateProxy; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.util.beans.Binder; +import org.nuiton.util.beans.BinderFactory; import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; import java.util.Map; import java.util.Set; @@ -50,6 +55,110 @@ import java.util.Set; */ public class EntityToReferentialReferenceDtoBuilder<E extends ReferenceEntity, D extends ReferentialDto> { + private Class<D> type; + + private Binder<E, E> binder; + + private String[] propertyNames; + + private String[] entityPropertyNames; + + private Class<?>[] propertyTypes; + + private int referentialLocaleOrdinal; + + public static <E extends ReferenceEntity, D extends ReferentialDto> EntityToReferentialReferenceDtoBuilder<E, D> of(ReferentialLocale referentialLocale, ReferenceSetRequestKeyDefinition<D> requestKeyDefinition, Class<E> entityType) { + + EntityToReferentialReferenceDtoBuilder<E, D> referenceDtoBuilder = new EntityToReferentialReferenceDtoBuilder<>(); + + referenceDtoBuilder.type = requestKeyDefinition.getType(); + referenceDtoBuilder.referentialLocaleOrdinal = referentialLocale.ordinal(); + referenceDtoBuilder.binder = BinderFactory.newBinder(entityType); + referenceDtoBuilder.propertyNames = requestKeyDefinition.getPropertyNames(); + + List<String> entityPropertyNames = new ArrayList<>(); + + for (String propertyName : referenceDtoBuilder.propertyNames) { + + if (ReferentialReferenceDto.PROPERTY_LABEL.contains(propertyName)) { + propertyName = referentialLocale.getLibelle(); + } + entityPropertyNames.add(propertyName); + } + referenceDtoBuilder.entityPropertyNames = entityPropertyNames.toArray(new String[entityPropertyNames.size()]); + referenceDtoBuilder.propertyTypes = requestKeyDefinition.getPropertyTypes(); + + return referenceDtoBuilder; + + } + + public ReferentialReferenceDto<D> build(E entity) { + + Preconditions.checkNotNull(entity, "'entity' can't be null"); + + // on extrait l' entité du proxy hibernate + if (entity instanceof HibernateProxy) { + Hibernate.initialize(entity); + entity = (E) ((HibernateProxy) entity).getHibernateLazyInitializer().getImplementation(); + } + + Map<String, Object> entityProperties = binder.obtainProperties(entity, true, entityPropertyNames); + + Serializable[] propertyValues = new Serializable[propertyTypes.length]; + for (int i = 0; i < propertyTypes.length; i++) { + String propertyName = propertyNames[i]; + + Serializable propertyValue = (Serializable) entityProperties.get(propertyName); + if (propertyValue != null) { + + Class<?> propertyType = propertyTypes[i]; + + if (propertyValue instanceof ReferenceEntity) { + + ReferenceEntity referentialEntity = (ReferenceEntity) propertyValue; + if (String.class.equals(propertyType)) { + + // Conversion + + propertyValue = ReferenceEntities.toString(referentialLocaleOrdinal, referentialEntity); + + } else { + + // on veut récupérer une référence + //TODO + + } + + } else { + + propertyValue = transform(propertyValue); + + } + + Preconditions.checkState(propertyType.isAssignableFrom(propertyValue.getClass()), "Le type de la propriété " + propertyName + " devrait être du type " + propertyType.getName() + " mais vaut: " + propertyValue); + + } + + propertyValues[i] = propertyValue; + + } + + ReferentialReferenceDto<D> result = new ReferentialReferenceDto<>(); + result.init(type, propertyNames, propertyTypes, propertyValues); + + result.setId(entity.getTopiaId()); + result.setEnabled(entity.isEnabled()); + result.setNeedComment(entity.isNeedComment()); + + result.setVersion(entity.getTopiaVersion()); + result.setCreateDate(entity.getTopiaCreateDate()); + result.setLastUpdate(entity.getLastUpdate()); + result.setEnabled(fr.ird.observe.entities.constants.ReferenceStatus.enabled == entity.getStatus()); + + return result; + + } + public static <E extends ReferenceEntity, D extends ReferentialDto> ReferentialReferenceDto<D> build(Class<D> dtoType, ReferentialLocale referentialLocale, E entity) { Preconditions.checkNotNull(dtoType, "'dtoType' can't be null"); @@ -110,12 +219,12 @@ public class EntityToReferentialReferenceDtoBuilder<E extends ReferenceEntity, D } - protected static Object transform(Object propertyValue) { + protected static Serializable transform(Object propertyValue) { Function function = ObserveDtosInitializer.getEntityToDtoFunction(propertyValue); if (function != null) { propertyValue = function.apply(propertyValue); } - return propertyValue; + return (Serializable) propertyValue; } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferenceSetServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferenceSetServiceTopia.java new file mode 100644 index 0000000..3178da1 --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferenceSetServiceTopia.java @@ -0,0 +1,162 @@ +package fr.ird.observe.services.service; + +import com.google.common.base.Optional; +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableMap; +import fr.ird.observe.entities.referentiel.ReferenceEntity; +import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.builder.EntityToReferentialReferenceDtoBuilder; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.ReferenceSetDto; +import fr.ird.observe.services.dto.ReferenceSetDtos; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; +import fr.ird.observe.services.entity.EntitiesExtractor; +import org.nuiton.topia.persistence.TopiaEntity; + +import java.util.Collections; +import java.util.Date; +import java.util.LinkedHashSet; +import java.util.Map; + +/** + * Created on 11/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ReferenceSetServiceTopia extends ObserveServiceTopia implements ReferenceSetService { + + @Override + public ReferentialReferenceSetResult loadDataReferenceSets(ReferenceSetRequest request) { + String requestName = request.getRequestName(); + ReferenceSetRequestDefinitions requestDefinitions = ReferenceSetRequestDefinitions.valueOf(requestName); + if (requestDefinitions == null) { + throw new IllegalArgumentException("No request with name " + requestName + "registred"); + } + + ReferenceSetRequestDefinition requestDefinition = requestDefinitions.getDefinition(); + + ReferentialReferenceSetResult.Builder resultBuilder = new ReferentialReferenceSetResult.Builder(request); + + for (ReferenceSetRequestKeyDefinition requestKeyDefinition : requestDefinition.getKeys()) { + + boolean referential = requestKeyDefinition.isReferential(); + Preconditions.checkArgument(!referential, "Can't obtain referenceSet of referential here, but try with " + requestKeyDefinition); + + String name = requestKeyDefinition.getName(); + + ReferenceSetDto referenceSet = loadDataReferenceSet(requestKeyDefinition); + resultBuilder.addKey(name, referenceSet); + + } + + return resultBuilder.build(); + + } + + @Override + public ReferentialReferenceSetResult loadReferentialReferenceSets(ReferenceSetRequest request) { + + String requestName = request.getRequestName(); + ReferenceSetRequestDefinitions requestDefinitions = ReferenceSetRequestDefinitions.valueOf(requestName); + if (requestDefinitions == null) { + throw new IllegalArgumentException("No request with name " + requestName + "registred"); + } + + ReferenceSetRequestDefinition requestDefinition = requestDefinitions.getDefinition(); + + ReferentialReferenceSetResult.Builder resultBuilder = new ReferentialReferenceSetResult.Builder(request); + ImmutableMap<String, Date> lastUpdateDates = request.getLastUpdateDates(); + + for (ReferenceSetRequestKeyDefinition requestKeyDefinition : requestDefinition.getKeys()) { + + boolean referential = requestKeyDefinition.isReferential(); + Preconditions.checkArgument(referential, "Can't obtain referenceSet of data here, but try with " + requestKeyDefinition); + + String name = requestKeyDefinition.getName(); + Date lastUpdateDate = lastUpdateDates.get(name); + + ReferenceSetDto referenceSet = loadReferentialReferenceSet(requestKeyDefinition, lastUpdateDate); + resultBuilder.addKey(name, referenceSet); + } + + return resultBuilder.build(); + + } + + protected <D extends IdDto> ReferenceSetDto<D> loadDataReferenceSet(ReferenceSetRequestKeyDefinition<D> requestKeyDefinition) { + + Class<D> type = requestKeyDefinition.getType(); + Class<TopiaEntity> entityType = getEntityType(type); + String name = requestKeyDefinition.getName(); + + Iterable<TopiaEntity> entitiesExtractor = getEntities(requestKeyDefinition, Collections.<String, Object>emptyMap()); + + //TODO + ReferenceSetDto<D> referenceSet = null; + + return referenceSet; + } + + protected <D extends ReferentialDto, E extends ReferenceEntity> ReferenceSetDto<D> loadReferentialReferenceSet(ReferenceSetRequestKeyDefinition<D> requestKeyDefinition, Date lastUpdateDate) { + + Class<D> type = requestKeyDefinition.getType(); + Class<E> entityType = getEntityType(type); + String name = requestKeyDefinition.getName(); + + Optional<Date> lastUpdateOptional = getLastUpdate(entityType); + + ReferenceSetDto<D> referenceSet; + if (lastUpdateOptional.isPresent() && lastUpdateOptional.get().after(lastUpdateDate)) { + + EntityToReferentialReferenceDtoBuilder<E, D> referenceBuilder = EntityToReferentialReferenceDtoBuilder.of(serviceContext.getReferentialLocale(), requestKeyDefinition, entityType); + + Iterable<E> entities = getEntities(requestKeyDefinition, Collections.<String, Object>emptyMap()); + + LinkedHashSet<ReferentialReferenceDto<D>> labels = new LinkedHashSet<>(); + for (E entity : entities) { + + ReferentialReferenceDto<D> dto = referenceBuilder.build(entity); + labels.add(dto); + + } + referenceSet = ReferenceSetDtos.newReferenceSetDto(type, name, labels, lastUpdateOptional.get()); + + + } else { + + referenceSet = null; + + } + + return referenceSet; + } + + + protected <E extends TopiaEntity, D extends IdDto> Iterable<E> getEntities(ReferenceSetRequestKeyDefinition<D> requestKeyDefinition, + Map<String, Object> dataContext) { + + + Class<D> type = requestKeyDefinition.getType(); + Class<E> entityType = getEntityType(type); + Class<TopiaEntity> entityParentType = getEntityType(requestKeyDefinition.getParentType()); + String name = requestKeyDefinition.getName(); + + Iterable<E> entities; + + EntitiesExtractor<E> entitiesExtractor = serviceContext.getEntitiesSetFactory().newEntitiesSet(entityParentType, + entityType, + name); + + if (entitiesExtractor == null) { + + entities = loadEntities(entityType); + + } else { + entities = entitiesExtractor.getEntities(serviceContext.getTopiaPersistenceContext(), dataContext); + } + + return entities; + } + +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit 2ce56e4a5a8c3d5d5290e31445e5f8a2f82fe7db Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 12 09:45:18 2015 +0100 Début d'implantation d'un cache de référentiels (à finir) --- .../fr/ird/observe/db/ObserveReferentialCache.java | 61 ++++++++++++++++++++++ .../ird/observe/db/ObserveReferentialCacheKey.java | 33 ++++++++++++ 2 files changed, 94 insertions(+) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveReferentialCache.java b/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveReferentialCache.java new file mode 100644 index 0000000..0a7c8b3 --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveReferentialCache.java @@ -0,0 +1,61 @@ +package fr.ird.observe.db; + +import fr.ird.observe.services.dto.ReferenceSetDto; +import fr.ird.observe.services.dto.referential.ReferentialDto; + +import java.io.Closeable; +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * Created on 10/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveReferentialCache implements Closeable { + + private final Map<ObserveReferentialCacheKey<?>, ReferenceSetDto> cache; + + public ObserveReferentialCache() { + this.cache = new LinkedHashMap<>(); + } + + public <D extends ReferentialDto> ReferenceSetDto<D> getReferenceSet(ObserveSwingDataSource dataSource, Class<D> type, String optionalContext) { + + ObserveReferentialCacheKey<D> referentialCacheKey = ObserveReferentialCacheKey.of(type, optionalContext); + ReferenceSetDto<D> result = getReferenceSet0(dataSource, referentialCacheKey); + return result; + } + + protected <D extends ReferentialDto> ReferenceSetDto<D> getReferenceSet0(ObserveSwingDataSource dataSource, ObserveReferentialCacheKey<D> key) { + + ReferenceSetDto<D> result=null; +// if (cache.containsKey(key)) { +// result = cache.get(key); +// +// Date lastUpdate = result.getLastUpdate(); +// +// ReferenceSetService referentialService = dataSource.newService(ReferenceSetService.class); +// ReferenceSetDto<D> update = referentialService.getReferentialReferenceSetIfModify(key.getType(), key.getContext().orNull(), lastUpdate); +// if (update != null) { +// result = update; +// cache.remove(key); +// cache.put(key, update); +// } +// +// } else { +// +// ReferentialService referentialService = dataSource.newService(ReferenceSetService.class); +// result = referentialService.getReferentialReferenceSet(key.getType(), key.getContext().orNull()); +// cache.put(key, result); +// +// } + return result; + + } + + @Override + public void close() { + cache.clear(); + } +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveReferentialCacheKey.java b/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveReferentialCacheKey.java new file mode 100644 index 0000000..3eda009 --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveReferentialCacheKey.java @@ -0,0 +1,33 @@ +package fr.ird.observe.db; + +import com.google.common.base.Optional; +import fr.ird.observe.services.dto.referential.ReferentialDto; + +/** + * Created on 10/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveReferentialCacheKey<D extends ReferentialDto> { + + private final Class<D> type; + + private final Optional<String> context; + + public ObserveReferentialCacheKey(Class<D> type, Optional<String> context) { + this.type = type; + this.context = context; + } + + public Class<D> getType() { + return type; + } + + public Optional<String> getContext() { + return context; + } + + public static <D extends ReferentialDto> ObserveReferentialCacheKey<D> of(Class<D> type, String optionalContext) { + return new ObserveReferentialCacheKey<>(type, Optional.fromNullable(optionalContext)); + } +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit bc75e2133be1d6c69743c756b64db42c9b496863 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Nov 14 02:12:31 2015 +0100 introduction nouvelle api de references plus simple et mise en place --- .../web/ObserveWebApplicationListener.java | 2 + .../v1/ReferenceSetServiceController.java | 10 +- .../ObserveReferenceSetRequestInjector.java | 51 +++++ .../services/service/ReferenceSetDefinition.java | 70 ------ .../service/ReferenceSetPropertyDefinition.java | 67 ------ .../service/ReferenceSetRequestDefinition.java | 53 ----- .../service/ReferenceSetRequestDefinitions.java | 39 ---- .../service/ReferenceSetRequestKeyDefinition.java | 86 ------- .../services/service/ReferenceSetService.java | 8 +- .../service/ReferentialReferenceSetResult.java | 55 ----- .../observe/services/dto/gson/ClassAdapter.java | 39 +++- .../services/dto/gson/ObserveDtoGsonSupplier.java | 2 + .../dto/gson/ObserveReferenceSetAdapter.java | 122 ++++++++++ .../services/dto/reference/ObserveReference.java | 61 +++++ .../dto/reference/ObserveReferenceSet.java | 69 ++++++ .../dto/reference/ObserveReferenceSetRequest.java | 20 +- .../dto/reference/ObserveReferenceSetResult.java | 64 ++++++ .../dto/reference/ObserveReferentialReference.java | 79 +++++++ .../definition/ObserveReferenceSetDefinition.java | 76 +++++++ .../definition/ObserveReferenceSetDefinitions.java | 41 ++-- .../ObserveReferenceSetRequestDefinition.java | 53 +++++ .../ObserveReferenceSetRequestDefinitions.java | 50 +++++ .../ObserveReferenceSetRequestKeyDefinition.java | 74 ++++++ .../service/ReferenceSetServiceRestTest.java | 96 ++++++++ .../EntityToReferentialReferenceDtoBuilder.java | 109 --------- .../dto/reference/ObserveReferenceSetBuilder.java | 250 +++++++++++++++++++++ .../services/service/ReferenceSetServiceTopia.java | 124 +++++----- .../service/ReferenceSetServiceTopiaTest.java | 54 +++++ 28 files changed, 1246 insertions(+), 578 deletions(-) diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebApplicationListener.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebApplicationListener.java index 764a415..a5816f6 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebApplicationListener.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebApplicationListener.java @@ -27,6 +27,7 @@ import fr.ird.observe.application.web.converter.ObserveDtoConverter; import fr.ird.observe.application.web.injector.ObserveClassInjector; import fr.ird.observe.application.web.injector.ObserveDataSourceConfigurationInjector; import fr.ird.observe.application.web.injector.ObserveDtoInjector; +import fr.ird.observe.application.web.injector.ObserveReferenceSetRequestInjector; import fr.ird.observe.services.dto.ObserveDbUserDto; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -62,6 +63,7 @@ public class ObserveWebApplicationListener implements WebMotionServerListener { context.addInjector(new ObserveDataSourceConfigurationInjector(gson)); context.addInjector(new ObserveClassInjector()); context.addInjector(new ObserveDtoInjector(gson)); + context.addInjector(new ObserveReferenceSetRequestInjector(gson)); context.addConverter(new ObserveDtoConverter(gson), ObserveDbUserDto.class); context.getServletContext().setAttribute( diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferenceSetServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferenceSetServiceController.java index 7dcc967..ee5c30c 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferenceSetServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferenceSetServiceController.java @@ -1,8 +1,10 @@ package fr.ird.observe.application.web.controller.v1; -import fr.ird.observe.services.service.ReferenceSetRequest; +import fr.ird.observe.services.dto.reference.ObserveReference; +import fr.ird.observe.services.dto.reference.ObserveReferenceSetRequest; +import fr.ird.observe.services.dto.reference.ObserveReferentialReference; import fr.ird.observe.services.service.ReferenceSetService; -import fr.ird.observe.services.service.ReferentialReferenceSetResult; +import fr.ird.observe.services.dto.reference.ObserveReferenceSetResult; /** * Created on 11/11/15. @@ -16,12 +18,12 @@ public class ReferenceSetServiceController extends ObserveAuthenticatedServiceCo } @Override - public ReferentialReferenceSetResult loadDataReferenceSets(ReferenceSetRequest request) { + public ObserveReferenceSetResult<ObserveReference> loadDataReferenceSets(ObserveReferenceSetRequest request) { return service.loadDataReferenceSets(request); } @Override - public ReferentialReferenceSetResult loadReferentialReferenceSets(ReferenceSetRequest request) { + public ObserveReferenceSetResult<ObserveReferentialReference> loadReferentialReferenceSets(ObserveReferenceSetRequest request) { return service.loadReferentialReferenceSets(request); } diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/injector/ObserveReferenceSetRequestInjector.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/injector/ObserveReferenceSetRequestInjector.java new file mode 100644 index 0000000..61edb8e --- /dev/null +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/injector/ObserveReferenceSetRequestInjector.java @@ -0,0 +1,51 @@ +package fr.ird.observe.application.web.injector; + +import com.google.common.base.Preconditions; +import com.google.gson.Gson; +import fr.ird.observe.services.dto.reference.ObserveReferenceSetRequest; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.debux.webmotion.server.call.Call; +import org.debux.webmotion.server.handler.ExecutorParametersInjectorHandler; +import org.debux.webmotion.server.mapping.Mapping; + +import java.lang.reflect.Type; + +/** + * Created on 13/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveReferenceSetRequestInjector implements ExecutorParametersInjectorHandler.Injector { + + /** Logger. */ + private static final Log log = LogFactory.getLog(ObserveDataSourceConfigurationInjector.class); + + protected final Gson gson; + + public ObserveReferenceSetRequestInjector(Gson gson) { + this.gson = gson; + } + + @Override + public Object getValue(Mapping mapping, Call call, String name, Class<?> type, Type generic) { + + ObserveReferenceSetRequest referenceSetRequest = null; + if (type.equals(ObserveReferenceSetRequest.class)) { + + Call.ParameterTree parameterTree = call.getParameterTree().getObject().get(name); + Preconditions.checkNotNull(parameterTree, "Le paramètre " + name + " n'as pas été trouvé, recompiler (parameter)!"); + String gsonContent = ((String[]) parameterTree.getValue())[0]; + + referenceSetRequest = gson.fromJson(gsonContent, ObserveReferenceSetRequest.class); + + if (log.isInfoEnabled()) { + log.info("Inject referenceSetRequest: " + referenceSetRequest); + } + + } + + return referenceSetRequest; + + } +} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetDefinition.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetDefinition.java deleted file mode 100644 index edac622..0000000 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetDefinition.java +++ /dev/null @@ -1,70 +0,0 @@ -package fr.ird.observe.services.service; - -import com.google.common.collect.ImmutableSet; -import fr.ird.observe.services.dto.IdDto; -import fr.ird.observe.services.dto.ReferenceSetDto; - -import java.io.Serializable; - -/** - * Pour définir ce que l'on doit retrouver dans un ensemble de références d'un même type. - * - * Created on 11/11/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ReferenceSetDefinition<D extends IdDto> implements Serializable{ - - private static final long serialVersionUID = 1L; - - /** - * Le type du dto qui doit être transformé en références. - * {@link ReferenceSetDto#getType()}. - */ - private final Class<D> type; - - private final ImmutableSet<ReferenceSetPropertyDefinition> properties; - - public ReferenceSetDefinition(Class<D> type, ImmutableSet<ReferenceSetPropertyDefinition> properties) { - this.type = type; - this.properties = properties; - } - - public Class<D> getType() { - return type; - } - - public ImmutableSet<ReferenceSetPropertyDefinition> getProperties() { - return properties; - } - - public static <D extends IdDto> Builder<D> builder(Class<D> type) { - return new Builder<>(type); - } - - public static class Builder<D extends IdDto> { - - private final Class<D> type; - - private final ImmutableSet.Builder<ReferenceSetPropertyDefinition> propertiesBuilder; - - public Builder(Class<D> type) { - this.type = type; - this.propertiesBuilder = ImmutableSet.builder(); - } - - public <O> Builder<D> addProperty(Class<O> type, String name) { - return addProperty(ReferenceSetPropertyDefinition.of(type, name)); - } - - public Builder<D> addProperty(ReferenceSetPropertyDefinition propertyDefinition) { - propertiesBuilder.add(propertyDefinition); - return this; - } - - public ReferenceSetDefinition<D> build() { - return new ReferenceSetDefinition<>(type, propertiesBuilder.build()); - } - } - -} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetPropertyDefinition.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetPropertyDefinition.java deleted file mode 100644 index 79035bd..0000000 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetPropertyDefinition.java +++ /dev/null @@ -1,67 +0,0 @@ -package fr.ird.observe.services.service; - -import com.google.common.base.MoreObjects; - -import java.io.Serializable; -import java.util.Objects; - -/** - * Pour définir une propriété à remonter dans un ensemble de référence. - * - * Created on 11/11/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ReferenceSetPropertyDefinition<O> implements Serializable { - - private static final long serialVersionUID = 1L; - - /** - * Le type de la propriété. - */ - private final Class<O> type; - - /** - * Le nom de la propriété. - */ - private final String name; - - public static <O> ReferenceSetPropertyDefinition<O> of(Class<O> type, String name) { - return new ReferenceSetPropertyDefinition<>(type, name); - } - - public ReferenceSetPropertyDefinition(Class<O> type, String name) { - this.type = type; - this.name = name; - } - - public Class<O> getType() { - return type; - } - - public String getName() { - return name; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (!(o instanceof ReferenceSetPropertyDefinition)) return false; - ReferenceSetPropertyDefinition<?> that = (ReferenceSetPropertyDefinition<?>) o; - return Objects.equals(type, that.type) && - Objects.equals(name, that.name); - } - - @Override - public int hashCode() { - return Objects.hash(type, name); - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("type", type) - .add("name", name) - .toString(); - } -} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetRequestDefinition.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetRequestDefinition.java deleted file mode 100644 index 2d49605..0000000 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetRequestDefinition.java +++ /dev/null @@ -1,53 +0,0 @@ -package fr.ird.observe.services.service; - -import com.google.common.collect.ImmutableSet; -import fr.ird.observe.services.dto.IdDto; - -import java.io.Serializable; - -/** - * Pour définir une demande de récupération d'ensemble de références. - * - * Created on 11/11/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ReferenceSetRequestDefinition implements Serializable { - - private static final long serialVersionUID = 1L; - - private final ImmutableSet<ReferenceSetRequestKeyDefinition> keys; - - public ReferenceSetRequestDefinition(ImmutableSet<ReferenceSetRequestKeyDefinition> keys) { - this.keys = keys; - } - - public ImmutableSet<ReferenceSetRequestKeyDefinition> getKeys() { - return keys; - } - - public static <D extends IdDto> Builder<D> builder(Class<D> type) { - return new Builder<>(type); - } - - public static class Builder<D extends IdDto> { - - private final Class<D> parentType; - - private final ImmutableSet.Builder<ReferenceSetRequestKeyDefinition> keysBuilder; - - public Builder(Class<D> parentType) { - this.parentType = parentType; - this.keysBuilder = ImmutableSet.builder(); - } - - public Builder<D> addKey(String name, ReferenceSetDefinitions propertyDefinition) { - keysBuilder.add(new ReferenceSetRequestKeyDefinition<>(parentType, propertyDefinition.getDefinition(), name)); - return this; - } - - public ReferenceSetRequestDefinition build() { - return new ReferenceSetRequestDefinition(keysBuilder.build()); - } - } -} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetRequestDefinitions.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetRequestDefinitions.java deleted file mode 100644 index eef1c48..0000000 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetRequestDefinitions.java +++ /dev/null @@ -1,39 +0,0 @@ -package fr.ird.observe.services.service; - -import fr.ird.observe.services.dto.IdDto; -import fr.ird.observe.services.dto.seine.TripSeineDto; - -/** - * Contient les définitions de tous les requêtes que les services proposent. - * - * Created on 11/11/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public enum ReferenceSetRequestDefinitions { - - TRIP_SEINE_FORM(newBuilder(TripSeineDto.class) - .addKey(TripSeineDto.PROPERTY_OBSERVER, ReferenceSetDefinitions.PERSON) - .addKey(TripSeineDto.PROPERTY_CAPTAIN, ReferenceSetDefinitions.PERSON) - .addKey(TripSeineDto.PROPERTY_DATA_ENTRY_OPERATOR, ReferenceSetDefinitions.PERSON) - .addKey(TripSeineDto.PROPERTY_VESSEL, ReferenceSetDefinitions.VESSEL) - .addKey(TripSeineDto.PROPERTY_OCEAN, ReferenceSetDefinitions.OCEAN) - .addKey(TripSeineDto.PROPERTY_DEPARTURE_HARBOUR, ReferenceSetDefinitions.HARBOUR) - .addKey(TripSeineDto.PROPERTY_LANDING_HARBOUR, ReferenceSetDefinitions.HARBOUR) - .addKey(TripSeineDto.PROPERTY_PROGRAM, ReferenceSetDefinitions.PROGRAM)),; - - public final ReferenceSetRequestDefinition definition; - - ReferenceSetRequestDefinitions(ReferenceSetRequestDefinition.Builder definitionBuilder) { - this.definition = definitionBuilder.build(); - } - - public ReferenceSetRequestDefinition getDefinition() { - return definition; - } - - public static <D extends IdDto> ReferenceSetRequestDefinition.Builder<D> newBuilder(Class<D> parentType) { - return new ReferenceSetRequestDefinition.Builder<>(parentType); - } - -} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetRequestKeyDefinition.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetRequestKeyDefinition.java deleted file mode 100644 index 8d72a4f..0000000 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetRequestKeyDefinition.java +++ /dev/null @@ -1,86 +0,0 @@ -package fr.ird.observe.services.service; - -import com.google.common.base.Function; -import com.google.common.collect.Iterables; -import fr.ird.observe.services.dto.IdDto; -import fr.ird.observe.services.dto.referential.ReferentialDto; - -import java.util.Objects; - -/** - * Created on 10/11/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ReferenceSetRequestKeyDefinition<D extends IdDto> { - - private final Class<? extends IdDto> parentType; - - private final ReferenceSetDefinition<D> referenceSetDefinition; - - private final String name; - - private final String[] propertyNames; - - private final Class<?>[] propertyTypes; - - public ReferenceSetRequestKeyDefinition(Class<? extends IdDto> parentType, ReferenceSetDefinition<D> referenceSetDefinition, String name) { - this.parentType = parentType; - this.referenceSetDefinition = referenceSetDefinition; - this.name = name; - this.propertyNames = Iterables.toArray(Iterables.transform(referenceSetDefinition.getProperties(), new Function<ReferenceSetPropertyDefinition, String>() { - - @Override - public String apply(ReferenceSetPropertyDefinition input) { - return input.getName(); - } - }), String.class); - this.propertyTypes = Iterables.toArray(Iterables.transform(referenceSetDefinition.getProperties(), new Function<ReferenceSetPropertyDefinition, Class<?>>() { - - @Override - public Class<?> apply(ReferenceSetPropertyDefinition input) { - return input.getType(); - } - }), Class.class); - } - - public Class<? extends IdDto> getParentType() { - return parentType; - } - - public Class<D> getType() { - return referenceSetDefinition.getType(); - } - - public String[] getPropertyNames() { - return propertyNames; - } - - public Class<?>[] getPropertyTypes() { - return propertyTypes; - } - - public String getName() { - return name; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (!(o instanceof ReferenceSetRequestKeyDefinition)) return false; - ReferenceSetRequestKeyDefinition that = (ReferenceSetRequestKeyDefinition) o; - return Objects.equals(parentType, that.parentType) && - Objects.equals(referenceSetDefinition.getType(), that.referenceSetDefinition.getType()) && - Objects.equals(name, that.name); - } - - @Override - public int hashCode() { - return Objects.hash(parentType, referenceSetDefinition.getType(), name); - } - - public boolean isReferential() { - Class<?> type = referenceSetDefinition.getType(); - return type.isAssignableFrom(ReferentialDto.class); - } -} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetService.java index 36f7d0e..2ce25b3 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetService.java @@ -2,6 +2,10 @@ package fr.ird.observe.services.service; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.ReferenceSetDto; +import fr.ird.observe.services.dto.reference.ObserveReference; +import fr.ird.observe.services.dto.reference.ObserveReferenceSetRequest; +import fr.ird.observe.services.dto.reference.ObserveReferentialReference; +import fr.ird.observe.services.dto.reference.ObserveReferenceSetResult; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.ReadReferentialPermission; @@ -15,10 +19,10 @@ import fr.ird.observe.services.spi.ReadReferentialPermission; public interface ReferenceSetService extends ObserveService { @ReadDataPermission - ReferentialReferenceSetResult loadDataReferenceSets(ReferenceSetRequest request); + ObserveReferenceSetResult<ObserveReference> loadDataReferenceSets(ObserveReferenceSetRequest request); @ReadReferentialPermission - ReferentialReferenceSetResult loadReferentialReferenceSets(ReferenceSetRequest request); + ObserveReferenceSetResult<ObserveReferentialReference> loadReferentialReferenceSets(ObserveReferenceSetRequest request); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialReferenceSetResult.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialReferenceSetResult.java deleted file mode 100644 index 1de8e9e..0000000 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialReferenceSetResult.java +++ /dev/null @@ -1,55 +0,0 @@ -package fr.ird.observe.services.service; - -import com.google.common.collect.ImmutableMap; -import fr.ird.observe.services.dto.ReferenceSetDto; - -/** - * Created on 10/11/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ReferentialReferenceSetResult { - - private final ReferenceSetRequest request; - - private final ImmutableMap<String, ReferenceSetDto> referenceSetsMap; - - public ReferentialReferenceSetResult(ReferenceSetRequest request, ImmutableMap<String, ReferenceSetDto> referenceSetsMap) { - this.request = request; - this.referenceSetsMap = referenceSetsMap; - } - - public ReferenceSetRequest getRequest() { - return request; - } - - public ImmutableMap<String, ReferenceSetDto> getReferenceSetsMap() { - return referenceSetsMap; - } - - public static Builder builder(final ReferenceSetRequest request) { - return new Builder(request); - } - - public static class Builder { - - private final ReferenceSetRequest request; - - private final ImmutableMap.Builder<String, ReferenceSetDto> referenceSetsMapBuilder; - - public Builder(ReferenceSetRequest request) { - this.request = request; - this.referenceSetsMapBuilder = ImmutableMap.builder(); - } - - public Builder addKey(String name, ReferenceSetDto referenceSet) { - referenceSetsMapBuilder.put(name, referenceSet); - return this; - } - - public ReferentialReferenceSetResult build() { - return new ReferentialReferenceSetResult(request, referenceSetsMapBuilder.build()); - } - } - -} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ClassAdapter.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ClassAdapter.java index bb235b9..22f2874 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ClassAdapter.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ClassAdapter.java @@ -28,18 +28,29 @@ import com.google.gson.JsonElement; import com.google.gson.JsonParseException; import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializer; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import java.lang.reflect.Type; +import java.util.Map; +import java.util.TreeMap; /** * @author Arnaud Thimel - thimel@codelutin.com */ public class ClassAdapter implements JsonSerializer<Class<?>>, JsonDeserializer<Class<?>> { - private static final Log log = LogFactory.getLog(ClassAdapter.class); - + private static final Map<String, Class<?>> CLASS_CACHE = new TreeMap<>(); + + static { + CLASS_CACHE.put("boolean", boolean.class); + CLASS_CACHE.put("byte", byte.class); + CLASS_CACHE.put("char", char.class); + CLASS_CACHE.put("short", short.class); + CLASS_CACHE.put("int", int.class); + CLASS_CACHE.put("long", long.class); + CLASS_CACHE.put("float", float.class); + CLASS_CACHE.put("double", double.class); + } + @Override public JsonElement serialize(Class<?> src, Type typeOfSrc, JsonSerializationContext context) { return context.serialize(src.getCanonicalName(), String.class); @@ -50,15 +61,25 @@ public class ClassAdapter implements JsonSerializer<Class<?>>, JsonDeserializer< public Class<?> deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { String className = json.getAsString(); + Class<?> result = CLASS_CACHE.get(className); + if (result == null) { + result = loadClass(className); + CLASS_CACHE.put(className, result); + } + + return result; + + } + + protected Class<?> loadClass(String className) { + try { Class<?> result = Class.forName(className); return result; - } catch (ClassNotFoundException cnfe) { - if (log.isErrorEnabled()) { - log.error("An exception occurred", cnfe); - } - throw new JsonParseException("Class not found: " + className, cnfe); + } catch (ClassNotFoundException e) { + throw new JsonParseException("Class not found: " + className, e); } } + } diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java index 9ba5b93..7552723 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java @@ -31,6 +31,7 @@ import com.google.gson.GsonBuilder; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.actions.report.ReportVariable; +import fr.ird.observe.services.dto.reference.ObserveReferenceSet; import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; import org.nuiton.util.version.Version; @@ -94,6 +95,7 @@ public class ObserveDtoGsonSupplier implements Supplier<Gson> { gsonBuilder.registerTypeAdapter(ImmutableSet.class, new ImmutableSetAdapter()); gsonBuilder.registerTypeAdapter(ImmutableMap.class, new ImmutableMapAdapter()); gsonBuilder.registerTypeAdapter(ReferenceDto.class, new ReferenceDtoAdapter()); + gsonBuilder.registerTypeAdapter(ObserveReferenceSet.class, new ObserveReferenceSetAdapter()); gsonBuilder.registerTypeAdapter(ReferentialReferenceDto.class, new ReferentialReferenceDtoAdapter()); gsonBuilder.registerTypeAdapter(FormDto.class, new FormDtoAdapter()); gsonBuilder.registerTypeAdapter(ReportVariable.class, new ReportVariableAdapter()); diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ObserveReferenceSetAdapter.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ObserveReferenceSetAdapter.java new file mode 100644 index 0000000..300ae53 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ObserveReferenceSetAdapter.java @@ -0,0 +1,122 @@ +package fr.ird.observe.services.dto.gson; + +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.reference.ObserveReference; +import fr.ird.observe.services.dto.reference.ObserveReferenceSet; +import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinition; +import fr.ird.observe.services.dto.reference.ObserveReferentialReference; +import fr.ird.observe.services.dto.referential.ReferentialDto; + +import java.io.Serializable; +import java.lang.reflect.Type; +import java.util.Collection; +import java.util.Date; +import java.util.LinkedHashSet; + +/** + * Created on 13/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveReferenceSetAdapter implements JsonDeserializer<ObserveReferenceSet> { + + @Override + public ObserveReferenceSet deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { + + JsonObject jsonObject = json.getAsJsonObject(); + + ObserveReferenceSetDefinition definition = context.deserialize(jsonObject.get("definition"), ObserveReferenceSetDefinition.class); + + Class type = definition.getType(); + + Date lastUpdate = context.deserialize(jsonObject.get("lastUpdate"), Date.class); + + JsonArray jsonValues = jsonObject.get("values").getAsJsonArray(); + + Class[] propertyTypes = definition.getPropertyTypes(); + + ObserveReferenceSet referenceDto = new ObserveReferenceSet(); + referenceDto.setDefinition(definition); + referenceDto.setLastUpdate(lastUpdate); + + if (ReferentialDto.class.isAssignableFrom(type)) { + + Collection<ObserveReferentialReference> values = new LinkedHashSet<>(); + + for (JsonElement jsonValue : jsonValues) { + + ObserveReferentialReference ref = deserializeReferentialReference(context, jsonValue.getAsJsonObject(), propertyTypes); + values.add(ref); + } + + referenceDto.setValues(values); + + } else { + + Collection<ObserveReference> values = new LinkedHashSet<>(); + + for (JsonElement jsonValue : jsonValues) { + + ObserveReference ref = deserializeReference(context, jsonValue.getAsJsonObject(), propertyTypes); + values.add(ref); + } + + referenceDto.setValues(values); + } + + + return referenceDto; + + } + + private ObserveReferentialReference deserializeReferentialReference(JsonDeserializationContext context, JsonObject jsonObject, Class[] propertyTypes) { + + ObserveReferentialReference result = new ObserveReferentialReference(); + + deserialize0(context, jsonObject, propertyTypes, result); + + result.setVersion((long) context.deserialize(jsonObject.get(ReferentialDto.PROPERTY_VERSION), long.class)); + result.setCreateDate((Date) context.deserialize(jsonObject.get(ReferentialDto.PROPERTY_CREATE_DATE), Date.class)); + result.setLastUpdate((Date) context.deserialize(jsonObject.get(ReferentialDto.PROPERTY_LAST_UPDATE), Date.class)); + result.setEnabled((Boolean) context.deserialize(jsonObject.get(ReferentialDto.PROPERTY_ENABLED), boolean.class)); + result.setNeedComment((Boolean) context.deserialize(jsonObject.get(ReferentialDto.PROPERTY_NEED_COMMENT), boolean.class)); + + return result; + } + + private ObserveReference deserializeReference(JsonDeserializationContext context, JsonObject jsonObject, Class[] propertyTypes) { + + ObserveReference result = new ObserveReference(); + + deserialize0(context, jsonObject, propertyTypes, result); + + return result; + } + + private void deserialize0(JsonDeserializationContext context, JsonObject jsonObject, Class[] propertyTypes, ObserveReference result) { + + JsonArray valuesElement = jsonObject.get("values").getAsJsonArray(); + + result.setId((String) context.deserialize(jsonObject.get(IdDto.PROPERTY_ID), String.class)); + + Serializable[] values = new Serializable[propertyTypes.length]; + result.setValues(values); + + for (int i = 0, max = propertyTypes.length; i < max; i++) { + Class type = propertyTypes[i]; + JsonElement jsonValue = valuesElement.get(i); + if (jsonValue != null) { + Serializable value = context.deserialize(jsonValue, type); + values[i] = value; + } + } + + } + +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReference.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReference.java new file mode 100644 index 0000000..95038a1 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReference.java @@ -0,0 +1,61 @@ +package fr.ird.observe.services.dto.reference; + +import com.google.common.base.MoreObjects; + +import java.io.Serializable; +import java.util.Arrays; +import java.util.Objects; + +/** + * Created on 13/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveReference implements Serializable { + + public static final String PROPERTY_ID = "id"; + + private static final long serialVersionUID = 1L; + + protected String id; + + protected Serializable[] values; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Serializable[] getValues() { + return values; + } + + public void setValues(Serializable... values) { + this.values = values; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof ObserveReference)) return false; + ObserveReference that = (ObserveReference) o; + return !(id == null || that.id == null) && Objects.equals(id, that.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("id", id) + .add("values", Arrays.asList(values)) + .toString(); + } + +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSet.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSet.java new file mode 100644 index 0000000..4d64af1 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSet.java @@ -0,0 +1,69 @@ +package fr.ird.observe.services.dto.reference; + +import com.google.common.base.MoreObjects; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinition; + +import java.io.Serializable; +import java.util.Collection; +import java.util.Date; + +/** + * Created on 13/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveReferenceSet<D extends IdDto, R extends ObserveReference> implements Serializable { + + private static final long serialVersionUID = 1L; + + protected ObserveReferenceSetDefinition<D> definition; + + protected Collection<R> values; + + protected Date lastUpdate; + + public static <D extends IdDto, R extends ObserveReference> ObserveReferenceSet<D, R> of(ObserveReferenceSetDefinition<D> definition, + Collection<R> labels, + Date lastUpdate) { + ObserveReferenceSet<D, R> dto = new ObserveReferenceSet<>(); + + dto.setDefinition(definition); + dto.setValues(labels); + dto.setLastUpdate(lastUpdate); + return dto; + } + + public ObserveReferenceSetDefinition<D> getDefinition() { + return definition; + } + + public void setDefinition(ObserveReferenceSetDefinition<D> definition) { + this.definition = definition; + } + + public Collection<R> getValues() { + return values; + } + + public void setValues(Collection<R> values) { + this.values = values; + } + + public Date getLastUpdate() { + return lastUpdate; + } + + public void setLastUpdate(Date lastUpdate) { + this.lastUpdate = lastUpdate; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("definition", definition) + .add("values", values == null ? 0 : values.size()) + .add("lastUpdate", lastUpdate) + .toString(); + } +} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetRequest.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetRequest.java similarity index 57% rename from observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetRequest.java rename to observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetRequest.java index 4801de4..25ea7b6 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetRequest.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetRequest.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.service; +package fr.ird.observe.services.dto.reference; import com.google.common.collect.ImmutableMap; @@ -9,16 +9,11 @@ import java.util.Date; * * @author Tony Chemit - chemit@codelutin.com */ -public class ReferenceSetRequest { +public class ObserveReferenceSetRequest { - private final String requestName; + private String requestName; - private final ImmutableMap<String, Date> lastUpdateDates; - - public ReferenceSetRequest(String requestName, ImmutableMap<String, Date> lastUpdateDates) { - this.requestName = requestName; - this.lastUpdateDates = lastUpdateDates; - } + private ImmutableMap<String, Date> lastUpdateDates; public String getRequestName() { return requestName; @@ -28,4 +23,11 @@ public class ReferenceSetRequest { return lastUpdateDates; } + public void setRequestName(String requestName) { + this.requestName = requestName; + } + + public void setLastUpdateDates(ImmutableMap<String, Date> lastUpdateDates) { + this.lastUpdateDates = lastUpdateDates; + } } diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetResult.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetResult.java new file mode 100644 index 0000000..1c1614f --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetResult.java @@ -0,0 +1,64 @@ +package fr.ird.observe.services.dto.reference; + +import com.google.common.collect.ImmutableMap; + +import java.util.Date; +import java.util.Map; + +/** + * Created on 10/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveReferenceSetResult<R extends ObserveReference> { + + private final String requestName; + + private final ImmutableMap<String, ObserveReferenceSet<?, R>> referenceSets; + + public static <R extends ObserveReference> Builder<R> builder(String requestName) { + return new Builder<>(requestName); + } + + public ObserveReferenceSetResult(String requestName, ImmutableMap<String, ObserveReferenceSet<?, R>> referenceSets) { + this.requestName = requestName; + this.referenceSets = referenceSets; + } + + public String getRequestName() { + return requestName; + } + + public ImmutableMap<String, ObserveReferenceSet<?, R>> getReferenceSets() { + return referenceSets; + } + + public ImmutableMap<String,Date> getLastUpdateDates() { + ImmutableMap.Builder<String,Date> builder = ImmutableMap.builder(); + for (Map.Entry<String, ObserveReferenceSet<?, R>> entry : referenceSets.entrySet()) { + builder.put(entry.getKey(), entry.getValue().getLastUpdate()); + } + return builder.build(); + } + public static class Builder<R extends ObserveReference> { + + private final String requestName; + + private final ImmutableMap.Builder<String, ObserveReferenceSet<?, R>> referenceSetsMapBuilder; + + public Builder(String requestName) { + this.requestName = requestName; + this.referenceSetsMapBuilder = ImmutableMap.builder(); + } + + public Builder addKey(String name, ObserveReferenceSet<?, R> referenceSet) { + referenceSetsMapBuilder.put(name, referenceSet); + return this; + } + + public ObserveReferenceSetResult<R> build() { + return new ObserveReferenceSetResult<>(requestName, referenceSetsMapBuilder.build()); + } + } + +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferentialReference.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferentialReference.java new file mode 100644 index 0000000..f82dd81 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferentialReference.java @@ -0,0 +1,79 @@ +package fr.ird.observe.services.dto.reference; + +import com.google.common.base.MoreObjects; + +import java.util.Arrays; +import java.util.Date; + +/** + * Created on 13/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveReferentialReference extends ObserveReference { + + private static final long serialVersionUID = 1L; + + protected boolean needComment; + + protected boolean enabled; + + protected Date createDate; + + protected Date lastUpdate; + + protected long version; + + public boolean isNeedComment() { + return needComment; + } + + public void setNeedComment(boolean needComment) { + this.needComment = needComment; + } + + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + + public Date getLastUpdate() { + return lastUpdate; + } + + public void setLastUpdate(Date lastUpdate) { + this.lastUpdate = lastUpdate; + } + + public Date getCreateDate() { + return createDate; + } + + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + + public long getVersion() { + return version; + } + + public void setVersion(long version) { + this.version = version; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("id", id) + .add("needComment", needComment) + .add("enabled", enabled) + .add("version", version) + .add("createDate", createDate) + .add("lastUpdate", lastUpdate) + .add("values", Arrays.asList(values)) + .toString(); + } +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetDefinition.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetDefinition.java new file mode 100644 index 0000000..3a5f327 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetDefinition.java @@ -0,0 +1,76 @@ +package fr.ird.observe.services.dto.reference.definition; + +import fr.ird.observe.services.dto.IdDto; + +import java.io.Serializable; +import java.util.LinkedList; + +/** + * Pour définir ce que l'on doit retrouver dans un ensemble de références d'un même type. + * + * Created on 11/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveReferenceSetDefinition<D extends IdDto> implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * Le type du dto qui doit être transformé en références. + * {@link ObserveReferenceSetDefinition#getType()}. + */ + private final Class<D> type; + + private final String[] propertyNames; + + private final Class<?>[] propertyTypes; + + public static <D extends IdDto> Builder<D> builder(Class<D> type) { + return new Builder<>(type); + } + + protected ObserveReferenceSetDefinition(Class<D> type, Class<?>[] propertyTypes, String... propertyNames) { + this.type = type; + this.propertyTypes = propertyTypes; + this.propertyNames = propertyNames; + } + + public Class<D> getType() { + return type; + } + + public Class<?>[] getPropertyTypes() { + return propertyTypes; + } + + public String[] getPropertyNames() { + return propertyNames; + } + + public static class Builder<D extends IdDto> { + + private final Class<D> type; + + private final LinkedList<Class<?>> propertyTypes; + + private final LinkedList<String> propertyNames; + + public Builder(Class<D> type) { + this.type = type; + this.propertyTypes = new LinkedList<>(); + this.propertyNames = new LinkedList<>(); + } + + public <O> Builder<D> addProperty(Class<O> type, String name) { + propertyTypes.add(type); + propertyNames.add(name); + return this; + } + + public ObserveReferenceSetDefinition<D> build() { + return new ObserveReferenceSetDefinition<>(type, propertyTypes.toArray(new Class[propertyTypes.size()]), propertyNames.toArray(new String[propertyNames.size()])); + } + } + +} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetDefinitions.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetDefinitions.java similarity index 90% rename from observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetDefinitions.java rename to observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetDefinitions.java index be4abc9..6e1f93b 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetDefinitions.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetDefinitions.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.service; +package fr.ird.observe.services.dto.reference.definition; import fr.ird.observe.services.dto.constants.GearType; import fr.ird.observe.services.dto.referential.CountryDto; @@ -64,13 +64,13 @@ import fr.ird.observe.services.dto.referential.seine.WeightCategoryDto; import fr.ird.observe.services.dto.referential.seine.WindDto; /** - * Contient les définitions de tous les ensembles de référence utilisables dans les services. + * Contient les définitions de tous les ensembles de référence reconnus dans l'application. * * Created on 11/11/15. * * @author Tony Chemit - chemit@codelutin.com */ -public enum ReferenceSetDefinitions { +public enum ObserveReferenceSetDefinitions { COUNTRY(newDefaultDefinitionBuilder(CountryDto.class)), @@ -102,9 +102,9 @@ public enum ReferenceSetDefinitions { PERSON(newDefinitionBuilder(PersonDto.class) .addProperty(String.class, PersonDto.PROPERTY_FIRST_NAME) .addProperty(String.class, PersonDto.PROPERTY_LAST_NAME) - .addProperty(String.class, PersonDto.PROPERTY_CAPTAIN) - .addProperty(String.class, PersonDto.PROPERTY_DATA_ENTRY_OPERATOR) - .addProperty(String.class, PersonDto.PROPERTY_OBSERVER)), + .addProperty(boolean.class, PersonDto.PROPERTY_CAPTAIN) + .addProperty(boolean.class, PersonDto.PROPERTY_DATA_ENTRY_OPERATOR) + .addProperty(boolean.class, PersonDto.PROPERTY_OBSERVER)), PROGRAM(newDefinitionBuilder(ProgramDto.class) .addProperty(GearType.class, ProgramDto.PROPERTY_GEAR_TYPE) @@ -225,23 +225,18 @@ public enum ReferenceSetDefinitions { .addProperty(String.class, WindDto.PROPERTY_SPEED_RANGE) ); - private final ReferenceSetDefinition definition; + private final ObserveReferenceSetDefinition definition; - ReferenceSetDefinitions(ReferenceSetDefinition.Builder definition) { - this.definition = definition.build(); - } - - public ReferenceSetDefinition<?> getDefinition() { - return definition; - } - - protected static <R extends ReferentialDto> ReferenceSetDefinition.Builder newDefinitionBuilder(Class<R> type) { - ReferenceSetDefinition.Builder<R> builder = ReferenceSetDefinition.builder(type); + protected static <R extends ReferentialDto> ObserveReferenceSetDefinition.Builder newDefinitionBuilder(Class<R> type) { + ObserveReferenceSetDefinition.Builder<R> builder = ObserveReferenceSetDefinition.builder(type); + if (I18nReferentialDto.class.isAssignableFrom(type)) { + builder.addProperty(String.class, I18nReferentialDto.PROPERTY_LABEL); + } return builder; } - protected static <R extends ReferentialDto> ReferenceSetDefinition.Builder newDefaultDefinitionBuilder(Class<R> type) { - ReferenceSetDefinition.Builder<R> builder = ReferenceSetDefinition + protected static <R extends ReferentialDto> ObserveReferenceSetDefinition.Builder newDefaultDefinitionBuilder(Class<R> type) { + ObserveReferenceSetDefinition.Builder<R> builder = ObserveReferenceSetDefinition .builder(type) .addProperty(String.class, ReferentialDto.PROPERTY_CODE); if (I18nReferentialDto.class.isAssignableFrom(type)) { @@ -250,4 +245,12 @@ public enum ReferenceSetDefinitions { return builder; } + ObserveReferenceSetDefinitions(ObserveReferenceSetDefinition.Builder definition) { + this.definition = definition.build(); + } + + public ObserveReferenceSetDefinition<?> getDefinition() { + return definition; + } + } diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestDefinition.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestDefinition.java new file mode 100644 index 0000000..d3aa77c --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestDefinition.java @@ -0,0 +1,53 @@ +package fr.ird.observe.services.dto.reference.definition; + +import com.google.common.collect.ImmutableSet; +import fr.ird.observe.services.dto.IdDto; + +import java.io.Serializable; + +/** + * Pour définir une demande de récupération d'ensemble de références. + * + * Created on 11/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveReferenceSetRequestDefinition implements Serializable { + + private static final long serialVersionUID = 1L; + + private final ImmutableSet<ObserveReferenceSetRequestKeyDefinition> keys; + + public static <D extends IdDto> Builder<D> builder(Class<D> type) { + return new Builder<>(type); + } + + public ObserveReferenceSetRequestDefinition(ImmutableSet<ObserveReferenceSetRequestKeyDefinition> keys) { + this.keys = keys; + } + + public ImmutableSet<ObserveReferenceSetRequestKeyDefinition> getKeys() { + return keys; + } + + public static class Builder<D extends IdDto> { + + private final Class<D> parentType; + + private final ImmutableSet.Builder<ObserveReferenceSetRequestKeyDefinition> keysBuilder; + + public Builder(Class<D> parentType) { + this.parentType = parentType; + this.keysBuilder = ImmutableSet.builder(); + } + + public Builder<D> addKey(String name, ObserveReferenceSetDefinitions propertyDefinition) { + keysBuilder.add(new ObserveReferenceSetRequestKeyDefinition<>(parentType, propertyDefinition.getDefinition(), name)); + return this; + } + + public ObserveReferenceSetRequestDefinition build() { + return new ObserveReferenceSetRequestDefinition(keysBuilder.build()); + } + } +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestDefinitions.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestDefinitions.java new file mode 100644 index 0000000..e7e520f --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestDefinitions.java @@ -0,0 +1,50 @@ +package fr.ird.observe.services.dto.reference.definition; + +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.seine.TripSeineDto; + +/** + * Contient les définitions de tous les requêtes que les services proposent. + * + * Created on 11/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public enum ObserveReferenceSetRequestDefinitions { + + TRIP_SEINE_FORM(newBuilder(TripSeineDto.class) + .addKey(TripSeineDto.PROPERTY_OBSERVER, ObserveReferenceSetDefinitions.PERSON) + .addKey(TripSeineDto.PROPERTY_CAPTAIN, ObserveReferenceSetDefinitions.PERSON) + .addKey(TripSeineDto.PROPERTY_DATA_ENTRY_OPERATOR, ObserveReferenceSetDefinitions.PERSON) + .addKey(TripSeineDto.PROPERTY_VESSEL, ObserveReferenceSetDefinitions.VESSEL) + .addKey(TripSeineDto.PROPERTY_OCEAN, ObserveReferenceSetDefinitions.OCEAN) + .addKey(TripSeineDto.PROPERTY_DEPARTURE_HARBOUR, ObserveReferenceSetDefinitions.HARBOUR) + .addKey(TripSeineDto.PROPERTY_LANDING_HARBOUR, ObserveReferenceSetDefinitions.HARBOUR) + .addKey(TripSeineDto.PROPERTY_PROGRAM, ObserveReferenceSetDefinitions.PROGRAM)),; + + public final ObserveReferenceSetRequestDefinition definition; + + public static <D extends IdDto> ObserveReferenceSetRequestDefinition.Builder<D> newBuilder(Class<D> parentType) { + return new ObserveReferenceSetRequestDefinition.Builder<>(parentType); + } + + ObserveReferenceSetRequestDefinitions(ObserveReferenceSetRequestDefinition.Builder definitionBuilder) { + this.definition = definitionBuilder.build(); + } + + public ObserveReferenceSetRequestDefinition getDefinition() { + return definition; + } + + public static ObserveReferenceSetRequestDefinition get(String definitionName) { + + ObserveReferenceSetRequestDefinitions requestDefinitions = valueOf(definitionName); + if (requestDefinitions == null) { + throw new IllegalArgumentException("No definition with name " + definitionName + "registred"); + } + + return requestDefinitions.getDefinition(); + + } + +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestKeyDefinition.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestKeyDefinition.java new file mode 100644 index 0000000..f5156b4 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestKeyDefinition.java @@ -0,0 +1,74 @@ +package fr.ird.observe.services.dto.reference.definition; + +import com.google.common.base.MoreObjects; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.referential.ReferentialDto; + +import java.util.Objects; + +/** + * Created on 10/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveReferenceSetRequestKeyDefinition<D extends IdDto> { + + private final Class<? extends IdDto> parentType; + + private final ObserveReferenceSetDefinition<D> referenceSetDefinition; + + private final String name; + + public ObserveReferenceSetRequestKeyDefinition(Class<? extends IdDto> parentType, ObserveReferenceSetDefinition<D> referenceSetDefinition, String name) { + this.parentType = parentType; + this.referenceSetDefinition = referenceSetDefinition; + this.name = name; + } + + public Class<? extends IdDto> getParentType() { + return parentType; + } + + public Class<D> getType() { + return referenceSetDefinition.getType(); + } + + public String getName() { + return name; + } + + public ObserveReferenceSetDefinition<D> getDefinition() { + return referenceSetDefinition; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof ObserveReferenceSetRequestKeyDefinition)) return false; + ObserveReferenceSetRequestKeyDefinition that = (ObserveReferenceSetRequestKeyDefinition) o; + return Objects.equals(parentType, that.parentType) && + Objects.equals(referenceSetDefinition.getType(), that.referenceSetDefinition.getType()) && + Objects.equals(name, that.name); + } + + @Override + public int hashCode() { + return Objects.hash(parentType, referenceSetDefinition.getType(), name); + } + + public boolean isReferential() { + Class<?> type = referenceSetDefinition.getType(); + return ReferentialDto.class.isAssignableFrom(type); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("parentType", parentType) + .add("name", name) + .add("type", referenceSetDefinition.getType()) + .add("propertyNames", referenceSetDefinition.getPropertyNames()) + .add("propertyTypes", referenceSetDefinition.getPropertyTypes()) + .toString(); + } +} diff --git a/observe-services-rest/src/test/java/fr/ird/observe/services/service/ReferenceSetServiceRestTest.java b/observe-services-rest/src/test/java/fr/ird/observe/services/service/ReferenceSetServiceRestTest.java new file mode 100644 index 0000000..e8a6eb2 --- /dev/null +++ b/observe-services-rest/src/test/java/fr/ird/observe/services/service/ReferenceSetServiceRestTest.java @@ -0,0 +1,96 @@ +package fr.ird.observe.services.service; + +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; +import fr.ird.observe.services.TestClassResource; +import fr.ird.observe.services.TestMethodResource; +import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationRest; +import fr.ird.observe.services.configuration.ObserveDataSourceConnection; +import fr.ird.observe.services.dto.reference.ObserveReferenceSet; +import fr.ird.observe.services.dto.reference.ObserveReferenceSetRequest; +import fr.ird.observe.services.dto.reference.ObserveReferenceSetResult; +import fr.ird.observe.services.dto.reference.ObserveReferentialReference; +import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetRequestDefinition; +import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetRequestDefinitions; +import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetRequestKeyDefinition; +import org.junit.Assert; +import org.junit.Before; +import org.junit.ClassRule; +import org.junit.Rule; +import org.junit.Test; + +import java.util.Date; + +/** + * Created on 13/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ReferenceSetServiceRestTest { + + @ClassRule + public static final TestClassResource testClassResource = new TestClassResource(); + + @Rule + public final TestMethodResource testMethodResource = new TestMethodResource(testClassResource); + + + protected ReferenceSetService service; + + @Before + public void setUp() throws Exception { + + ObserveDataSourceConfigurationRest dataSourceConfiguration = testMethodResource.getDataSourceConfiguration().clone(); + DataSourceService dataSourceService = testClassResource.newService(dataSourceConfiguration, DataSourceService.class); + ObserveDataSourceConnection connection = dataSourceService.open(dataSourceConfiguration); + + service = testClassResource.newService(connection, ReferenceSetService.class); + + } + + @Test + public void testGetTripSeineRequest() throws Exception { + + String requestName = ObserveReferenceSetRequestDefinitions.TRIP_SEINE_FORM.name(); + + ObserveReferenceSetRequest request = new ObserveReferenceSetRequest(); + request.setRequestName(requestName); + request.setLastUpdateDates(ImmutableMap.<String, Date>of()); + + ObserveReferenceSetResult<ObserveReferentialReference> referenceSetResult = service.loadReferentialReferenceSets(request); + Assert.assertNotNull(referenceSetResult); + Assert.assertEquals(requestName, referenceSetResult.getRequestName()); + ImmutableMap<String, ObserveReferenceSet<?, ObserveReferentialReference>> referenceSetsMap = referenceSetResult.getReferenceSets(); + Assert.assertNotNull(referenceSetsMap); + + ObserveReferenceSetRequestDefinition definition = ObserveReferenceSetRequestDefinitions.get(requestName); + + ImmutableSet<ObserveReferenceSetRequestKeyDefinition> keys = definition.getKeys(); + for (ObserveReferenceSetRequestKeyDefinition key : keys) { + + String name = key.getName(); + Assert.assertTrue(referenceSetsMap.containsKey(name)); + + } + Assert.assertEquals(keys.size(), referenceSetsMap.size()); + + ImmutableMap<String, Date> lastUpdateDates = referenceSetResult.getLastUpdateDates(); + + request.setRequestName(requestName); + request.setLastUpdateDates(lastUpdateDates); + + // Re run the request, should receive no data + + ObserveReferenceSetResult<ObserveReferentialReference> referenceSetResult2 = service.loadReferentialReferenceSets(request); + Assert.assertNotNull(referenceSetResult2); + Assert.assertEquals(requestName, referenceSetResult2.getRequestName()); + ImmutableMap<String, ObserveReferenceSet<?, ObserveReferentialReference>> referenceSetsMap2 = referenceSetResult2.getReferenceSets(); + Assert.assertNotNull(referenceSetsMap2); + Assert.assertTrue(referenceSetsMap2.isEmpty()); + + + + + } + +} \ No newline at end of file diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToReferentialReferenceDtoBuilder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToReferentialReferenceDtoBuilder.java index 25148fe..2cef244 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToReferentialReferenceDtoBuilder.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToReferentialReferenceDtoBuilder.java @@ -24,7 +24,6 @@ package fr.ird.observe.services.builder; import com.google.common.base.Function; import com.google.common.base.Preconditions; -import fr.ird.observe.entities.referentiel.ReferenceEntities; import fr.ird.observe.entities.referentiel.ReferenceEntity; import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.ObserveDtoBinders; @@ -33,16 +32,12 @@ import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; import fr.ird.observe.services.dto.referential.ReferentialReferenceDtos; -import fr.ird.observe.services.service.ReferenceSetRequestKeyDefinition; import org.hibernate.Hibernate; import org.hibernate.proxy.HibernateProxy; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.util.beans.Binder; -import org.nuiton.util.beans.BinderFactory; import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; import java.util.Map; import java.util.Set; @@ -55,110 +50,6 @@ import java.util.Set; */ public class EntityToReferentialReferenceDtoBuilder<E extends ReferenceEntity, D extends ReferentialDto> { - private Class<D> type; - - private Binder<E, E> binder; - - private String[] propertyNames; - - private String[] entityPropertyNames; - - private Class<?>[] propertyTypes; - - private int referentialLocaleOrdinal; - - public static <E extends ReferenceEntity, D extends ReferentialDto> EntityToReferentialReferenceDtoBuilder<E, D> of(ReferentialLocale referentialLocale, ReferenceSetRequestKeyDefinition<D> requestKeyDefinition, Class<E> entityType) { - - EntityToReferentialReferenceDtoBuilder<E, D> referenceDtoBuilder = new EntityToReferentialReferenceDtoBuilder<>(); - - referenceDtoBuilder.type = requestKeyDefinition.getType(); - referenceDtoBuilder.referentialLocaleOrdinal = referentialLocale.ordinal(); - referenceDtoBuilder.binder = BinderFactory.newBinder(entityType); - referenceDtoBuilder.propertyNames = requestKeyDefinition.getPropertyNames(); - - List<String> entityPropertyNames = new ArrayList<>(); - - for (String propertyName : referenceDtoBuilder.propertyNames) { - - if (ReferentialReferenceDto.PROPERTY_LABEL.contains(propertyName)) { - propertyName = referentialLocale.getLibelle(); - } - entityPropertyNames.add(propertyName); - } - referenceDtoBuilder.entityPropertyNames = entityPropertyNames.toArray(new String[entityPropertyNames.size()]); - referenceDtoBuilder.propertyTypes = requestKeyDefinition.getPropertyTypes(); - - return referenceDtoBuilder; - - } - - public ReferentialReferenceDto<D> build(E entity) { - - Preconditions.checkNotNull(entity, "'entity' can't be null"); - - // on extrait l' entité du proxy hibernate - if (entity instanceof HibernateProxy) { - Hibernate.initialize(entity); - entity = (E) ((HibernateProxy) entity).getHibernateLazyInitializer().getImplementation(); - } - - Map<String, Object> entityProperties = binder.obtainProperties(entity, true, entityPropertyNames); - - Serializable[] propertyValues = new Serializable[propertyTypes.length]; - for (int i = 0; i < propertyTypes.length; i++) { - String propertyName = propertyNames[i]; - - Serializable propertyValue = (Serializable) entityProperties.get(propertyName); - if (propertyValue != null) { - - Class<?> propertyType = propertyTypes[i]; - - if (propertyValue instanceof ReferenceEntity) { - - ReferenceEntity referentialEntity = (ReferenceEntity) propertyValue; - if (String.class.equals(propertyType)) { - - // Conversion - - propertyValue = ReferenceEntities.toString(referentialLocaleOrdinal, referentialEntity); - - } else { - - // on veut récupérer une référence - //TODO - - } - - } else { - - propertyValue = transform(propertyValue); - - } - - Preconditions.checkState(propertyType.isAssignableFrom(propertyValue.getClass()), "Le type de la propriété " + propertyName + " devrait être du type " + propertyType.getName() + " mais vaut: " + propertyValue); - - } - - propertyValues[i] = propertyValue; - - } - - ReferentialReferenceDto<D> result = new ReferentialReferenceDto<>(); - result.init(type, propertyNames, propertyTypes, propertyValues); - - result.setId(entity.getTopiaId()); - result.setEnabled(entity.isEnabled()); - result.setNeedComment(entity.isNeedComment()); - - result.setVersion(entity.getTopiaVersion()); - result.setCreateDate(entity.getTopiaCreateDate()); - result.setLastUpdate(entity.getLastUpdate()); - result.setEnabled(fr.ird.observe.entities.constants.ReferenceStatus.enabled == entity.getStatus()); - - return result; - - } - public static <E extends ReferenceEntity, D extends ReferentialDto> ReferentialReferenceDto<D> build(Class<D> dtoType, ReferentialLocale referentialLocale, E entity) { Preconditions.checkNotNull(dtoType, "'dtoType' can't be null"); diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetBuilder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetBuilder.java new file mode 100644 index 0000000..bda5a57 --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetBuilder.java @@ -0,0 +1,250 @@ +package fr.ird.observe.services.dto.reference; + +import com.google.common.base.Defaults; +import com.google.common.base.Function; +import com.google.common.base.Preconditions; +import fr.ird.observe.entities.referentiel.ReferenceEntities; +import fr.ird.observe.entities.referentiel.ReferenceEntity; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.ObserveDtosInitializer; +import fr.ird.observe.services.dto.constants.ReferentialLocale; +import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinition; +import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; +import org.hibernate.Hibernate; +import org.hibernate.proxy.HibernateProxy; +import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.util.ReflectUtil; +import org.nuiton.util.beans.Binder; +import org.nuiton.util.beans.BinderFactory; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Date; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; + +/** + * Created on 13/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveReferenceSetBuilder<D extends IdDto, R extends ObserveReference> { + + private ObserveReferenceSetDefinition<D> definition; + + private Binder<TopiaEntity, TopiaEntity> binder; + + private String[] propertyNames; + + private String[] entityPropertyNames; + + private String i18nEntityPropertyName; + + private Class<?>[] propertyTypes; + + private int referentialLocaleOrdinal; + + private LinkedHashSet<R> references; + + private Date lastUpdateDate; + + public static <D extends IdDto, R extends ObserveReference> ObserveReferenceSetBuilder<D, R> of( + + ReferentialLocale referentialLocale, ObserveReferenceSetDefinition<D> definition, Class<TopiaEntity> entityType) { + + ObserveReferenceSetBuilder<D, R> referenceDtoBuilder = new ObserveReferenceSetBuilder<>(); + + referenceDtoBuilder.definition = definition; + referenceDtoBuilder.referentialLocaleOrdinal = referentialLocale.ordinal(); + referenceDtoBuilder.binder = BinderFactory.newBinder(entityType); + referenceDtoBuilder.propertyNames = definition.getPropertyNames(); + + List<String> entityPropertyNames = new ArrayList<>(); + + for (String propertyName : referenceDtoBuilder.propertyNames) { + + if (ReferentialReferenceDto.PROPERTY_LABEL.equals(propertyName)) { + propertyName = referenceDtoBuilder.i18nEntityPropertyName = referentialLocale.getLibelle(); + } + entityPropertyNames.add(propertyName); + } + referenceDtoBuilder.entityPropertyNames = entityPropertyNames.toArray(new String[entityPropertyNames.size()]); + referenceDtoBuilder.propertyTypes = definition.getPropertyTypes(); + referenceDtoBuilder.references = new LinkedHashSet<>(); + + return referenceDtoBuilder; + + } + + public ObserveReferenceSetBuilder<D, R> setLastUpdateDate(Date lastUpdateDate) { + this.lastUpdateDate = lastUpdateDate; + return this; + } + + public ObserveReferenceSet<D, R> build() { + return ObserveReferenceSet.of(definition, references, lastUpdateDate); + } + + public ObserveReferenceSetBuilder<D, R> addReferentialReference(TopiaEntity entity) { + + Map<String, Object> entityProperties = loadProperties(entity); + + Serializable[] propertyValues = new Serializable[propertyTypes.length]; + for (int i = 0; i < propertyTypes.length; i++) { + String propertyName = propertyNames[i]; + + if (ReferentialReferenceDto.PROPERTY_LABEL.equals(propertyName)) { + propertyName = i18nEntityPropertyName; + } + Serializable propertyValue = (Serializable) entityProperties.get(propertyName); + Class<?> propertyType = propertyTypes[i]; + + if (propertyValue == null) { + + if (propertyType.isPrimitive()) { + propertyValue = (Serializable) Defaults.defaultValue(propertyType); + } + + } else { + + if (propertyValue instanceof ReferenceEntity) { + + propertyValue = transformReferenceEntity(propertyType, (ReferenceEntity) propertyValue); + + } else { + + propertyValue = transform(propertyValue); + + } + + checkType(propertyName, propertyValue, propertyType); + + } + + propertyValues[i] = propertyValue; + + } + + ObserveReferentialReference result = new ObserveReferentialReference(); + + result.setValues(propertyValues); + result.setId(entity.getTopiaId()); + result.setVersion(entity.getTopiaVersion()); + result.setCreateDate(entity.getTopiaCreateDate()); + + ReferenceEntity referenceEntity = (ReferenceEntity) entity; + result.setEnabled(referenceEntity.isEnabled()); + result.setNeedComment(referenceEntity.isNeedComment()); + result.setLastUpdate(referenceEntity.getLastUpdate()); + result.setEnabled(fr.ird.observe.entities.constants.ReferenceStatus.enabled == referenceEntity.getStatus()); + + references.add((R) result); + + return this; + + } + + public ObserveReferenceSetBuilder<D, R> addReference(TopiaEntity entity) { + + Map<String, Object> entityProperties = loadProperties(entity); + + Serializable[] propertyValues = new Serializable[propertyTypes.length]; + for (int i = 0; i < propertyTypes.length; i++) { + String propertyName = propertyNames[i]; + + Serializable propertyValue = (Serializable) entityProperties.get(propertyName); + Class<?> propertyType = propertyTypes[i]; + + if (propertyValue == null) { + + if (propertyType.isPrimitive()) { + propertyValue = (Serializable) Defaults.defaultValue(propertyType); + } + + } else { + + if (propertyValue instanceof ReferenceEntity) { + + propertyValue = transformReferenceEntity(propertyType, (ReferenceEntity) propertyValue); + + } else if (propertyValue instanceof TopiaEntity) { + + //TODO + + } else { + + propertyValue = transform(propertyValue); + + } + + checkType(propertyName, propertyValue, propertyType); + + } + + propertyValues[i] = propertyValue; + + } + + ObserveReference result = new ObserveReference(); + result.setValues(propertyValues); + result.setId(entity.getTopiaId()); + + references.add((R) result); + + return this; + + } + + protected void checkType(String propertyName, Serializable propertyValue, Class<?> propertyType) { + if (propertyType.isPrimitive()) { + Preconditions.checkState(ReflectUtil.boxType(propertyType).isAssignableFrom(propertyValue.getClass()), "Le type de la propriété " + propertyName + " devrait être du type " + propertyType.getName() + " mais vaut: " + propertyValue); + } else { + Preconditions.checkState(propertyType.isAssignableFrom(propertyValue.getClass()), "Le type de la propriété " + propertyName + " devrait être du type " + propertyType.getName() + " mais vaut: " + propertyValue); + } + } + + protected Map<String, Object> loadProperties(TopiaEntity entity) { + + Preconditions.checkNotNull(entity, "'entity' can't be null"); + + // on extrait l' entité du proxy hibernate + if (entity instanceof HibernateProxy) { + Hibernate.initialize(entity); + entity = (TopiaEntity) ((HibernateProxy) entity).getHibernateLazyInitializer().getImplementation(); + } + + Map<String, Object> entityProperties = binder.obtainProperties(entity, true, entityPropertyNames); + return entityProperties; + + } + + protected Serializable transformReferenceEntity(Class<?> propertyType, ReferenceEntity referentialEntity) { + + Serializable result; + if (String.class.equals(propertyType)) { + + // Conversion + + result = ReferenceEntities.toString(referentialLocaleOrdinal, referentialEntity); + + } else { + + // on veut récupérer une référence + //TODO + result = null; + + } + + return result; + } + + protected Serializable transform(Object propertyValue) { + Function function = ObserveDtosInitializer.getEntityToDtoFunction(propertyValue); + if (function != null) { + propertyValue = function.apply(propertyValue); + } + return (Serializable) propertyValue; + } + +} diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferenceSetServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferenceSetServiceTopia.java index 3178da1..0189f1a 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferenceSetServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferenceSetServiceTopia.java @@ -3,20 +3,25 @@ package fr.ird.observe.services.service; import com.google.common.base.Optional; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; -import fr.ird.observe.entities.referentiel.ReferenceEntity; import fr.ird.observe.services.ObserveServiceTopia; -import fr.ird.observe.services.builder.EntityToReferentialReferenceDtoBuilder; import fr.ird.observe.services.dto.IdDto; -import fr.ird.observe.services.dto.ReferenceSetDto; -import fr.ird.observe.services.dto.ReferenceSetDtos; +import fr.ird.observe.services.dto.reference.ObserveReference; +import fr.ird.observe.services.dto.reference.ObserveReferenceSet; +import fr.ird.observe.services.dto.reference.ObserveReferenceSetBuilder; +import fr.ird.observe.services.dto.reference.ObserveReferenceSetRequest; +import fr.ird.observe.services.dto.reference.ObserveReferenceSetResult; +import fr.ird.observe.services.dto.reference.ObserveReferentialReference; +import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetRequestDefinition; +import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetRequestDefinitions; +import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetRequestKeyDefinition; import fr.ird.observe.services.dto.referential.ReferentialDto; -import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; import fr.ird.observe.services.entity.EntitiesExtractor; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaEntity; import java.util.Collections; import java.util.Date; -import java.util.LinkedHashSet; import java.util.Map; /** @@ -26,27 +31,25 @@ import java.util.Map; */ public class ReferenceSetServiceTopia extends ObserveServiceTopia implements ReferenceSetService { + /** Logger. */ + private static final Log log = LogFactory.getLog(ReferenceSetServiceTopia.class); + @Override - public ReferentialReferenceSetResult loadDataReferenceSets(ReferenceSetRequest request) { + public ObserveReferenceSetResult<ObserveReference> loadDataReferenceSets(ObserveReferenceSetRequest request) { String requestName = request.getRequestName(); - ReferenceSetRequestDefinitions requestDefinitions = ReferenceSetRequestDefinitions.valueOf(requestName); - if (requestDefinitions == null) { - throw new IllegalArgumentException("No request with name " + requestName + "registred"); - } + ObserveReferenceSetRequestDefinition requestDefinition = ObserveReferenceSetRequestDefinitions.get(requestName); - ReferenceSetRequestDefinition requestDefinition = requestDefinitions.getDefinition(); + ObserveReferenceSetResult.Builder<ObserveReference> resultBuilder = ObserveReferenceSetResult.builder(requestName); - ReferentialReferenceSetResult.Builder resultBuilder = new ReferentialReferenceSetResult.Builder(request); + for (ObserveReferenceSetRequestKeyDefinition definition : requestDefinition.getKeys()) { - for (ReferenceSetRequestKeyDefinition requestKeyDefinition : requestDefinition.getKeys()) { + boolean referential = definition.isReferential(); + Preconditions.checkArgument(!referential, "Can't obtain referenceSet of referential here, but try with " + definition); - boolean referential = requestKeyDefinition.isReferential(); - Preconditions.checkArgument(!referential, "Can't obtain referenceSet of referential here, but try with " + requestKeyDefinition); + ObserveReferenceSet<IdDto, ObserveReference> referenceSet = loadDataReferenceSet(definition); - String name = requestKeyDefinition.getName(); - - ReferenceSetDto referenceSet = loadDataReferenceSet(requestKeyDefinition); - resultBuilder.addKey(name, referenceSet); + String name = definition.getName(); + addKey(resultBuilder, name, referenceSet); } @@ -55,73 +58,82 @@ public class ReferenceSetServiceTopia extends ObserveServiceTopia implements Ref } @Override - public ReferentialReferenceSetResult loadReferentialReferenceSets(ReferenceSetRequest request) { + public ObserveReferenceSetResult<ObserveReferentialReference> loadReferentialReferenceSets(ObserveReferenceSetRequest request) { String requestName = request.getRequestName(); - ReferenceSetRequestDefinitions requestDefinitions = ReferenceSetRequestDefinitions.valueOf(requestName); - if (requestDefinitions == null) { - throw new IllegalArgumentException("No request with name " + requestName + "registred"); - } - ReferenceSetRequestDefinition requestDefinition = requestDefinitions.getDefinition(); + ObserveReferenceSetRequestDefinition requestDefinition = ObserveReferenceSetRequestDefinitions.get(requestName); - ReferentialReferenceSetResult.Builder resultBuilder = new ReferentialReferenceSetResult.Builder(request); + ObserveReferenceSetResult.Builder<ObserveReferentialReference> resultBuilder = ObserveReferenceSetResult.builder(requestName); ImmutableMap<String, Date> lastUpdateDates = request.getLastUpdateDates(); - for (ReferenceSetRequestKeyDefinition requestKeyDefinition : requestDefinition.getKeys()) { + for (ObserveReferenceSetRequestKeyDefinition definition : requestDefinition.getKeys()) { - boolean referential = requestKeyDefinition.isReferential(); - Preconditions.checkArgument(referential, "Can't obtain referenceSet of data here, but try with " + requestKeyDefinition); + boolean referential = definition.isReferential(); + Preconditions.checkArgument(referential, "Can't obtain referenceSet of data here, but try with " + definition); - String name = requestKeyDefinition.getName(); + String name = definition.getName(); Date lastUpdateDate = lastUpdateDates.get(name); - ReferenceSetDto referenceSet = loadReferentialReferenceSet(requestKeyDefinition, lastUpdateDate); - resultBuilder.addKey(name, referenceSet); + ObserveReferenceSet<ReferentialDto, ObserveReferentialReference> referenceSet = loadReferentialReferenceSet(definition, lastUpdateDate); + addKey(resultBuilder, name, referenceSet); + } return resultBuilder.build(); } - protected <D extends IdDto> ReferenceSetDto<D> loadDataReferenceSet(ReferenceSetRequestKeyDefinition<D> requestKeyDefinition) { + protected <D extends IdDto, R extends ObserveReference> void addKey(ObserveReferenceSetResult.Builder<R> resultBuilder, String name, ObserveReferenceSet<D, R> referenceSet) { + if (referenceSet != null) { + if (log.isInfoEnabled()) { + log.info("Add reference set " + name + " : " + referenceSet); + } + resultBuilder.addKey(name, referenceSet); + } + } - Class<D> type = requestKeyDefinition.getType(); - Class<TopiaEntity> entityType = getEntityType(type); - String name = requestKeyDefinition.getName(); + protected <D extends IdDto> ObserveReferenceSet<D, ObserveReference> loadDataReferenceSet(ObserveReferenceSetRequestKeyDefinition<D> requestKeyDefinition) { + + Class<TopiaEntity> entityType = getEntityType(requestKeyDefinition.getType()); - Iterable<TopiaEntity> entitiesExtractor = getEntities(requestKeyDefinition, Collections.<String, Object>emptyMap()); + ObserveReferenceSetBuilder<D, ObserveReference> referenceBuilder = ObserveReferenceSetBuilder.of(serviceContext.getReferentialLocale(), requestKeyDefinition.getDefinition(), entityType); - //TODO - ReferenceSetDto<D> referenceSet = null; + Iterable<TopiaEntity> entities = getEntities(requestKeyDefinition, Collections.<String, Object>emptyMap()); + for (TopiaEntity entity : entities) { + + referenceBuilder.addReference(entity); + + } + + ObserveReferenceSet<D, ObserveReference> referenceSet = referenceBuilder.build(); return referenceSet; + } - protected <D extends ReferentialDto, E extends ReferenceEntity> ReferenceSetDto<D> loadReferentialReferenceSet(ReferenceSetRequestKeyDefinition<D> requestKeyDefinition, Date lastUpdateDate) { + protected <D extends ReferentialDto> ObserveReferenceSet<D, ObserveReferentialReference> loadReferentialReferenceSet(ObserveReferenceSetRequestKeyDefinition<D> requestKeyDefinition, Date lastUpdateDate) { - Class<D> type = requestKeyDefinition.getType(); - Class<E> entityType = getEntityType(type); - String name = requestKeyDefinition.getName(); + Class<TopiaEntity> entityType = getEntityType(requestKeyDefinition.getType()); Optional<Date> lastUpdateOptional = getLastUpdate(entityType); - ReferenceSetDto<D> referenceSet; - if (lastUpdateOptional.isPresent() && lastUpdateOptional.get().after(lastUpdateDate)) { + ObserveReferenceSet<D, ObserveReferentialReference> referenceSet; + if (lastUpdateOptional.isPresent() && (lastUpdateDate == null || lastUpdateOptional.get().after(lastUpdateDate))) { + + ObserveReferenceSetBuilder<D, ObserveReferentialReference> referenceBuilder = ObserveReferenceSetBuilder.of(serviceContext.getReferentialLocale(), requestKeyDefinition.getDefinition(), entityType); - EntityToReferentialReferenceDtoBuilder<E, D> referenceBuilder = EntityToReferentialReferenceDtoBuilder.of(serviceContext.getReferentialLocale(), requestKeyDefinition, entityType); + referenceBuilder.setLastUpdateDate(lastUpdateOptional.get()); - Iterable<E> entities = getEntities(requestKeyDefinition, Collections.<String, Object>emptyMap()); + Iterable<TopiaEntity> entities = getEntities(requestKeyDefinition, Collections.<String, Object>emptyMap()); - LinkedHashSet<ReferentialReferenceDto<D>> labels = new LinkedHashSet<>(); - for (E entity : entities) { + for (TopiaEntity entity : entities) { - ReferentialReferenceDto<D> dto = referenceBuilder.build(entity); - labels.add(dto); + referenceBuilder.addReferentialReference(entity); } - referenceSet = ReferenceSetDtos.newReferenceSetDto(type, name, labels, lastUpdateOptional.get()); + referenceSet = referenceBuilder.build(); } else { @@ -130,13 +142,12 @@ public class ReferenceSetServiceTopia extends ObserveServiceTopia implements Ref } return referenceSet; - } + } - protected <E extends TopiaEntity, D extends IdDto> Iterable<E> getEntities(ReferenceSetRequestKeyDefinition<D> requestKeyDefinition, + protected <E extends TopiaEntity, D extends IdDto> Iterable<E> getEntities(ObserveReferenceSetRequestKeyDefinition<D> requestKeyDefinition, Map<String, Object> dataContext) { - Class<D> type = requestKeyDefinition.getType(); Class<E> entityType = getEntityType(type); Class<TopiaEntity> entityParentType = getEntityType(requestKeyDefinition.getParentType()); @@ -157,6 +168,7 @@ public class ReferenceSetServiceTopia extends ObserveServiceTopia implements Ref } return entities; + } } diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferenceSetServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferenceSetServiceTopiaTest.java new file mode 100644 index 0000000..9af6322 --- /dev/null +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferenceSetServiceTopiaTest.java @@ -0,0 +1,54 @@ +package fr.ird.observe.services.service; + +import com.google.common.collect.ImmutableSet; +import fr.ird.observe.services.dto.reference.ObserveReferenceSetRequest; +import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetRequestDefinitions; +import fr.ird.observe.services.dto.reference.ObserveReferentialReference; +import fr.ird.observe.services.dto.reference.ObserveReferenceSetResult; +import org.junit.Assert; +import org.junit.Test; + +import java.util.Set; + +/** + * Created on 13/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ReferenceSetServiceTopiaTest extends AbstractServiceTopiaTest { + + protected ReferenceSetService service; + + @Override + public Set<String> getTestNamesChangeDataBase() { + return ImmutableSet.of(); + } + + @Override + public String getScriptName() { + return "referentiel"; + } + + @Override + public void setUp() throws Exception { + super.setUp(); + + service = newService(ReferenceSetService.class); + + } + + @Test + public void testGetTripSeineRequest() throws Exception { + + String requestName = ObserveReferenceSetRequestDefinitions.TRIP_SEINE_FORM.name(); + ObserveReferenceSetRequest request = new ObserveReferenceSetRequest(); + request.setRequestName(requestName); + + ObserveReferenceSetResult<ObserveReferentialReference> referentialLabelSet = service.loadReferentialReferenceSets(request); + Assert.assertNotNull(referentialLabelSet); + Assert.assertEquals(requestName, referentialLabelSet.getRequestName()); + Assert.assertNotNull(referentialLabelSet.getReferenceSets()); + + } + +} \ No newline at end of file -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit 01f6fb6dbdc60ff07af0c237521db0afdcde6f7e Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Nov 14 02:12:49 2015 +0100 remove dead code --- .../fr/ird/observe/application/web/ObserveWebMotionRender.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebMotionRender.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebMotionRender.java index 32e82eb..07905fb 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebMotionRender.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebMotionRender.java @@ -56,14 +56,6 @@ public class ObserveWebMotionRender<T> extends Render { ObserveWebApplicationContext applicationContext = ObserveWebApplicationContext.getApplicationContext(context); -// if (model instanceof InvalidFormException || model instanceof FavoriteListImportException) { -// -// response.setStatus(HttpServletResponse.SC_BAD_REQUEST); -// -// } - - applicationContext.getGsonSupplier(); - Gson gson = applicationContext.getGsonSupplier().get(); String json = gson.toJson(model); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit 42d49839a3f0e6581d1735f19e4270a7491b8d3c Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Nov 14 02:21:21 2015 +0100 Ajout d'une action pour recharger la configuration du serveur --- .../web/ObserveWebApplicationContext.java | 16 +++++++++++++++ .../web/controller/v1/ConfigurationController.java | 23 ++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebApplicationContext.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebApplicationContext.java index 9ace49b..912e808 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebApplicationContext.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebApplicationContext.java @@ -112,6 +112,22 @@ public class ObserveWebApplicationContext implements Closeable { } + public void reloadConfiguration() throws InvalidObserveWebUserPermissionException, InvalidObserveWebUsersException, InvalidObserveWebUserException, InvalidObserveWebDatabaseException, InvalidObserveWebDatabasesException, InvalidObserveWebDatabaseRoleException { + + // init databases + ObserveWebDatabasesHelper databasesHelper = new ObserveWebDatabasesHelper(); + databases = databasesHelper.load(applicationConfiguration.getDatabasesConfigurationFile()); + + // init users + ObserveWebUsersHelper usersHelper = new ObserveWebUsersHelper(); + users = usersHelper.load(databases, applicationConfiguration.getUsersConfigurationFile()); + + Version modelVersion = applicationConfiguration.getModelVersion(); + + securityApplicationContext.init(databases, users, modelVersion); + + } + @Override public void close() { diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ConfigurationController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ConfigurationController.java index 765b4d2..2763cd4 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ConfigurationController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ConfigurationController.java @@ -23,8 +23,14 @@ package fr.ird.observe.application.web.controller.v1; */ import com.google.common.collect.ImmutableMap; +import fr.ird.observe.application.web.configuration.db.InvalidObserveWebDatabaseException; +import fr.ird.observe.application.web.configuration.db.InvalidObserveWebDatabaseRoleException; +import fr.ird.observe.application.web.configuration.db.InvalidObserveWebDatabasesException; import fr.ird.observe.application.web.configuration.db.ObserveWebDatabases; import fr.ird.observe.application.web.configuration.db.ObserveWebDatabasesHelper; +import fr.ird.observe.application.web.configuration.user.InvalidObserveWebUserException; +import fr.ird.observe.application.web.configuration.user.InvalidObserveWebUserPermissionException; +import fr.ird.observe.application.web.configuration.user.InvalidObserveWebUsersException; import fr.ird.observe.application.web.configuration.user.ObserveWebUsers; import fr.ird.observe.application.web.configuration.user.ObserveWebUsersHelper; import fr.ird.observe.application.web.controller.ObserveWebMotionController; @@ -155,5 +161,22 @@ public class ConfigurationController extends ObserveWebMotionController { } + public RenderContent reload() throws IOException, InvalidObserveWebUserPermissionException, InvalidObserveWebDatabaseException, InvalidObserveWebDatabasesException, InvalidObserveWebDatabaseRoleException, InvalidObserveWebUsersException, InvalidObserveWebUserException { + + // Reset all connexions + + ObserveWebSecurityApplicationContext securityApplicationContext = getSecurityApplicationContext(); + ImmutableMap<String, ObserveDataSourceConfigurationAndConnection> authenticationTokensCache = securityApplicationContext.getConfigurationByAuthenticationToken(); + + for (String authenticationToken : authenticationTokensCache.keySet()) { + securityApplicationContext.invalidateAuthenticationToken(authenticationToken); + } + + getApplicationContext().reloadConfiguration(); + + return home(); + + } + } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit 28bb481cd50b1b051fe6754f36e6ce0ba554189b Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Nov 18 10:47:23 2015 +0100 Avoid NPe + improve code --- .../dto/reference/ObserveReferenceSetResult.java | 8 ++++++++ .../services/service/ReferenceSetServiceTopia.java | 19 +++---------------- .../service/ReferenceSetServiceTopiaTest.java | 7 +++++-- 3 files changed, 16 insertions(+), 18 deletions(-) diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetResult.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetResult.java index 1c1614f..2812e03 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetResult.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetResult.java @@ -1,6 +1,8 @@ package fr.ird.observe.services.dto.reference; import com.google.common.collect.ImmutableMap; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import java.util.Date; import java.util.Map; @@ -12,6 +14,9 @@ import java.util.Map; */ public class ObserveReferenceSetResult<R extends ObserveReference> { + /** Logger. */ + private static final Log log = LogFactory.getLog(ObserveReferenceSetResult.class); + private final String requestName; private final ImmutableMap<String, ObserveReferenceSet<?, R>> referenceSets; @@ -52,6 +57,9 @@ public class ObserveReferenceSetResult<R extends ObserveReference> { } public Builder addKey(String name, ObserveReferenceSet<?, R> referenceSet) { + if (log.isInfoEnabled()) { + log.info("Add reference set " + name + " : " + referenceSet); + } referenceSetsMapBuilder.put(name, referenceSet); return this; } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferenceSetServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferenceSetServiceTopia.java index 0189f1a..aae7d5b 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferenceSetServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferenceSetServiceTopia.java @@ -16,8 +16,6 @@ import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetReque import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetRequestKeyDefinition; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.entity.EntitiesExtractor; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaEntity; import java.util.Collections; @@ -31,9 +29,6 @@ import java.util.Map; */ public class ReferenceSetServiceTopia extends ObserveServiceTopia implements ReferenceSetService { - /** Logger. */ - private static final Log log = LogFactory.getLog(ReferenceSetServiceTopia.class); - @Override public ObserveReferenceSetResult<ObserveReference> loadDataReferenceSets(ObserveReferenceSetRequest request) { String requestName = request.getRequestName(); @@ -49,7 +44,7 @@ public class ReferenceSetServiceTopia extends ObserveServiceTopia implements Ref ObserveReferenceSet<IdDto, ObserveReference> referenceSet = loadDataReferenceSet(definition); String name = definition.getName(); - addKey(resultBuilder, name, referenceSet); + resultBuilder.addKey(name, referenceSet); } @@ -66,6 +61,7 @@ public class ReferenceSetServiceTopia extends ObserveServiceTopia implements Ref ObserveReferenceSetResult.Builder<ObserveReferentialReference> resultBuilder = ObserveReferenceSetResult.builder(requestName); ImmutableMap<String, Date> lastUpdateDates = request.getLastUpdateDates(); + Preconditions.checkNotNull(lastUpdateDates); for (ObserveReferenceSetRequestKeyDefinition definition : requestDefinition.getKeys()) { @@ -76,7 +72,7 @@ public class ReferenceSetServiceTopia extends ObserveServiceTopia implements Ref Date lastUpdateDate = lastUpdateDates.get(name); ObserveReferenceSet<ReferentialDto, ObserveReferentialReference> referenceSet = loadReferentialReferenceSet(definition, lastUpdateDate); - addKey(resultBuilder, name, referenceSet); + resultBuilder.addKey(name, referenceSet); } @@ -84,15 +80,6 @@ public class ReferenceSetServiceTopia extends ObserveServiceTopia implements Ref } - protected <D extends IdDto, R extends ObserveReference> void addKey(ObserveReferenceSetResult.Builder<R> resultBuilder, String name, ObserveReferenceSet<D, R> referenceSet) { - if (referenceSet != null) { - if (log.isInfoEnabled()) { - log.info("Add reference set " + name + " : " + referenceSet); - } - resultBuilder.addKey(name, referenceSet); - } - } - protected <D extends IdDto> ObserveReferenceSet<D, ObserveReference> loadDataReferenceSet(ObserveReferenceSetRequestKeyDefinition<D> requestKeyDefinition) { Class<TopiaEntity> entityType = getEntityType(requestKeyDefinition.getType()); diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferenceSetServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferenceSetServiceTopiaTest.java index 9af6322..58b1820 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferenceSetServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferenceSetServiceTopiaTest.java @@ -1,13 +1,15 @@ package fr.ird.observe.services.service; +import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import fr.ird.observe.services.dto.reference.ObserveReferenceSetRequest; -import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetRequestDefinitions; -import fr.ird.observe.services.dto.reference.ObserveReferentialReference; import fr.ird.observe.services.dto.reference.ObserveReferenceSetResult; +import fr.ird.observe.services.dto.reference.ObserveReferentialReference; +import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetRequestDefinitions; import org.junit.Assert; import org.junit.Test; +import java.util.Date; import java.util.Set; /** @@ -43,6 +45,7 @@ public class ReferenceSetServiceTopiaTest extends AbstractServiceTopiaTest { String requestName = ObserveReferenceSetRequestDefinitions.TRIP_SEINE_FORM.name(); ObserveReferenceSetRequest request = new ObserveReferenceSetRequest(); request.setRequestName(requestName); + request.setLastUpdateDates(ImmutableMap.<String, Date>of()); ObserveReferenceSetResult<ObserveReferentialReference> referentialLabelSet = service.loadReferentialReferenceSets(request); Assert.assertNotNull(referentialLabelSet); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit 366574f1b51e6cab179845fc267120e682148c5c Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 17:22:53 2015 +0100 ajout des définitions des requetes --- .../definition/ObserveReferenceSetDefinitions.java | 2 +- .../ObserveReferenceSetRequestDefinitions.java | 90 +++++++++++++++++++++- 2 files changed, 90 insertions(+), 2 deletions(-) diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetDefinitions.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetDefinitions.java index 6e1f93b..e959ad7 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetDefinitions.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetDefinitions.java @@ -137,7 +137,7 @@ public enum ObserveReferenceSetDefinitions { BAIT_SETTING_STATUS(newDefaultDefinitionBuilder(BaitSettingStatusDto.class)), - BAITTYPE(newDefaultDefinitionBuilder(BaitTypeDto.class)), + BAIT_TYPE(newDefaultDefinitionBuilder(BaitTypeDto.class)), CATCH_FATE_LONGLINE(newDefaultDefinitionBuilder(CatchFateLonglineDto.class)), diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestDefinitions.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestDefinitions.java index e7e520f..67e81fb 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestDefinitions.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestDefinitions.java @@ -1,6 +1,15 @@ package fr.ird.observe.services.dto.reference.definition; import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.longline.ActivityLonglineDto; +import fr.ird.observe.services.dto.longline.BranchlineDto; +import fr.ird.observe.services.dto.longline.SetLonglineDto; +import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; +import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.seine.ActivitySeineDto; +import fr.ird.observe.services.dto.seine.ActivitySeineObservedSystemDto; +import fr.ird.observe.services.dto.seine.FloatingObjectDto; +import fr.ird.observe.services.dto.seine.SetSeineDto; import fr.ird.observe.services.dto.seine.TripSeineDto; /** @@ -12,6 +21,84 @@ import fr.ird.observe.services.dto.seine.TripSeineDto; */ public enum ObserveReferenceSetRequestDefinitions { + ACTIVITY_LONGLINE_FORM(newBuilder(ActivityLonglineDto.class) + .addKey(ActivityLonglineDto.PROPERTY_FPA_ZONE, + ObserveReferenceSetDefinitions.FPA_ZONE) + .addKey(ActivityLonglineDto.PROPERTY_VESSEL_ACTIVITY_LONGLINE, + ObserveReferenceSetDefinitions.VESSEL_ACTIVITY_LONGLINE) + ), + + BRANCHLINE_FORM(newBuilder(BranchlineDto.class) + .addKey(BranchlineDto.PROPERTY_BAIT_SETTING_STATUS, ObserveReferenceSetDefinitions.BAIT_SETTING_STATUS) + .addKey(BranchlineDto.PROPERTY_HOOK_SIZE, ObserveReferenceSetDefinitions.HOOK_SIZE) + .addKey(BranchlineDto.PROPERTY_BAIT_HAULING_STATUS, ObserveReferenceSetDefinitions.BAIT_HAULING_STATUS) + .addKey(BranchlineDto.PROPERTY_HOOK_TYPE, ObserveReferenceSetDefinitions.HOOK_TYPE) + .addKey(BranchlineDto.PROPERTY_TRACELINE_TYPE, ObserveReferenceSetDefinitions.LINE_TYPE) + .addKey(BranchlineDto.PROPERTY_TOP_TYPE, ObserveReferenceSetDefinitions.LINE_TYPE) + .addKey(BranchlineDto.PROPERTY_BAIT_TYPE, ObserveReferenceSetDefinitions.BAIT_TYPE) + ), + + SET_LONGLINE_GLOBAL_COMPOSITION_FORM(newBuilder(SetLonglineGlobalCompositionDto.class) + .addKey(SetLonglineGlobalCompositionDto.PROPERTY_MITIGATION_TYPE, + ObserveReferenceSetDefinitions.MITIGATION_TYPE) + ), + + SET_LONGLINE_FORM(newBuilder(SetLonglineDto.class) + .addKey(SetLonglineDto.PROPERTY_SETTING_SHAPE, ObserveReferenceSetDefinitions.SETTING_SHAPE) + .addKey(SetLonglineDto.PROPERTY_LINE_TYPE, ObserveReferenceSetDefinitions.LINE_TYPE) + .addKey(SetLonglineDto.PROPERTY_LIGHTSTICKS_TYPE, ObserveReferenceSetDefinitions.LIGHTSTICKS_TYPE) + .addKey(SetLonglineDto.PROPERTY_LIGHTSTICKS_COLOR, ObserveReferenceSetDefinitions.LIGHTSTICKS_COLOR) + ), + + TRIP_LONGLINE_FORM(newBuilder(TripLonglineDto.class) + .addKey(TripLonglineDto.PROPERTY_TRIP_TYPE, ObserveReferenceSetDefinitions.TRIP_TYPE) + .addKey(TripLonglineDto.PROPERTY_OBSERVER, ObserveReferenceSetDefinitions.PERSON) + .addKey(TripLonglineDto.PROPERTY_VESSEL, ObserveReferenceSetDefinitions.VESSEL) + .addKey(TripLonglineDto.PROPERTY_CAPTAIN, ObserveReferenceSetDefinitions.PERSON) + .addKey(TripLonglineDto.PROPERTY_DATA_ENTRY_OPERATOR, ObserveReferenceSetDefinitions.PERSON) + .addKey(TripLonglineDto.PROPERTY_PROGRAM, ObserveReferenceSetDefinitions.PROGRAM) + .addKey(TripLonglineDto.PROPERTY_OCEAN, ObserveReferenceSetDefinitions.OCEAN) + .addKey(TripLonglineDto.PROPERTY_DEPARTURE_HARBOUR, ObserveReferenceSetDefinitions.HARBOUR) + .addKey(TripLonglineDto.PROPERTY_LANDING_HARBOUR, ObserveReferenceSetDefinitions.HARBOUR) + ), + + ACTIVITY_SEINE_OBSERVED_SYSTEM_FORM(newBuilder(ActivitySeineObservedSystemDto.class) + .addKey(ActivitySeineObservedSystemDto.PROPERTY_OBSERVED_SYSTEM, + ObserveReferenceSetDefinitions.OBSERVED_SYSTEM) + ), + + ACTIVITY_SEINE_FORM(newBuilder(ActivitySeineDto.class) + .addKey(ActivitySeineDto.PROPERTY_VESSEL_ACTIVITY_SEINE, + ObserveReferenceSetDefinitions.VESSEL_ACTIVITY_SEINE) + .addKey(ActivitySeineDto.PROPERTY_SURROUNDING_ACTIVITY, + ObserveReferenceSetDefinitions.SURROUNDING_ACTIVITY) + .addKey(ActivitySeineDto.PROPERTY_WIND, ObserveReferenceSetDefinitions.WIND) + .addKey(ActivitySeineDto.PROPERTY_DETECTION_MODE, + ObserveReferenceSetDefinitions.DETECTION_MODE) + .addKey(ActivitySeineDto.PROPERTY_REASON_FOR_NO_FISHING, + ObserveReferenceSetDefinitions.REASON_FOR_NO_FISHING) + .addKey(ActivitySeineDto.PROPERTY_PREVIOUS_FPA_ZONE, + ObserveReferenceSetDefinitions.FPA_ZONE) + .addKey(ActivitySeineDto.PROPERTY_CURRENT_FPA_ZONE, + ObserveReferenceSetDefinitions.FPA_ZONE) + .addKey(ActivitySeineDto.PROPERTY_NEXT_FPA_ZONE, + ObserveReferenceSetDefinitions.FPA_ZONE) + ), + + FLOATING_OBJECT_FORM(newBuilder(FloatingObjectDto.class) + .addKey(FloatingObjectDto.PROPERTY_OBJECT_TYPE, + ObserveReferenceSetDefinitions.OBJECT_TYPE) + .addKey(FloatingObjectDto.PROPERTY_OBJECT_OPERATION, + ObserveReferenceSetDefinitions.OBJECT_OPERATION) + .addKey(FloatingObjectDto.PROPERTY_OBJECT_FATE, + ObserveReferenceSetDefinitions.OBJECT_FATE) + ), + + SET_SEINE_FORM(newBuilder(SetSeineDto.class) + .addKey(SetSeineDto.PROPERTY_REASON_FOR_NULL_SET, + ObserveReferenceSetDefinitions.REASON_FOR_NULL_SET) + ), + TRIP_SEINE_FORM(newBuilder(TripSeineDto.class) .addKey(TripSeineDto.PROPERTY_OBSERVER, ObserveReferenceSetDefinitions.PERSON) .addKey(TripSeineDto.PROPERTY_CAPTAIN, ObserveReferenceSetDefinitions.PERSON) @@ -20,7 +107,8 @@ public enum ObserveReferenceSetRequestDefinitions { .addKey(TripSeineDto.PROPERTY_OCEAN, ObserveReferenceSetDefinitions.OCEAN) .addKey(TripSeineDto.PROPERTY_DEPARTURE_HARBOUR, ObserveReferenceSetDefinitions.HARBOUR) .addKey(TripSeineDto.PROPERTY_LANDING_HARBOUR, ObserveReferenceSetDefinitions.HARBOUR) - .addKey(TripSeineDto.PROPERTY_PROGRAM, ObserveReferenceSetDefinitions.PROGRAM)),; + .addKey(TripSeineDto.PROPERTY_PROGRAM, ObserveReferenceSetDefinitions.PROGRAM) + ); public final ObserveReferenceSetRequestDefinition definition; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit e8a38b20f791383683497a5c4049ead9f7243865 Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 17:53:12 2015 +0100 ajout des définitions pour les référentiels --- .../ObserveReferenceSetRequestDefinitions.java | 63 ++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestDefinitions.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestDefinitions.java index 67e81fb..12a26ea 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestDefinitions.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestDefinitions.java @@ -6,6 +6,17 @@ import fr.ird.observe.services.dto.longline.BranchlineDto; import fr.ird.observe.services.dto.longline.SetLonglineDto; import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.referential.GearCaracteristicDto; +import fr.ird.observe.services.dto.referential.GearDto; +import fr.ird.observe.services.dto.referential.HarbourDto; +import fr.ird.observe.services.dto.referential.LengthWeightParameterDto; +import fr.ird.observe.services.dto.referential.OrganismDto; +import fr.ird.observe.services.dto.referential.PersonDto; +import fr.ird.observe.services.dto.referential.ProgramDto; +import fr.ird.observe.services.dto.referential.SpeciesDto; +import fr.ird.observe.services.dto.referential.SpeciesListDto; +import fr.ird.observe.services.dto.referential.VesselDto; +import fr.ird.observe.services.dto.referential.seine.WeightCategoryDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.ActivitySeineObservedSystemDto; import fr.ird.observe.services.dto.seine.FloatingObjectDto; @@ -108,6 +119,58 @@ public enum ObserveReferenceSetRequestDefinitions { .addKey(TripSeineDto.PROPERTY_DEPARTURE_HARBOUR, ObserveReferenceSetDefinitions.HARBOUR) .addKey(TripSeineDto.PROPERTY_LANDING_HARBOUR, ObserveReferenceSetDefinitions.HARBOUR) .addKey(TripSeineDto.PROPERTY_PROGRAM, ObserveReferenceSetDefinitions.PROGRAM) + ), + + // REFERENTIAL + + GEAR_CARACTERISTIC_FORM(newBuilder(GearCaracteristicDto.class) + .addKey(GearCaracteristicDto.PROPERTY_GEAR_CARACTERISTIC_TYPE, + ObserveReferenceSetDefinitions.GEAR_CARACTERISTIC_TYPE) + ), + + GEAR_FORM(newBuilder(GearDto.class) + .addKey(GearDto.PROPERTY_GEAR_CARACTERISTIC, ObserveReferenceSetDefinitions.GEAR_CARACTERISTIC) + ), + + HARBOUR_FORM(newBuilder(HarbourDto.class) + .addKey(HarbourDto.PROPERTY_COUNTRY, ObserveReferenceSetDefinitions.COUNTRY) + ), + + LENGTH_WEIGHT_PARAMETER_FORM(newBuilder(LengthWeightParameterDto.class) + .addKey(LengthWeightParameterDto.PROPERTY_SPECIES, ObserveReferenceSetDefinitions.SPECIES) + .addKey(LengthWeightParameterDto.PROPERTY_OCEAN, ObserveReferenceSetDefinitions.OCEAN) + .addKey(LengthWeightParameterDto.PROPERTY_SEX, ObserveReferenceSetDefinitions.SEX) + ), + + ORGANISM_FORM(newBuilder(OrganismDto.class) + .addKey(OrganismDto.PROPERTY_COUNTRY, ObserveReferenceSetDefinitions.COUNTRY) + ), + + PERSON_FORM(newBuilder(PersonDto.class) + .addKey(PersonDto.PROPERTY_COUNTRY, ObserveReferenceSetDefinitions.COUNTRY) + ), + + PROGRAM_FORM(newBuilder(ProgramDto.class) + .addKey(ProgramDto.PROPERTY_ORGANISM, ObserveReferenceSetDefinitions.ORGANISM) + ), + + SPECIES_FORM(newBuilder(SpeciesDto.class) + .addKey(SpeciesDto.PROPERTY_OCEAN, ObserveReferenceSetDefinitions.OCEAN) + .addKey(SpeciesDto.PROPERTY_SPECIES_GROUP, ObserveReferenceSetDefinitions.SPECIES_GROUP) + ), + + SPECIES_LIST_FORM(newBuilder(SpeciesListDto.class) + .addKey(SpeciesListDto.PROPERTY_SPECIES, ObserveReferenceSetDefinitions.SPECIES) + ), + + VESSEL_FORM(newBuilder(VesselDto.class) + .addKey(VesselDto.PROPERTY_FLAG_COUNTRY, ObserveReferenceSetDefinitions.COUNTRY) + .addKey(VesselDto.PROPERTY_VESSEL_TYPE, ObserveReferenceSetDefinitions.VESSEL_TYPE) + .addKey(VesselDto.PROPERTY_VESSEL_SIZE_CATEGORY, ObserveReferenceSetDefinitions.VESSEL_SIZE_CATEGORY) + ), + + WEIGHT_CATEGORY_FORM(newBuilder(WeightCategoryDto.class) + .addKey(WeightCategoryDto.PROPERTY_SPECIES, ObserveReferenceSetDefinitions.SPECIES) ); public final ObserveReferenceSetRequestDefinition definition; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit 8d921fec150ef5490e8830dfcac0f4ce83108da8 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 19 11:07:48 2015 +0100 Reformatage des définitions --- .../ObserveReferenceSetRequestDefinitions.java | 174 ++++++++++++--------- 1 file changed, 98 insertions(+), 76 deletions(-) diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestDefinitions.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestDefinitions.java index 12a26ea..26a11fe 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestDefinitions.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestDefinitions.java @@ -23,6 +23,44 @@ import fr.ird.observe.services.dto.seine.FloatingObjectDto; import fr.ird.observe.services.dto.seine.SetSeineDto; import fr.ird.observe.services.dto.seine.TripSeineDto; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.BAIT_HAULING_STATUS; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.BAIT_SETTING_STATUS; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.BAIT_TYPE; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.COUNTRY; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.DETECTION_MODE; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.FPA_ZONE; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.GEAR_CARACTERISTIC; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.GEAR_CARACTERISTIC_TYPE; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.HARBOUR; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.HOOK_SIZE; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.HOOK_TYPE; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.LIGHTSTICKS_COLOR; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.LIGHTSTICKS_TYPE; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.LINE_TYPE; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.MITIGATION_TYPE; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.OBJECT_FATE; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.OBJECT_OPERATION; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.OBJECT_TYPE; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.OBSERVED_SYSTEM; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.OCEAN; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.ORGANISM; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.PERSON; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.PROGRAM; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.REASON_FOR_NO_FISHING; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.REASON_FOR_NULL_SET; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.SETTING_SHAPE; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.SEX; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.SPECIES; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.SPECIES_GROUP; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.SURROUNDING_ACTIVITY; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.TRIP_TYPE; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.VESSEL; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.VESSEL_ACTIVITY_LONGLINE; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.VESSEL_ACTIVITY_SEINE; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.VESSEL_SIZE_CATEGORY; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.VESSEL_TYPE; +import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.WIND; + /** * Contient les définitions de tous les requêtes que les services proposent. * @@ -33,144 +71,128 @@ import fr.ird.observe.services.dto.seine.TripSeineDto; public enum ObserveReferenceSetRequestDefinitions { ACTIVITY_LONGLINE_FORM(newBuilder(ActivityLonglineDto.class) - .addKey(ActivityLonglineDto.PROPERTY_FPA_ZONE, - ObserveReferenceSetDefinitions.FPA_ZONE) - .addKey(ActivityLonglineDto.PROPERTY_VESSEL_ACTIVITY_LONGLINE, - ObserveReferenceSetDefinitions.VESSEL_ACTIVITY_LONGLINE) + .addKey(ActivityLonglineDto.PROPERTY_FPA_ZONE, FPA_ZONE) + .addKey(ActivityLonglineDto.PROPERTY_VESSEL_ACTIVITY_LONGLINE, VESSEL_ACTIVITY_LONGLINE) ), BRANCHLINE_FORM(newBuilder(BranchlineDto.class) - .addKey(BranchlineDto.PROPERTY_BAIT_SETTING_STATUS, ObserveReferenceSetDefinitions.BAIT_SETTING_STATUS) - .addKey(BranchlineDto.PROPERTY_HOOK_SIZE, ObserveReferenceSetDefinitions.HOOK_SIZE) - .addKey(BranchlineDto.PROPERTY_BAIT_HAULING_STATUS, ObserveReferenceSetDefinitions.BAIT_HAULING_STATUS) - .addKey(BranchlineDto.PROPERTY_HOOK_TYPE, ObserveReferenceSetDefinitions.HOOK_TYPE) - .addKey(BranchlineDto.PROPERTY_TRACELINE_TYPE, ObserveReferenceSetDefinitions.LINE_TYPE) - .addKey(BranchlineDto.PROPERTY_TOP_TYPE, ObserveReferenceSetDefinitions.LINE_TYPE) - .addKey(BranchlineDto.PROPERTY_BAIT_TYPE, ObserveReferenceSetDefinitions.BAIT_TYPE) + .addKey(BranchlineDto.PROPERTY_BAIT_SETTING_STATUS, BAIT_SETTING_STATUS) + .addKey(BranchlineDto.PROPERTY_HOOK_SIZE, HOOK_SIZE) + .addKey(BranchlineDto.PROPERTY_BAIT_HAULING_STATUS, BAIT_HAULING_STATUS) + .addKey(BranchlineDto.PROPERTY_HOOK_TYPE, HOOK_TYPE) + .addKey(BranchlineDto.PROPERTY_TRACELINE_TYPE, LINE_TYPE) + .addKey(BranchlineDto.PROPERTY_TOP_TYPE, LINE_TYPE) + .addKey(BranchlineDto.PROPERTY_BAIT_TYPE, BAIT_TYPE) ), SET_LONGLINE_GLOBAL_COMPOSITION_FORM(newBuilder(SetLonglineGlobalCompositionDto.class) - .addKey(SetLonglineGlobalCompositionDto.PROPERTY_MITIGATION_TYPE, - ObserveReferenceSetDefinitions.MITIGATION_TYPE) + .addKey(SetLonglineGlobalCompositionDto.PROPERTY_MITIGATION_TYPE, MITIGATION_TYPE) ), SET_LONGLINE_FORM(newBuilder(SetLonglineDto.class) - .addKey(SetLonglineDto.PROPERTY_SETTING_SHAPE, ObserveReferenceSetDefinitions.SETTING_SHAPE) - .addKey(SetLonglineDto.PROPERTY_LINE_TYPE, ObserveReferenceSetDefinitions.LINE_TYPE) - .addKey(SetLonglineDto.PROPERTY_LIGHTSTICKS_TYPE, ObserveReferenceSetDefinitions.LIGHTSTICKS_TYPE) - .addKey(SetLonglineDto.PROPERTY_LIGHTSTICKS_COLOR, ObserveReferenceSetDefinitions.LIGHTSTICKS_COLOR) + .addKey(SetLonglineDto.PROPERTY_SETTING_SHAPE, SETTING_SHAPE) + .addKey(SetLonglineDto.PROPERTY_LINE_TYPE, LINE_TYPE) + .addKey(SetLonglineDto.PROPERTY_LIGHTSTICKS_TYPE, LIGHTSTICKS_TYPE) + .addKey(SetLonglineDto.PROPERTY_LIGHTSTICKS_COLOR, LIGHTSTICKS_COLOR) ), TRIP_LONGLINE_FORM(newBuilder(TripLonglineDto.class) - .addKey(TripLonglineDto.PROPERTY_TRIP_TYPE, ObserveReferenceSetDefinitions.TRIP_TYPE) - .addKey(TripLonglineDto.PROPERTY_OBSERVER, ObserveReferenceSetDefinitions.PERSON) - .addKey(TripLonglineDto.PROPERTY_VESSEL, ObserveReferenceSetDefinitions.VESSEL) - .addKey(TripLonglineDto.PROPERTY_CAPTAIN, ObserveReferenceSetDefinitions.PERSON) - .addKey(TripLonglineDto.PROPERTY_DATA_ENTRY_OPERATOR, ObserveReferenceSetDefinitions.PERSON) - .addKey(TripLonglineDto.PROPERTY_PROGRAM, ObserveReferenceSetDefinitions.PROGRAM) - .addKey(TripLonglineDto.PROPERTY_OCEAN, ObserveReferenceSetDefinitions.OCEAN) - .addKey(TripLonglineDto.PROPERTY_DEPARTURE_HARBOUR, ObserveReferenceSetDefinitions.HARBOUR) - .addKey(TripLonglineDto.PROPERTY_LANDING_HARBOUR, ObserveReferenceSetDefinitions.HARBOUR) + .addKey(TripLonglineDto.PROPERTY_TRIP_TYPE, TRIP_TYPE) + .addKey(TripLonglineDto.PROPERTY_OBSERVER, PERSON) + .addKey(TripLonglineDto.PROPERTY_VESSEL, VESSEL) + .addKey(TripLonglineDto.PROPERTY_CAPTAIN, PERSON) + .addKey(TripLonglineDto.PROPERTY_DATA_ENTRY_OPERATOR, PERSON) + .addKey(TripLonglineDto.PROPERTY_PROGRAM, PROGRAM) + .addKey(TripLonglineDto.PROPERTY_OCEAN, OCEAN) + .addKey(TripLonglineDto.PROPERTY_DEPARTURE_HARBOUR, HARBOUR) + .addKey(TripLonglineDto.PROPERTY_LANDING_HARBOUR, HARBOUR) ), ACTIVITY_SEINE_OBSERVED_SYSTEM_FORM(newBuilder(ActivitySeineObservedSystemDto.class) - .addKey(ActivitySeineObservedSystemDto.PROPERTY_OBSERVED_SYSTEM, - ObserveReferenceSetDefinitions.OBSERVED_SYSTEM) + .addKey(ActivitySeineObservedSystemDto.PROPERTY_OBSERVED_SYSTEM, OBSERVED_SYSTEM) ), ACTIVITY_SEINE_FORM(newBuilder(ActivitySeineDto.class) - .addKey(ActivitySeineDto.PROPERTY_VESSEL_ACTIVITY_SEINE, - ObserveReferenceSetDefinitions.VESSEL_ACTIVITY_SEINE) - .addKey(ActivitySeineDto.PROPERTY_SURROUNDING_ACTIVITY, - ObserveReferenceSetDefinitions.SURROUNDING_ACTIVITY) - .addKey(ActivitySeineDto.PROPERTY_WIND, ObserveReferenceSetDefinitions.WIND) - .addKey(ActivitySeineDto.PROPERTY_DETECTION_MODE, - ObserveReferenceSetDefinitions.DETECTION_MODE) - .addKey(ActivitySeineDto.PROPERTY_REASON_FOR_NO_FISHING, - ObserveReferenceSetDefinitions.REASON_FOR_NO_FISHING) - .addKey(ActivitySeineDto.PROPERTY_PREVIOUS_FPA_ZONE, - ObserveReferenceSetDefinitions.FPA_ZONE) - .addKey(ActivitySeineDto.PROPERTY_CURRENT_FPA_ZONE, - ObserveReferenceSetDefinitions.FPA_ZONE) - .addKey(ActivitySeineDto.PROPERTY_NEXT_FPA_ZONE, - ObserveReferenceSetDefinitions.FPA_ZONE) + .addKey(ActivitySeineDto.PROPERTY_VESSEL_ACTIVITY_SEINE, VESSEL_ACTIVITY_SEINE) + .addKey(ActivitySeineDto.PROPERTY_SURROUNDING_ACTIVITY, SURROUNDING_ACTIVITY) + .addKey(ActivitySeineDto.PROPERTY_WIND, WIND) + .addKey(ActivitySeineDto.PROPERTY_DETECTION_MODE, DETECTION_MODE) + .addKey(ActivitySeineDto.PROPERTY_REASON_FOR_NO_FISHING, REASON_FOR_NO_FISHING) + .addKey(ActivitySeineDto.PROPERTY_PREVIOUS_FPA_ZONE, FPA_ZONE) + .addKey(ActivitySeineDto.PROPERTY_CURRENT_FPA_ZONE, FPA_ZONE) + .addKey(ActivitySeineDto.PROPERTY_NEXT_FPA_ZONE, FPA_ZONE) ), FLOATING_OBJECT_FORM(newBuilder(FloatingObjectDto.class) - .addKey(FloatingObjectDto.PROPERTY_OBJECT_TYPE, - ObserveReferenceSetDefinitions.OBJECT_TYPE) - .addKey(FloatingObjectDto.PROPERTY_OBJECT_OPERATION, - ObserveReferenceSetDefinitions.OBJECT_OPERATION) - .addKey(FloatingObjectDto.PROPERTY_OBJECT_FATE, - ObserveReferenceSetDefinitions.OBJECT_FATE) + .addKey(FloatingObjectDto.PROPERTY_OBJECT_TYPE, OBJECT_TYPE) + .addKey(FloatingObjectDto.PROPERTY_OBJECT_OPERATION, OBJECT_OPERATION) + .addKey(FloatingObjectDto.PROPERTY_OBJECT_FATE, OBJECT_FATE) ), SET_SEINE_FORM(newBuilder(SetSeineDto.class) - .addKey(SetSeineDto.PROPERTY_REASON_FOR_NULL_SET, - ObserveReferenceSetDefinitions.REASON_FOR_NULL_SET) + .addKey(SetSeineDto.PROPERTY_REASON_FOR_NULL_SET, REASON_FOR_NULL_SET) ), TRIP_SEINE_FORM(newBuilder(TripSeineDto.class) - .addKey(TripSeineDto.PROPERTY_OBSERVER, ObserveReferenceSetDefinitions.PERSON) - .addKey(TripSeineDto.PROPERTY_CAPTAIN, ObserveReferenceSetDefinitions.PERSON) - .addKey(TripSeineDto.PROPERTY_DATA_ENTRY_OPERATOR, ObserveReferenceSetDefinitions.PERSON) - .addKey(TripSeineDto.PROPERTY_VESSEL, ObserveReferenceSetDefinitions.VESSEL) - .addKey(TripSeineDto.PROPERTY_OCEAN, ObserveReferenceSetDefinitions.OCEAN) - .addKey(TripSeineDto.PROPERTY_DEPARTURE_HARBOUR, ObserveReferenceSetDefinitions.HARBOUR) - .addKey(TripSeineDto.PROPERTY_LANDING_HARBOUR, ObserveReferenceSetDefinitions.HARBOUR) - .addKey(TripSeineDto.PROPERTY_PROGRAM, ObserveReferenceSetDefinitions.PROGRAM) + .addKey(TripSeineDto.PROPERTY_OBSERVER, PERSON) + .addKey(TripSeineDto.PROPERTY_CAPTAIN, PERSON) + .addKey(TripSeineDto.PROPERTY_DATA_ENTRY_OPERATOR, PERSON) + .addKey(TripSeineDto.PROPERTY_VESSEL, VESSEL) + .addKey(TripSeineDto.PROPERTY_OCEAN, OCEAN) + .addKey(TripSeineDto.PROPERTY_DEPARTURE_HARBOUR, HARBOUR) + .addKey(TripSeineDto.PROPERTY_LANDING_HARBOUR, HARBOUR) + .addKey(TripSeineDto.PROPERTY_PROGRAM, PROGRAM) ), // REFERENTIAL GEAR_CARACTERISTIC_FORM(newBuilder(GearCaracteristicDto.class) - .addKey(GearCaracteristicDto.PROPERTY_GEAR_CARACTERISTIC_TYPE, - ObserveReferenceSetDefinitions.GEAR_CARACTERISTIC_TYPE) + .addKey(GearCaracteristicDto.PROPERTY_GEAR_CARACTERISTIC_TYPE, GEAR_CARACTERISTIC_TYPE) ), GEAR_FORM(newBuilder(GearDto.class) - .addKey(GearDto.PROPERTY_GEAR_CARACTERISTIC, ObserveReferenceSetDefinitions.GEAR_CARACTERISTIC) + .addKey(GearDto.PROPERTY_GEAR_CARACTERISTIC, GEAR_CARACTERISTIC) ), HARBOUR_FORM(newBuilder(HarbourDto.class) - .addKey(HarbourDto.PROPERTY_COUNTRY, ObserveReferenceSetDefinitions.COUNTRY) + .addKey(HarbourDto.PROPERTY_COUNTRY, COUNTRY) ), LENGTH_WEIGHT_PARAMETER_FORM(newBuilder(LengthWeightParameterDto.class) - .addKey(LengthWeightParameterDto.PROPERTY_SPECIES, ObserveReferenceSetDefinitions.SPECIES) - .addKey(LengthWeightParameterDto.PROPERTY_OCEAN, ObserveReferenceSetDefinitions.OCEAN) - .addKey(LengthWeightParameterDto.PROPERTY_SEX, ObserveReferenceSetDefinitions.SEX) + .addKey(LengthWeightParameterDto.PROPERTY_SPECIES, SPECIES) + .addKey(LengthWeightParameterDto.PROPERTY_OCEAN, OCEAN) + .addKey(LengthWeightParameterDto.PROPERTY_SEX, SEX) ), ORGANISM_FORM(newBuilder(OrganismDto.class) - .addKey(OrganismDto.PROPERTY_COUNTRY, ObserveReferenceSetDefinitions.COUNTRY) + .addKey(OrganismDto.PROPERTY_COUNTRY, COUNTRY) ), PERSON_FORM(newBuilder(PersonDto.class) - .addKey(PersonDto.PROPERTY_COUNTRY, ObserveReferenceSetDefinitions.COUNTRY) + .addKey(PersonDto.PROPERTY_COUNTRY, COUNTRY) ), PROGRAM_FORM(newBuilder(ProgramDto.class) - .addKey(ProgramDto.PROPERTY_ORGANISM, ObserveReferenceSetDefinitions.ORGANISM) + .addKey(ProgramDto.PROPERTY_ORGANISM, ORGANISM) ), SPECIES_FORM(newBuilder(SpeciesDto.class) - .addKey(SpeciesDto.PROPERTY_OCEAN, ObserveReferenceSetDefinitions.OCEAN) - .addKey(SpeciesDto.PROPERTY_SPECIES_GROUP, ObserveReferenceSetDefinitions.SPECIES_GROUP) + .addKey(SpeciesDto.PROPERTY_OCEAN, OCEAN) + .addKey(SpeciesDto.PROPERTY_SPECIES_GROUP, SPECIES_GROUP) ), SPECIES_LIST_FORM(newBuilder(SpeciesListDto.class) - .addKey(SpeciesListDto.PROPERTY_SPECIES, ObserveReferenceSetDefinitions.SPECIES) + .addKey(SpeciesListDto.PROPERTY_SPECIES, SPECIES) ), VESSEL_FORM(newBuilder(VesselDto.class) - .addKey(VesselDto.PROPERTY_FLAG_COUNTRY, ObserveReferenceSetDefinitions.COUNTRY) - .addKey(VesselDto.PROPERTY_VESSEL_TYPE, ObserveReferenceSetDefinitions.VESSEL_TYPE) - .addKey(VesselDto.PROPERTY_VESSEL_SIZE_CATEGORY, ObserveReferenceSetDefinitions.VESSEL_SIZE_CATEGORY) + .addKey(VesselDto.PROPERTY_FLAG_COUNTRY, COUNTRY) + .addKey(VesselDto.PROPERTY_VESSEL_TYPE, VESSEL_TYPE) + .addKey(VesselDto.PROPERTY_VESSEL_SIZE_CATEGORY, VESSEL_SIZE_CATEGORY) ), WEIGHT_CATEGORY_FORM(newBuilder(WeightCategoryDto.class) - .addKey(WeightCategoryDto.PROPERTY_SPECIES, ObserveReferenceSetDefinitions.SPECIES) + .addKey(WeightCategoryDto.PROPERTY_SPECIES, SPECIES) ); public final ObserveReferenceSetRequestDefinition definition; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit 7b59358f099481f46b69bf3c079c1082758fa18b Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 19 11:08:19 2015 +0100 Permettre de transformer un ObserveReference en RefereceDto --- .../dto/reference/ObserveReferenceSet.java | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSet.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSet.java index 4d64af1..79b98cb 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSet.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSet.java @@ -2,6 +2,8 @@ package fr.ird.observe.services.dto.reference; import com.google.common.base.MoreObjects; import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinition; import java.io.Serializable; @@ -58,6 +60,28 @@ public class ObserveReferenceSet<D extends IdDto, R extends ObserveReference> im this.lastUpdate = lastUpdate; } + public ReferenceSetDto<D> toReferenceSetDto(String name) { + + Class<D> type = definition.getType(); + String[] propertyNames = definition.getPropertyNames(); + Class<?>[] propertyTypes = definition.getPropertyTypes(); + + ReferenceSetDto<D> result = new ReferenceSetDto<>(type); + result.setLastUpdate(lastUpdate); + result.setName(name); + + for (R value : values) { + + ReferenceDto<D> referenceDto = new ReferenceDto<>(); + referenceDto.init(type, propertyNames, propertyTypes, value.getValues()); + result.addReference(referenceDto); + + } + + return result; + + } + @Override public String toString() { return MoreObjects.toStringHelper(this) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit 564ed132ac4fce02ab3d31347d4c9aa5686cc9fa Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 19 11:08:50 2015 +0100 Ajout au FormDto du nom des deux requètes qu'il peut utiliser --- .../java/fr/ird/observe/services/dto/FormDto.java | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDto.java index 72d6bbb..6325778 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDto.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDto.java @@ -40,6 +40,15 @@ public class FormDto<R extends IdDto> extends AbstractFormDto { protected R form; + /** + * Le nom de la requète à utiliser pour récupérer les ensembles de référentiels utilisés par ce formulaire. + */ + protected String referentialReferenceSetRequestName; + /** + * Le nom de la requète à utiliser pour récupérer les ensembles de données utilisés par ce formulaire. + */ + protected String dataReferenceSetRequestName; + public FormDto(Class<R> type) { this.type = type; } @@ -56,8 +65,25 @@ public class FormDto<R extends IdDto> extends AbstractFormDto { return type; } + public String getReferentialReferenceSetRequestName() { + return referentialReferenceSetRequestName; + } + + public void setReferentialReferenceSetRequestName(String referentialReferenceSetRequestName) { + this.referentialReferenceSetRequestName = referentialReferenceSetRequestName; + } + + public String getDataReferenceSetRequestName() { + return dataReferenceSetRequestName; + } + + public void setDataReferenceSetRequestName(String dataReferenceSetRequestName) { + this.dataReferenceSetRequestName = dataReferenceSetRequestName; + } + //FIXME Supprimer cette méthode et toujours utiliser celle dessous car un ReferenceSetDto porte aussi sur le nom //FIXME éviter d'avoir des API non déterministes + @Deprecated public <D extends IdDto> ReferenceSetDto<D> getReferenceSetDto(Class<D> type) { Optional<ReferenceSetDto> referenceSetDto = Iterables.tryFind(getLabels(), ReferenceSetDtos.newTypePredicate(type)); @@ -68,6 +94,7 @@ public class FormDto<R extends IdDto> extends AbstractFormDto { } + @Deprecated public <D extends IdDto> ReferenceSetDto<D> getReferenceSetDto(Class<D> type, String name) { Optional<ReferenceSetDto> referenceSetDto = Iterables.tryFind(getLabels(), ReferenceSetDtos.newTypeNamePredicate(type, name)); @@ -86,6 +113,7 @@ public class FormDto<R extends IdDto> extends AbstractFormDto { //FIXME Supprimer cette méthode et toujours utiliser celle dessous car un ReferenceSetDto porte aussi sur le nom //FIXME éviter d'avoir des API non déterministes + @Deprecated public <D extends IdDto> ReferenceDto<D> getReferenceById(Class<D> type, String id) { ReferenceSetDto<D> referenceSetDto = getReferenceSetDto(type); @@ -94,6 +122,7 @@ public class FormDto<R extends IdDto> extends AbstractFormDto { } + @Deprecated public <D extends IdDto> ReferenceDto<D> getReferenceById(Class<D> type, String name, String id) { ReferenceSetDto<D> referenceSetDto = getReferenceSetDto(type, name); @@ -102,6 +131,7 @@ public class FormDto<R extends IdDto> extends AbstractFormDto { } + @Deprecated public <D extends ReferentialDto> ReferentialReferenceDto<D> getReferentialReferenceById(Class<D> type, String id) { ReferenceSetDto<D> referenceSetDto = getReferenceSetDto(type); @@ -114,6 +144,8 @@ public class FormDto<R extends IdDto> extends AbstractFormDto { public String toString() { return MoreObjects.toStringHelper(this) .add("type", type.getName()) + .add("referentialReferenceSetRequestName", referentialReferenceSetRequestName) + .add("dataReferenceSetRequestName", dataReferenceSetRequestName) .toString(); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit 203b12208f29ad594ed34a9efa8964f885a59ef6 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 19 11:09:19 2015 +0100 Fix NPE --- .../fr/ird/observe/services/service/ReferenceSetServiceTopia.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferenceSetServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferenceSetServiceTopia.java index aae7d5b..a017b15 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferenceSetServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferenceSetServiceTopia.java @@ -72,7 +72,9 @@ public class ReferenceSetServiceTopia extends ObserveServiceTopia implements Ref Date lastUpdateDate = lastUpdateDates.get(name); ObserveReferenceSet<ReferentialDto, ObserveReferentialReference> referenceSet = loadReferentialReferenceSet(definition, lastUpdateDate); - resultBuilder.addKey(name, referenceSet); + if (referenceSet != null) { + resultBuilder.addKey(name, referenceSet); + } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit 76e2634bbbc7b966af28ffe0ca2eeb9101cbcfa9 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 19 11:09:48 2015 +0100 Mise en place du cache de réferentiels et intégration dans l'application swing --- .../fr/ird/observe/db/ObserveReferentialCache.java | 117 +++++++++++++++------ .../fr/ird/observe/db/ObserveSwingDataSource.java | 41 ++++++++ 2 files changed, 128 insertions(+), 30 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveReferentialCache.java b/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveReferentialCache.java index 0a7c8b3..559b4c0 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveReferentialCache.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveReferentialCache.java @@ -1,9 +1,18 @@ package fr.ird.observe.db; +import com.google.common.collect.ImmutableMap; import fr.ird.observe.services.dto.ReferenceSetDto; -import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.reference.ObserveReferenceSet; +import fr.ird.observe.services.dto.reference.ObserveReferenceSetResult; +import fr.ird.observe.services.dto.reference.ObserveReferentialReference; +import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetRequestDefinition; +import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetRequestDefinitions; +import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetRequestKeyDefinition; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import java.io.Closeable; +import java.util.Date; import java.util.LinkedHashMap; import java.util.Map; @@ -14,43 +23,91 @@ import java.util.Map; */ public class ObserveReferentialCache implements Closeable { - private final Map<ObserveReferentialCacheKey<?>, ReferenceSetDto> cache; + /** Logger. */ + private static final Log log = LogFactory.getLog(ObserveReferentialCache.class); + + private final Map<ObserveReferenceSetRequestKeyDefinition<?>, ReferenceSetDto<?>> cache; public ObserveReferentialCache() { this.cache = new LinkedHashMap<>(); } - public <D extends ReferentialDto> ReferenceSetDto<D> getReferenceSet(ObserveSwingDataSource dataSource, Class<D> type, String optionalContext) { + /** + * Pour récupérer les dates de dernières mises à jour des ensembles de références utiliées par la requète. + * + * @param requestName le nom de la requète + * @return le dictionnaire des dates de dernières mises à jour pour chaque ensemble de référentiels + */ + public ImmutableMap<String, Date> getLastUpdateDates(String requestName) { + + ObserveReferenceSetRequestDefinition requestDefinition = ObserveReferenceSetRequestDefinitions.get(requestName); + + ImmutableMap.Builder<String, Date> builder = ImmutableMap.builder(); + + for (ObserveReferenceSetRequestKeyDefinition requestKeyDefinition : requestDefinition.getKeys()) { + + ReferenceSetDto<?> referenceSetDto = cache.get(requestKeyDefinition); + if (referenceSetDto != null) { + Date lastUpdate = referenceSetDto.getLastUpdate(); + builder.put(requestKeyDefinition.getName(), lastUpdate); + } + + } + + return builder.build(); - ObserveReferentialCacheKey<D> referentialCacheKey = ObserveReferentialCacheKey.of(type, optionalContext); - ReferenceSetDto<D> result = getReferenceSet0(dataSource, referentialCacheKey); - return result; } - protected <D extends ReferentialDto> ReferenceSetDto<D> getReferenceSet0(ObserveSwingDataSource dataSource, ObserveReferentialCacheKey<D> key) { - - ReferenceSetDto<D> result=null; -// if (cache.containsKey(key)) { -// result = cache.get(key); -// -// Date lastUpdate = result.getLastUpdate(); -// -// ReferenceSetService referentialService = dataSource.newService(ReferenceSetService.class); -// ReferenceSetDto<D> update = referentialService.getReferentialReferenceSetIfModify(key.getType(), key.getContext().orNull(), lastUpdate); -// if (update != null) { -// result = update; -// cache.remove(key); -// cache.put(key, update); -// } -// -// } else { -// -// ReferentialService referentialService = dataSource.newService(ReferenceSetService.class); -// result = referentialService.getReferentialReferenceSet(key.getType(), key.getContext().orNull()); -// cache.put(key, result); -// -// } - return result; + /** + * Pour récupérer les ensembles de référentiels à partir du résultat d'une requète. + * + * Le cache sera mis à jour si nécessaire avec les données entrantes. + * + * @param referenceSetResult le résultat de la requète de demande d'ensemble de référentiels + * @return le dictionnaire des ensembles de référentiels complêt + */ + public ImmutableMap<String, ReferenceSetDto<?>> loadReferenceSets(ObserveReferenceSetResult<ObserveReferentialReference> referenceSetResult) { + + ObserveReferenceSetRequestDefinition requestDefinition = ObserveReferenceSetRequestDefinitions.get(referenceSetResult.getRequestName()); + + ImmutableMap.Builder<String, ReferenceSetDto<?>> builder = ImmutableMap.builder(); + + // Les référentiels mis à jour via la requète + ImmutableMap<String, ObserveReferenceSet<?, ObserveReferentialReference>> referenceSets = referenceSetResult.getReferenceSets(); + + for (ObserveReferenceSetRequestKeyDefinition requestKeyDefinition : requestDefinition.getKeys()) { + + ReferenceSetDto<?> referenceSetDto; + + String requestKeyDefinitionName = requestKeyDefinition.getName(); + ObserveReferenceSet<?, ObserveReferentialReference> referenceSet = referenceSets.get(requestKeyDefinitionName); + + if (referenceSet != null) { + + // on met à jour le cache avec les données entrantes + referenceSetDto = referenceSet.toReferenceSetDto(requestKeyDefinitionName); + cache.put(requestKeyDefinition, referenceSetDto); + + if (log.isInfoEnabled()) { + log.info("Update cache entry for " + requestKeyDefinition); + } + + } else { + + // on récupère du cache, rien n'a changé pour cette entrée + referenceSetDto = cache.get(requestKeyDefinition); + + if (log.isInfoEnabled()) { + log.info("Get cache entry for " + requestKeyDefinition); + } + + } + + builder.put(requestKeyDefinitionName, referenceSetDto); + + } + + return builder.build(); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveSwingDataSource.java b/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveSwingDataSource.java index b6a486d..a5c57ed 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveSwingDataSource.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveSwingDataSource.java @@ -2,6 +2,8 @@ package fr.ird.observe.db; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Sets; import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.db.event.ObserveSwingDataSourceEvent; @@ -19,13 +21,19 @@ import fr.ird.observe.services.configuration.ObserveDataSourceConnection; import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; import fr.ird.observe.services.dto.DataSourceCreateWithNoReferentialImportException; +import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.IncompatibleDataSourceCreateConfigurationException; import fr.ird.observe.services.dto.ObserveDbUserDto; +import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.constants.ReferentialLocale; +import fr.ird.observe.services.dto.reference.ObserveReferenceSetRequest; +import fr.ird.observe.services.dto.reference.ObserveReferenceSetResult; +import fr.ird.observe.services.dto.reference.ObserveReferentialReference; import fr.ird.observe.services.service.BabModelVersionException; import fr.ird.observe.services.service.DataSourceService; import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException; import fr.ird.observe.services.service.DatabaseNotFoundException; +import fr.ird.observe.services.service.ReferenceSetService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.beans.AbstractSerializableBean; @@ -35,6 +43,9 @@ import javax.swing.JOptionPane; import javax.swing.event.EventListenerList; import java.io.Closeable; import java.io.File; +import java.util.Collection; +import java.util.Date; +import java.util.LinkedHashSet; import java.util.Locale; import java.util.Set; @@ -54,11 +65,14 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements protected final ObserveDataSourceConfiguration configuration; + protected final ObserveReferentialCache referentialCache; + protected ObserveDataSourceConnection connection; public ObserveSwingDataSource(ObserveDataSourceConfiguration configuration) { this.configuration = configuration; this.listenerList = new EventListenerList(); + this.referentialCache = new ObserveReferentialCache(); } public ObserveDataSourceConfiguration getConfiguration() { @@ -160,6 +174,8 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements fireNewMessage(t("observe.storage.message.closing", getLabel())); fireClosing(); + referentialCache.close(); + DataSourceService dataSourceService = newService(DataSourceService.class); dataSourceService.close(); @@ -178,6 +194,8 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements fireNewMessage(t("observe.storage.message.destroying", getLabel())); fireClosing(); + referentialCache.close(); + DataSourceService dataSourceService = newService(DataSourceService.class); dataSourceService.destroy(); @@ -246,6 +264,29 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements } + public ImmutableMap<String, ReferenceSetDto<?>> loadReferentialReferenceSets(FormDto<?> formDto) { + + ReferenceSetService referenceSetService = newService(ReferenceSetService.class); + + String requestName = formDto.getReferentialReferenceSetRequestName(); + + ImmutableMap<String, Date> lastUpdateDates = referentialCache.getLastUpdateDates(requestName); + + ObserveReferenceSetRequest request = new ObserveReferenceSetRequest(); + request.setRequestName(requestName); + request.setLastUpdateDates(lastUpdateDates); + + ObserveReferenceSetResult<ObserveReferentialReference> referenceSetResult = referenceSetService.loadReferentialReferenceSets(request); + + ImmutableMap<String, ReferenceSetDto<?>> referenceSets = referentialCache.loadReferenceSets(referenceSetResult); + + LinkedHashSet<ReferenceSetDto<?>> values = Sets.newLinkedHashSet(referenceSets.values()); + formDto.setLabels((Collection) values); + + return referenceSets; + + } + public boolean isOpen() { return connection != null; } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit 5a951b73e843ec14767e3fc59c964ca029caa589 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 19 11:10:11 2015 +0100 Utilisation du système de requète sur l'écran TripSeine --- .../fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java | 4 +++- .../fr/ird/observe/services/service/seine/TripSeineServiceTopia.java | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java index 7bfff7f..9b89832 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java @@ -22,9 +22,9 @@ package fr.ird.observe.ui.content.open.impl.seine; import fr.ird.observe.ObserveSwingApplicationContext; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.db.DataContext; import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.TripMapDto; import fr.ird.observe.services.dto.result.SaveResultDto; @@ -194,6 +194,8 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeineDto> { } + getDataSource().loadReferentialReferenceSets(formDto); + getModel().setFormDto(formDto); TripSeineDtos.copyTripSeineDto(formDto.getForm(), bean); diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TripSeineServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TripSeineServiceTopia.java index 29624ed..c309822 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TripSeineServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TripSeineServiceTopia.java @@ -35,6 +35,7 @@ import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.ReferenceSetDtos; import fr.ird.observe.services.dto.TripMapDto; import fr.ird.observe.services.dto.TripMapPointDto; +import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetRequestDefinitions; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.dto.result.SaveResultDtos; @@ -134,6 +135,7 @@ public class TripSeineServiceTopia extends ObserveServiceTopia implements TripSe TripSeine tripSeine = loadEntity(TripSeineDto.class, TripSeine.class, tripSeineId); FormDto<TripSeineDto> form = entityToReadFormDto(TripSeineDto.class, TripSeine.class, tripSeine); + form.setReferentialReferenceSetRequestName(ObserveReferenceSetRequestDefinitions.TRIP_SEINE_FORM.name()); return form; } @@ -158,6 +160,7 @@ public class TripSeineServiceTopia extends ObserveServiceTopia implements TripSe TripSeine tripSeine = loadEntity(TripSeineDto.class, TripSeine.class, tripSeineId); FormDto<TripSeineDto> form = entityToEditFormDto(TripSeineDto.class, TripSeine.class, tripSeine); + form.setReferentialReferenceSetRequestName(ObserveReferenceSetRequestDefinitions.TRIP_SEINE_FORM.name()); TripSeineDto tripSeineDto = form.getForm(); @@ -185,6 +188,7 @@ public class TripSeineServiceTopia extends ObserveServiceTopia implements TripSe tripSeine.setProgram(program); FormDto<TripSeineDto> form = entityToEditFormDto(TripSeineDto.class, TripSeine.class, tripSeine); + form.setReferentialReferenceSetRequestName(ObserveReferenceSetRequestDefinitions.TRIP_SEINE_FORM.name()); return form; } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit fa1235cd016662d32d9efee019dd13f654fe01ca Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 19 11:26:50 2015 +0100 Permettre aussi d'intégrer les ensembles de références sur les données métiers à la récupération d'un FormDto --- .../fr/ird/observe/db/ObserveSwingDataSource.java | 62 +++++++++++++++++----- .../open/impl/seine/TripSeineUIHandler.java | 2 +- 2 files changed, 50 insertions(+), 14 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveSwingDataSource.java b/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveSwingDataSource.java index a5c57ed..cd53d2a 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveSwingDataSource.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveSwingDataSource.java @@ -3,7 +3,6 @@ package fr.ird.observe.db; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Sets; import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.db.event.ObserveSwingDataSourceEvent; @@ -26,9 +25,14 @@ import fr.ird.observe.services.dto.IncompatibleDataSourceCreateConfigurationExce import fr.ird.observe.services.dto.ObserveDbUserDto; import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.constants.ReferentialLocale; +import fr.ird.observe.services.dto.reference.ObserveReference; +import fr.ird.observe.services.dto.reference.ObserveReferenceSet; import fr.ird.observe.services.dto.reference.ObserveReferenceSetRequest; import fr.ird.observe.services.dto.reference.ObserveReferenceSetResult; import fr.ird.observe.services.dto.reference.ObserveReferentialReference; +import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetRequestDefinition; +import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetRequestDefinitions; +import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetRequestKeyDefinition; import fr.ird.observe.services.service.BabModelVersionException; import fr.ird.observe.services.service.DataSourceService; import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException; @@ -43,7 +47,6 @@ import javax.swing.JOptionPane; import javax.swing.event.EventListenerList; import java.io.Closeable; import java.io.File; -import java.util.Collection; import java.util.Date; import java.util.LinkedHashSet; import java.util.Locale; @@ -264,26 +267,59 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements } - public ImmutableMap<String, ReferenceSetDto<?>> loadReferentialReferenceSets(FormDto<?> formDto) { + public void loadReferenceSets(FormDto<?> formDto) { + + Preconditions.checkState(!isOpen(), "Connection is open"); ReferenceSetService referenceSetService = newService(ReferenceSetService.class); - String requestName = formDto.getReferentialReferenceSetRequestName(); + LinkedHashSet<ReferenceSetDto> values = new LinkedHashSet<>(); + + String referentialRequestName = formDto.getReferentialReferenceSetRequestName(); + if (referentialRequestName != null) { + + if (log.isInfoEnabled()) { + log.info("Loading referantialReferenceSetRequest: " + referentialRequestName); + } + ImmutableMap<String, Date> lastUpdateDates = referentialCache.getLastUpdateDates(referentialRequestName); + + ObserveReferenceSetRequest request = new ObserveReferenceSetRequest(); + request.setRequestName(referentialRequestName); + request.setLastUpdateDates(lastUpdateDates); - ImmutableMap<String, Date> lastUpdateDates = referentialCache.getLastUpdateDates(requestName); + ObserveReferenceSetResult<ObserveReferentialReference> referenceSetResult = referenceSetService.loadReferentialReferenceSets(request); - ObserveReferenceSetRequest request = new ObserveReferenceSetRequest(); - request.setRequestName(requestName); - request.setLastUpdateDates(lastUpdateDates); + ImmutableMap<String, ReferenceSetDto<?>> referenceSets = referentialCache.loadReferenceSets(referenceSetResult); + values.addAll(referenceSets.values()); + } - ObserveReferenceSetResult<ObserveReferentialReference> referenceSetResult = referenceSetService.loadReferentialReferenceSets(request); + String dataRequestName = formDto.getDataReferenceSetRequestName(); + if (dataRequestName != null) { - ImmutableMap<String, ReferenceSetDto<?>> referenceSets = referentialCache.loadReferenceSets(referenceSetResult); + if (log.isInfoEnabled()) { + log.info("Loading dataReferenceSetRequest: " + dataRequestName); + } + ObserveReferenceSetRequest request = new ObserveReferenceSetRequest(); + request.setRequestName(dataRequestName); + request.setLastUpdateDates(ImmutableMap.<String, Date>of()); - LinkedHashSet<ReferenceSetDto<?>> values = Sets.newLinkedHashSet(referenceSets.values()); - formDto.setLabels((Collection) values); + ObserveReferenceSetResult<ObserveReference> referenceSetResult = referenceSetService.loadDataReferenceSets(request); + ImmutableMap<String, ObserveReferenceSet<?, ObserveReference>> referenceSets = referenceSetResult.getReferenceSets(); + + ObserveReferenceSetRequestDefinition requestDefinition = ObserveReferenceSetRequestDefinitions.get(dataRequestName); + for (ObserveReferenceSetRequestKeyDefinition requestKeyDefinition : requestDefinition.getKeys()) { + + String requestKeyDefinitionName = requestKeyDefinition.getName(); + ObserveReferenceSet<?, ObserveReference> referenceSet = referenceSets.get(requestKeyDefinitionName); + + ReferenceSetDto<?> referenceSetDto = referenceSet.toReferenceSetDto(requestKeyDefinitionName); + values.add(referenceSetDto); + + } + + } - return referenceSets; + formDto.setLabels(values); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java index 9b89832..60c87b6 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java @@ -194,7 +194,7 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeineDto> { } - getDataSource().loadReferentialReferenceSets(formDto); + getDataSource().loadReferenceSets(formDto); getModel().setFormDto(formDto); TripSeineDtos.copyTripSeineDto(formDto.getForm(), bean); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit 91f61e4c040cb3dcca05b04dcccd582b94a3145c Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 19 20:07:23 2015 +0100 amélioration du design des ReferenceSetDto (si on utilise des generics, on le fait jusqu'au bout :() + quelques corrections par ci-par là --- .../java/fr/ird/observe/services/dto/FormDto.java | 39 +++++------ .../ird/observe/services/dto/ReferenceSetDto.java | 74 ++++++++++++++++++++- .../ird/observe/services/dto/ReferenceSetDtos.java | 63 ++++-------------- .../ObserveReferenceSetRequestKeyDefinition.java | 5 +- .../services/dto/referential/ProgramDtos.java | 13 +--- .../xmi/observe-services-dto-common.properties | 1 - .../src/main/xmi/observe-services-dto-common.zargo | Bin 42827 -> 42562 bytes 7 files changed, 107 insertions(+), 88 deletions(-) diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDto.java index 6325778..219e9b3 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDto.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDto.java @@ -24,9 +24,8 @@ package fr.ird.observe.services.dto; import com.google.common.base.MoreObjects; import com.google.common.base.Optional; +import com.google.common.base.Predicate; import com.google.common.collect.Iterables; -import fr.ird.observe.services.dto.referential.ReferentialDto; -import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; public class FormDto<R extends IdDto> extends AbstractFormDto { @@ -44,6 +43,7 @@ public class FormDto<R extends IdDto> extends AbstractFormDto { * Le nom de la requète à utiliser pour récupérer les ensembles de référentiels utilisés par ce formulaire. */ protected String referentialReferenceSetRequestName; + /** * Le nom de la requète à utiliser pour récupérer les ensembles de données utilisés par ce formulaire. */ @@ -86,28 +86,33 @@ public class FormDto<R extends IdDto> extends AbstractFormDto { @Deprecated public <D extends IdDto> ReferenceSetDto<D> getReferenceSetDto(Class<D> type) { - Optional<ReferenceSetDto> referenceSetDto = Iterables.tryFind(getLabels(), ReferenceSetDtos.newTypePredicate(type)); - if (!referenceSetDto.isPresent()) { - throw new ReferenceSetNotFoundException(this, type, null); - } - return referenceSetDto.get(); + return getReferenceSetDto(type, null); } - @Deprecated public <D extends IdDto> ReferenceSetDto<D> getReferenceSetDto(Class<D> type, String name) { - Optional<ReferenceSetDto> referenceSetDto = Iterables.tryFind(getLabels(), ReferenceSetDtos.newTypeNamePredicate(type, name)); + Optional<ReferenceSetDto<D>> referenceSetDto = tryToGetReferenceSetDto(type, name); if (!referenceSetDto.isPresent()) { - referenceSetDto = Iterables.tryFind(getLabels(), ReferenceSetDtos.newTypeNamePredicate(type, null)); + throw new ReferenceSetNotFoundException(this, type, name); } + return referenceSetDto.get(); + + } + + public <D extends IdDto> Optional<ReferenceSetDto<D>> tryToGetReferenceSetDto(Class<D> type, String name) { + + Predicate<ReferenceSetDto<D>> predicate = ReferenceSetDtos.newTypeNamePredicate(type, name); + Optional<ReferenceSetDto<D>> referenceSetDto = Iterables.tryFind(getLabels(), (Predicate) predicate); + if (!referenceSetDto.isPresent()) { - throw new ReferenceSetNotFoundException(this, type, name); + predicate = ReferenceSetDtos.newTypeNamePredicate(type, null); + referenceSetDto = Iterables.tryFind(getLabels(), (Predicate) predicate); } - return referenceSetDto.get(); + return referenceSetDto; } @@ -122,7 +127,6 @@ public class FormDto<R extends IdDto> extends AbstractFormDto { } - @Deprecated public <D extends IdDto> ReferenceDto<D> getReferenceById(Class<D> type, String name, String id) { ReferenceSetDto<D> referenceSetDto = getReferenceSetDto(type, name); @@ -131,15 +135,6 @@ public class FormDto<R extends IdDto> extends AbstractFormDto { } - @Deprecated - public <D extends ReferentialDto> ReferentialReferenceDto<D> getReferentialReferenceById(Class<D> type, String id) { - - ReferenceSetDto<D> referenceSetDto = getReferenceSetDto(type); - ReferentialReferenceDto<D> referenceDto = (ReferentialReferenceDto<D>) referenceSetDto.getById(id); - return referenceDto; - - } - @Override public String toString() { return MoreObjects.toStringHelper(this) diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDto.java index 1e9f5dc..ad27724 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDto.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDto.java @@ -25,14 +25,21 @@ package fr.ird.observe.services.dto; import com.google.common.base.MoreObjects; import com.google.common.collect.Iterables; -import java.util.Set; +import java.util.Collection; +import java.util.LinkedHashSet; public class ReferenceSetDto<R extends IdDto> extends AbstractReferenceSetDto { private static final long serialVersionUID = 1L; + public static final String PROPERTY_TYPE = "type"; + + public static final String PROPERTY_REFERENCE = "reference"; + protected final Class<R> type; + protected LinkedHashSet<ReferenceDto<R>> reference; + public ReferenceSetDto(Class<R> type) { this.type = type; } @@ -42,8 +49,7 @@ public class ReferenceSetDto<R extends IdDto> extends AbstractReferenceSetDto { } public ReferenceDto<R> getById(String id) { - Set<ReferenceDto<R>> references = (Set) getReference(); - ReferenceDto<R> referenceDto = Iterables.find(references, IdDtos.newIdPredicate(id)); + ReferenceDto<R> referenceDto = Iterables.find(getReference(), IdDtos.newIdPredicate(id)); return referenceDto; } @@ -55,4 +61,66 @@ public class ReferenceSetDto<R extends IdDto> extends AbstractReferenceSetDto { .add("lastUpdate", lastUpdate) .toString(); } + + public ReferenceDto getReference(int index) { + ReferenceDto o = getChild(reference, index); + return o; + } + + public boolean isReferenceEmpty() { + return reference == null || reference.isEmpty(); + } + + public int sizeReference() { + return reference == null ? 0 : reference.size(); + } + + public void addReference(ReferenceDto<R> reference) { + getReference().add(reference); + firePropertyChange(PROPERTY_REFERENCE, null, reference); + } + + public void addAllReference(Collection<ReferenceDto<R>> reference) { + getReference().addAll(reference); + firePropertyChange(PROPERTY_REFERENCE, null, reference); + } + + public boolean removeReference(ReferenceDto<R> reference) { + boolean removed = getReference().remove(reference); + if (removed) { + firePropertyChange(PROPERTY_REFERENCE, reference, null); + } + return removed; + } + + public boolean removeAllReference(Collection<ReferenceDto<R>> reference) { + boolean removed = getReference().removeAll(reference); + if (removed) { + firePropertyChange(PROPERTY_REFERENCE, reference, null); + } + return removed; + } + + public boolean containsReference(ReferenceDto<R> reference) { + boolean contains = getReference().contains(reference); + return contains; + } + + public boolean containsAllReference(Collection<ReferenceDto<R>> reference) { + boolean contains = getReference().containsAll(reference); + return contains; + } + + public LinkedHashSet<ReferenceDto<R>> getReference() { + if (reference == null) { + reference = new LinkedHashSet<>(); + } + return reference; + } + + public void setReference(LinkedHashSet<ReferenceDto<R>> reference) { + LinkedHashSet<ReferenceDto<R>> oldValue = getReference(); + this.reference = reference; + firePropertyChange(PROPERTY_REFERENCE, oldValue, reference); + } } diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDtos.java index e4980b1..eb12ec1 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDtos.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDtos.java @@ -22,7 +22,6 @@ package fr.ird.observe.services.dto; * #L% */ -import com.google.common.base.Function; import com.google.common.base.Predicate; import java.util.Date; @@ -31,72 +30,36 @@ import java.util.Objects; public class ReferenceSetDtos extends AbstractReferenceSetDtos { - protected static final Function<ReferenceSetDto, Class> TYPE_FUNCTION = newTypeFunction(); - - public static <D extends IdDto> ReferenceSetDto<D> newEmptyReferenceSetDto(Class<D> type) { - return newEmptyReferenceSetDto(type, null); - } - public static <D extends IdDto> ReferenceSetDto<D> newEmptyReferenceSetDto(Class<D> type, String name) { ReferenceSetDto<D> dto = new ReferenceSetDto<>(type); dto.setName(name); - dto.setReference(new LinkedHashSet<ReferenceDto>()); + dto.setReference(new LinkedHashSet<ReferenceDto<D>>()); return dto; } - public static <D extends IdDto, R extends ReferenceDto<D>> ReferenceSetDto<D> newReferenceSetDto( - Class<D> type, - LinkedHashSet<R> labels, - Date lastUpdate) { + public static <D extends IdDto> ReferenceSetDto<D> newReferenceSetDto(Class<D> type, + LinkedHashSet<ReferenceDto<D>> labels, + Date lastUpdate) { return newReferenceSetDto(type, null, labels, lastUpdate); } - public static <D extends IdDto, R extends ReferenceDto<D>> ReferenceSetDto<D> newReferenceSetDto( - Class<D> type, - String name, - LinkedHashSet<R> labels, - Date lastUpdate) { + public static <D extends IdDto> ReferenceSetDto<D> newReferenceSetDto(Class<D> type, + String name, + LinkedHashSet<ReferenceDto<D>> labels, + Date lastUpdate) { ReferenceSetDto<D> dto = new ReferenceSetDto<>(type); dto.setName(name); - dto.setReference((LinkedHashSet) labels); + dto.setReference(labels); dto.setLastUpdate(lastUpdate); return dto; } - public static <BeanType extends ReferenceSetDto> Function<BeanType, Class> getTypeFunction() { - return (Function<BeanType, Class>) TYPE_FUNCTION; - - } - - public static <BeanType extends ReferenceSetDto> Function<BeanType, Class> newTypeFunction() { - return new Function<BeanType, Class>() { - - @Override - public Class apply(BeanType input) { - return input.getType(); - } - }; - - } - - public static <D extends IdDto, BeanType extends ReferenceSetDto> Predicate<BeanType> newTypePredicate(final Class<D> type) { - return new Predicate<BeanType>() { - - @Override - public boolean apply(BeanType input) { - return Objects.equals(type, input.getType()); - } - }; - - } - - public static <D extends IdDto, BeanType extends ReferenceSetDto> Predicate<BeanType> newTypeNamePredicate(final Class<D> type, final String name) { - return new Predicate<BeanType>() { + public static <D extends IdDto> Predicate<ReferenceSetDto<D>> newTypeNamePredicate(final Class<D> type, final String name) { + return new Predicate<ReferenceSetDto<D>>() { @Override - public boolean apply(BeanType input) { - return Objects.equals(type, input.getType()) - && Objects.equals(name, input.getName()); + public boolean apply(ReferenceSetDto<D> input) { + return Objects.equals(type, input.getType()) && Objects.equals(name, input.getName()); } }; diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestKeyDefinition.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestKeyDefinition.java index f5156b4..b086c7e 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestKeyDefinition.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestKeyDefinition.java @@ -4,6 +4,7 @@ import com.google.common.base.MoreObjects; import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.referential.ReferentialDto; +import java.io.Serializable; import java.util.Objects; /** @@ -11,7 +12,9 @@ import java.util.Objects; * * @author Tony Chemit - chemit@codelutin.com */ -public class ObserveReferenceSetRequestKeyDefinition<D extends IdDto> { +public class ObserveReferenceSetRequestKeyDefinition<D extends IdDto> implements Serializable { + + private static final long serialVersionUID = 1L; private final Class<? extends IdDto> parentType; diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ProgramDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ProgramDtos.java index 03c2e3c..547b27b 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ProgramDtos.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ProgramDtos.java @@ -10,16 +10,7 @@ import java.util.ArrayList; public class ProgramDtos extends AbstractProgramDtos { - - public static boolean isProgramLongLine(ProgramDto programDto) { - return GearType.longline.equals(programDto.getGearType()); - } - - public static boolean isProgramSeine(ProgramDto programDto) { - return GearType.seine.equals(programDto.getGearType()); - } - - public static boolean isProgramLongline(ReferenceDto<ProgramDto> programDtoRef) { +public static boolean isProgramLongline(ReferenceDto<ProgramDto> programDtoRef) { boolean result = false; @@ -63,7 +54,7 @@ public class ProgramDtos extends AbstractProgramDtos { return reference; } - public static Iterable<ReferenceDto> filterReferencesByGearType(Iterable<ReferenceDto> programs, GearType gearType) { + public static Iterable<ReferenceDto<ProgramDto>> filterReferencesByGearType(Iterable<ReferenceDto<ProgramDto>> programs, GearType gearType) { return Iterables.filter(programs, ReferenceDtos.newLabelValuePredicate(ProgramDto.PROPERTY_GEAR_TYPE, gearType)); } diff --git a/observe-services-model/src/main/xmi/observe-services-dto-common.properties b/observe-services-model/src/main/xmi/observe-services-dto-common.properties index a7eba67..87eec39 100644 --- a/observe-services-model/src/main/xmi/observe-services-dto-common.properties +++ b/observe-services-model/src/main/xmi/observe-services-dto-common.properties @@ -31,7 +31,6 @@ fr.ird.observe.services.dto.referential.Gear.attribute.gearCaracteristic.stereot fr.ird.observe.services.dto.referential.GearCaracteristic.attribute.gearCaracteristicType.stereotype=unique,ordered fr.ird.observe.services.dto.referential.Species.attribute.ocean.stereotype=ordered fr.ird.observe.services.dto.referential.SpeciesList.attribute.species.stereotype=ordered -fr.ird.observe.services.dto.ReferenceSet.attribute.reference.stereotype=unique,ordered fr.ird.observe.services.dto.TripMap.attribute.points.stereotype=unique,ordered fr.ird.observe.services.dto.referential.Vessel.attribute.flagCountry.tagValue.simpleBeanWithNoInterfaceAttributeGeneric=fr.ird.observe.services.dto.referential.Country diff --git a/observe-services-model/src/main/xmi/observe-services-dto-common.zargo b/observe-services-model/src/main/xmi/observe-services-dto-common.zargo index 2919165..e5d5804 100644 Binary files a/observe-services-model/src/main/xmi/observe-services-dto-common.zargo and b/observe-services-model/src/main/xmi/observe-services-dto-common.zargo differ -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit 2fc9a91bc104fca7805249becb2110f2ff316d0d Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 19 20:07:51 2015 +0100 Début de revue du code de l'application swing : y'a du boulot... --- .../observe/ObserveSwingApplicationContext.java | 17 +- .../fr/ird/observe/db/ObserveReferentialCache.java | 5 +- .../fr/ird/observe/db/ObserveSwingDataSource.java | 61 +++--- .../ird/observe/ui/actions/ShowConfigAction.java | 32 +-- .../actions/shared/MoveTripLonglinesUIAction.java | 9 +- .../ui/actions/shared/MoveTripSeinesUIAction.java | 11 +- .../ui/actions/shared/MoveTripsUIAction.java | 5 +- .../ird/observe/ui/content/ContentUIHandler.java | 184 ++++++++++++++--- .../observe/ui/content/ContentUIInitializer.java | 228 --------------------- .../ird/observe/ui/content/ObserveContentUI.java | 2 - .../ird/observe/ui/content/list/ContentListUI.css | 2 +- .../ird/observe/ui/content/list/ContentListUI.jaxx | 6 +- .../ui/content/list/ContentListUIHandler.java | 4 +- .../impl/longline/ActivityLonglinesUIHandler.java | 2 +- .../impl/longline/ActivityLonglinesUIModel.java | 2 - .../list/impl/longline/TripLonglinesUIHandler.java | 2 +- .../list/impl/longline/TripLonglinesUIModel.java | 10 +- .../list/impl/seine/ActivitySeinesUIHandler.java | 2 +- .../content/list/impl/seine/RoutesUIHandler.java | 2 +- .../list/impl/seine/TripSeinesUIHandler.java | 2 +- .../content/list/impl/seine/TripSeinesUIModel.java | 29 +++ .../ui/content/open/ContentOpenableUIHandler.java | 9 +- .../impl/longline/ActivityLonglineUIHandler.java | 1 + .../open/impl/longline/TripLonglineUIHandler.java | 1 + .../open/impl/seine/ActivitySeineUIHandler.java | 1 + .../ui/content/open/impl/seine/RouteUIHandler.java | 1 + .../open/impl/seine/TripSeineUIHandler.java | 20 +- .../ui/content/ref/ContentReferenceUIHandler.java | 91 +++++++- .../ref/ReferentialContentUIInitializer.java | 116 +---------- .../ui/content/table/ContentTableUIHandler.java | 48 +---- .../impl/longline/CatchLonglineUIHandler.java | 28 ++- .../longline/GearUseFeaturesLonglineUIHandler.java | 29 +-- .../impl/seine/GearUseFeaturesSeineUIHandler.java | 4 +- .../src/main/resources/observe-log4j.properties | 2 +- 34 files changed, 444 insertions(+), 524 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationContext.java b/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationContext.java index 4d1bba6..8fcd31e 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationContext.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationContext.java @@ -24,8 +24,11 @@ package fr.ird.observe; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Lists; -import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.db.DataContext; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.util.gps.GPSService; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.db.ObserveSwingDataSource; import fr.ird.observe.db.constants.DbMode; import fr.ird.observe.db.event.ObserveSwingDataSourceEvent; @@ -67,9 +70,6 @@ import fr.ird.observe.ui.actions.shared.DeleteDataUIAction; import fr.ird.observe.ui.actions.shared.DeleteReferenceUIAction; import fr.ird.observe.ui.actions.shared.GoDownUIAction; import fr.ird.observe.ui.actions.shared.GoUpUIAction; -import fr.ird.observe.ui.actions.shared.MoveActivityLonglinesUIAction; -import fr.ird.observe.ui.actions.shared.MoveActivitySeinesUIAction; -import fr.ird.observe.ui.actions.shared.MoveRoutesUIAction; import fr.ird.observe.ui.actions.shared.MoveTripLonglinesUIAction; import fr.ird.observe.ui.actions.shared.MoveTripSeinesUIAction; import fr.ird.observe.ui.actions.shared.ReOpenUIAction; @@ -79,7 +79,6 @@ import fr.ird.observe.ui.actions.shared.SelectNodeUIAction; import fr.ird.observe.ui.actions.shared.SelectOpenNodeUIAction; import fr.ird.observe.ui.content.ContentUI; import fr.ird.observe.ui.tree.ObserveTreeHelper; -import fr.ird.observe.util.gps.GPSService; import fr.ird.observe.validation.ObserveSwingValidator; import fr.ird.observe.validation.ValidationContext; import jaxx.runtime.JAXXUtil; @@ -213,6 +212,11 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im Decorator<O> value = provider.getDecoratorByType(clazz, name); return value; } + public <R extends IdDto> Decorator<ReferenceDto<R>> getReferenceDecorator(Class<R> dtoType) { + Decorator<ReferenceDto> decorator1 = getDecorator(ReferenceDto.class, dtoType.getSimpleName()); + return (Decorator) decorator1; + } + public ObserveSwingApplicationConfig getConfig() { return CONFIG_ENTRY_DEF.getContextValue(this); @@ -914,9 +918,6 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im registerMainAction(actionMap, new DeleteReferenceUIAction(ui)); registerMainAction(actionMap, new MoveTripLonglinesUIAction(ui)); registerMainAction(actionMap, new MoveTripSeinesUIAction(ui)); - registerMainAction(actionMap, new MoveRoutesUIAction(ui)); - registerMainAction(actionMap, new MoveActivitySeinesUIAction(ui)); - registerMainAction(actionMap, new MoveActivityLonglinesUIAction(ui)); } public void registerMainAction(ActionMap actionMap, AbstractUIAction action) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveReferentialCache.java b/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveReferentialCache.java index 559b4c0..76abd27 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveReferentialCache.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveReferentialCache.java @@ -12,6 +12,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import java.io.Closeable; +import java.io.Serializable; import java.util.Date; import java.util.LinkedHashMap; import java.util.Map; @@ -21,7 +22,9 @@ import java.util.Map; * * @author Tony Chemit - chemit@codelutin.com */ -public class ObserveReferentialCache implements Closeable { +public class ObserveReferentialCache implements Closeable, Serializable { + + private static final long serialVersionUID = 1L; /** Logger. */ private static final Log log = LogFactory.getLog(ObserveReferentialCache.class); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveSwingDataSource.java b/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveSwingDataSource.java index cd53d2a..39401f2 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveSwingDataSource.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveSwingDataSource.java @@ -90,13 +90,13 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements return configuration.getLabel(); } - public String getAuthenticationToken() { - String result = null; - if (connection != null) { - result = connection.getAuthenticationToken(); - } - return result; - } +// public String getAuthenticationToken() { +// String result = null; +// if (connection != null) { +// result = connection.getAuthenticationToken(); +// } +// return result; +// } public boolean canWriteData() { boolean result = connection != null && connection.canWriteData(); @@ -140,7 +140,7 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements public void open() throws DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException, BabModelVersionException { - Preconditions.checkState(!isOpen(), "Connection is already open"); + checkIsNotAlreadyOpen(); fireNewMessage(t("observe.storage.message.opening", getLabel())); fireOpening(); @@ -156,7 +156,7 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements public void create(DataSourceCreateConfigurationDto createDto) throws IncompatibleDataSourceCreateConfigurationException, DataSourceCreateWithNoReferentialImportException { - Preconditions.checkState(!isOpen(), "Connection is already open"); + checkIsNotAlreadyOpen(); fireNewMessage(t("observe.storage.message.creating", getLabel())); fireOpening(); @@ -172,7 +172,7 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements @Override public void close() { - Preconditions.checkState(isOpen(), "Connection is not open"); + checkIsOpen(); fireNewMessage(t("observe.storage.message.closing", getLabel())); fireClosing(); @@ -192,7 +192,7 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements public void destroy() { - Preconditions.checkState(isOpen(), "Connection is not open"); + checkIsOpen(); fireNewMessage(t("observe.storage.message.destroying", getLabel())); fireClosing(); @@ -212,6 +212,8 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements public Set<ObserveDbUserDto> getUsers() { + checkIsNotOpen(); + DataSourceService dataSourceService = newService(DataSourceService.class); Set<ObserveDbUserDto> users = dataSourceService.getUsers(getConfiguration()); @@ -222,6 +224,8 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements public void applySecurity(Set<ObserveDbUserDto> users) { + checkIsNotOpen(); + DataSourceService dataSourceService = newService(DataSourceService.class); dataSourceService.applySecurity(getConfiguration(), users); @@ -229,7 +233,7 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements public void migrateData(ObserveDataSourceInformation dataSourceInformation, Version targetVersion) throws DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException { - Preconditions.checkState(!isOpen(), "Connection is open"); + checkIsNotOpen(); Version dbVersion = dataSourceInformation.getVersion(); if (!dataSourceInformation.getMigrations().isEmpty()) { @@ -269,7 +273,7 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements public void loadReferenceSets(FormDto<?> formDto) { - Preconditions.checkState(!isOpen(), "Connection is open"); + checkIsOpen(); ReferenceSetService referenceSetService = newService(ReferenceSetService.class); @@ -374,7 +378,7 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements public ObserveDataSourceInformation checkCanConnect() throws DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException { - Preconditions.checkState(connection == null, "Connection is already open"); + checkIsNotAlreadyOpen(); DataSourceService dataSourceService = newService(DataSourceService.class); @@ -401,15 +405,15 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements listenerList.add(ObserveSwingDataSourceListener.class, listener); } - public boolean containsObserveSwingDataSourceListener(ObserveSwingDataSourceListener listener) { - ObserveSwingDataSourceListener[] listeners = getObserveSwingDataSourceListener(); - for (ObserveSwingDataSourceListener l : listeners) { - if (l.equals(listener)) { - return true; - } - } - return false; - } +// public boolean containsObserveSwingDataSourceListener(ObserveSwingDataSourceListener listener) { +// ObserveSwingDataSourceListener[] listeners = getObserveSwingDataSourceListener(); +// for (ObserveSwingDataSourceListener l : listeners) { +// if (l.equals(listener)) { +// return true; +// } +// } +// return false; +// } public ObserveSwingDataSourceListener[] getObserveSwingDataSourceListener() { return listenerList.getListeners(ObserveSwingDataSourceListener.class); @@ -468,4 +472,15 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements } } + protected void checkIsOpen() { + Preconditions.checkState(isOpen(), "Connection is not open"); + } + + protected void checkIsNotAlreadyOpen() { + Preconditions.checkState(!isOpen(), "Connection is already open"); + } + + protected void checkIsNotOpen() { + Preconditions.checkState(!isOpen(), "Connection is open"); + } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ShowConfigAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ShowConfigAction.java index 89010d2..e1c313d 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ShowConfigAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ShowConfigAction.java @@ -30,6 +30,7 @@ import fr.ird.observe.db.ObserveSwingDataSource; import fr.ird.observe.services.dto.IdDtos; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.ReferenceSetDto; +import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; import fr.ird.observe.services.dto.referential.SpeciesListDto; import fr.ird.observe.services.service.ReferentialService; import fr.ird.observe.ui.ObserveMainUI; @@ -59,6 +60,7 @@ import java.awt.event.MouseEvent; import java.util.Collection; import java.util.EventObject; import java.util.Map; +import java.util.Set; import static org.nuiton.i18n.I18n.n; import static org.nuiton.i18n.I18n.t; @@ -122,10 +124,10 @@ public class ShowConfigAction extends AbstractAction { ReferentialService service = dataSource.newService(ReferentialService.class); ReferenceSetDto<SpeciesListDto> referentialReferenceSet = service.getReferentialReferenceSet(SpeciesListDto.class); - Collection<ReferenceDto> speciesLists = referentialReferenceSet.getReference(); - Map<String, ReferenceDto> speciesListMap = IdDtos.splitById(speciesLists); + Set<ReferentialReferenceDto<SpeciesListDto>> speciesLists = (Set) referentialReferenceSet.getReference(); + Map<String, ReferentialReferenceDto<SpeciesListDto>> speciesListMap = IdDtos.splitById(speciesLists); - Decorator referenceDecorator = ObserveSwingApplicationContext.get().getDecoratorService().getReferenceDecorator(SpeciesListDto.class); + Decorator<ReferentialReferenceDto<SpeciesListDto>> referenceDecorator = ObserveSwingApplicationContext.get().getDecoratorService().getReferenceDecorator(SpeciesListDto.class); editor = new SpeciesListTableCellEditor(speciesLists, speciesListMap, referenceDecorator); renderer = new SpeciesListsTableCellRenderer(speciesListMap, referenceDecorator); @@ -411,11 +413,11 @@ public class ShowConfigAction extends AbstractAction { private static final long serialVersionUID = 1L; - private final Map<String, ReferenceDto> entityMap; + private final Map<String, ReferentialReferenceDto<SpeciesListDto>> entityMap; - private final Decorator decorator; + private final Decorator<ReferentialReferenceDto<SpeciesListDto>> decorator; - public SpeciesListsTableCellRenderer(Map<String, ReferenceDto> entityMap, Decorator decorator) { + public SpeciesListsTableCellRenderer(Map<String, ReferentialReferenceDto<SpeciesListDto>> entityMap, Decorator<ReferentialReferenceDto<SpeciesListDto>> decorator) { this.entityMap = entityMap; this.decorator = decorator; } @@ -426,7 +428,7 @@ public class ShowConfigAction extends AbstractAction { int row, int column) { String speciesListId = String.valueOf(value); - ReferenceDto speciesList = entityMap.get(speciesListId); + ReferenceDto<SpeciesListDto> speciesList = entityMap.get(speciesListId); return super.getTableCellRendererComponent(table, decorator.toString(speciesList), isSelected, hasFocus, row, column); } @@ -436,23 +438,23 @@ public class ShowConfigAction extends AbstractAction { private static final long serialVersionUID = 1L; - private final Map<String, ReferenceDto> entityMap; + private final Map<String, ReferentialReferenceDto<SpeciesListDto>> entityMap; - private final Decorator decorator; + private final Decorator<ReferentialReferenceDto<SpeciesListDto>> decorator; - protected SpeciesListTableCellEditor(Collection<ReferenceDto> entities, - Map<String, ReferenceDto> entityMap, - Decorator decorator) { + protected SpeciesListTableCellEditor(Collection<ReferentialReferenceDto<SpeciesListDto>> entities, + Map<String, ReferentialReferenceDto<SpeciesListDto>> entityMap, + Decorator<ReferentialReferenceDto<SpeciesListDto>> decorator) { super(new JComboBox()); this.entityMap = entityMap; this.decorator = decorator; - final BeanFilterableComboBox<ReferenceDto> component = new BeanFilterableComboBox<>(); + final BeanFilterableComboBox<ReferentialReferenceDto<SpeciesListDto>> component = new BeanFilterableComboBox<>(); component.setI18nPrefix("observe.common."); component.setShowReset(true); - component.setBeanType(ReferenceDto.class); + component.setBeanType((Class) ReferenceDto.class); setClickCountToStart(1); @@ -474,7 +476,7 @@ public class ShowConfigAction extends AbstractAction { public Object getCellEditorValue() { String result = null; Object selectedItem = component.getSelectedItem(); - if (selectedItem !=null && ReferenceDto.class.isInstance(selectedItem)) { + if (selectedItem != null && ReferenceDto.class.isInstance(selectedItem)) { ReferenceDto reference = (ReferenceDto) selectedItem; result = reference.getId(); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripLonglinesUIAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripLonglinesUIAction.java index f6dbdfa..57003e4 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripLonglinesUIAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripLonglinesUIAction.java @@ -41,6 +41,13 @@ public class MoveTripLonglinesUIAction extends MoveTripsUIAction { } @Override + protected List<ReferenceDto<TripLonglineDto>> getSelectedDatas(ContentUI<?> ui) { + TripLonglinesUI tripLonglinesUI = (TripLonglinesUI) ui; + TripLonglinesUIModel model = tripLonglinesUI.getModel(); + return model.getSelectedDatas(); + } + + @Override protected GearType getGearType(ContentUI<?> ui) { return GearType.longline; } @@ -55,7 +62,7 @@ public class MoveTripLonglinesUIAction extends MoveTripsUIAction { protected void updateModelData(ContentUI<?> ui) { TripLonglinesUI tripLonglinesUI = (TripLonglinesUI) ui; TripLonglinesUIModel model = tripLonglinesUI.getModel(); - List<ReferenceDto> data = new ArrayList<>(model.getData()); + List<ReferenceDto<TripLonglineDto>> data = new ArrayList<>(model.getData()); data.removeAll(model.getSelectedDatas()); model.setData(data); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripSeinesUIAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripSeinesUIAction.java index ebbd01b..1cf53db 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripSeinesUIAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripSeinesUIAction.java @@ -18,7 +18,7 @@ import java.util.List; * @author Kevin Morin (Code Lutin) * @since 5.0 */ -public class MoveTripSeinesUIAction extends MoveTripsUIAction { +public class MoveTripSeinesUIAction extends MoveTripsUIAction<TripSeineDto> { private static final long serialVersionUID = 1L; @@ -41,6 +41,13 @@ public class MoveTripSeinesUIAction extends MoveTripsUIAction { } @Override + protected List<ReferenceDto<TripSeineDto>> getSelectedDatas(ContentUI<?> ui) { + TripSeinesUI tripSeinesUI = (TripSeinesUI) ui; + TripSeinesUIModel model = tripSeinesUI.getModel(); + return model.getSelectedDatas(); + } + + @Override protected GearType getGearType(ContentUI<?> ui) { return GearType.seine; } @@ -55,7 +62,7 @@ public class MoveTripSeinesUIAction extends MoveTripsUIAction { protected void updateModelData(ContentUI<?> ui) { TripSeinesUI tripSeinesUI = (TripSeinesUI) ui; TripSeinesUIModel model = tripSeinesUI.getModel(); - List<ReferenceDto> data = new ArrayList<>(model.getData()); + List<ReferenceDto<TripSeineDto>> data = new ArrayList<>(model.getData()); data.removeAll(model.getSelectedDatas()); model.setData(data); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripsUIAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripsUIAction.java index 47760f2..17a7b9c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripsUIAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripsUIAction.java @@ -45,6 +45,7 @@ import javax.swing.JOptionPane; import javax.swing.SwingUtilities; import java.awt.event.ActionEvent; import java.util.ArrayList; +import java.util.LinkedHashSet; import java.util.List; import static org.nuiton.i18n.I18n.n; @@ -56,7 +57,7 @@ import static org.nuiton.i18n.I18n.t; * @author Kevin Morin (Code Lutin) * @since 5.0 */ -public abstract class MoveTripsUIAction extends AbstractUIAction { +public abstract class MoveTripsUIAction<T extends IdDto> extends AbstractUIAction { private static final long serialVersionUID = 1L; @@ -105,7 +106,7 @@ public abstract class MoveTripsUIAction extends AbstractUIAction { if (programId != null) { // change the program of the selected trips - List<ReferenceDto> selectedDatas = ((ContentListUIModel) ui.getModel()).getSelectedDatas(); + List<ReferenceDto<T>> selectedDatas = ((ContentListUIModel) ui.getModel()).getSelectedDatas(); List<String> tripIds = Lists.transform(selectedDatas, ReferenceDtos.getIdFunction()); List<Integer> positions = getPositions(tripIds, programId); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java index 8b12298..3dc601c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java @@ -21,15 +21,19 @@ */ package fr.ird.observe.ui.content; +import com.google.common.base.Optional; import fr.ird.observe.ObserveOpenDataManager; import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.ObserveSwingBinderService; import fr.ird.observe.ObserveSwingTechnicalException; import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.db.ObserveSwingDataSource; +import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.services.dto.AbstractObserveDto; +import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.ui.DecoratorService; import fr.ird.observe.ui.UIHelper; @@ -42,6 +46,7 @@ import fr.ird.observe.validation.ValidationContext; import jaxx.runtime.JAXXContext; import jaxx.runtime.swing.ErrorDialogUI; import jaxx.runtime.swing.JAXXButtonGroup; +import jaxx.runtime.swing.editor.bean.BeanComboBox; import jaxx.runtime.swing.editor.bean.BeanListHeader; import jaxx.runtime.validator.swing.SwingValidatorMessageTableModel; import jaxx.runtime.validator.swing.SwingValidatorUtil; @@ -52,6 +57,7 @@ import org.nuiton.decorator.Decorator; import org.nuiton.decorator.DecoratorUtil; import org.nuiton.decorator.JXPathDecorator; import org.nuiton.jaxx.widgets.gis.absolute.CoordinatesEditor; +import org.nuiton.jaxx.widgets.select.FilterableDoubleList; import org.nuiton.validator.NuitonValidatorScope; import javax.swing.AbstractButton; @@ -65,6 +71,8 @@ import java.awt.Component; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.ArrayList; +import java.util.Collections; +import java.util.LinkedHashSet; import java.util.List; import static org.nuiton.i18n.I18n.t; @@ -255,7 +263,7 @@ public abstract class ContentUIHandler<E extends IdDto> { * @return {@code true} si on peut écrire (donc éditer), {@code false} autrement. */ protected abstract boolean computeCanWrite(ObserveSwingDataSource dataSsource); - + protected final String getSelectedParentId() { String s = null; if (parentType != null) { @@ -316,13 +324,14 @@ public abstract class ContentUIHandler<E extends IdDto> { public void initUI() throws Exception { - final ContentUIInitializer<E, ObserveContentUI<E>> uiInitializer = new ContentUIInitializer<E, ObserveContentUI<E>>(ui); + final ContentUIInitializer<E, ObserveContentUI<E>> uiInitializer = new ContentUIInitializer<>(ui); uiInitializer.initUI(); getModel().addPropertyChangeListener(ContentUIModel.PROPERTY_FORM_DTO, new PropertyChangeListener() { + @Override public void propertyChange(PropertyChangeEvent evt) { - uiInitializer.referentialDataUpdated(); + updateReferenceSets(true); } }); @@ -365,18 +374,6 @@ public abstract class ContentUIHandler<E extends IdDto> { return icon; } -//FIXME -// protected void onLoad(TopiaContext tx, E bean) throws TopiaException { -// -// // par defaut on charge l'objet de la base dans le bean d'édition -// getLoadBinder().load(bean, getBean(), true); -// } - - //FIXME -// protected E onPreCreate(TopiaContext tx, Object parentBean, E bean) throws TopiaException { -// return bean; -// } - public void startEditUI(String... binding) { E editBean = getBean(); @@ -606,7 +603,7 @@ public abstract class ContentUIHandler<E extends IdDto> { DecoratorUtil.sort((JXPathDecorator<E>) decorator, data, 0); return data; } else { - List<E> result = new ArrayList<E>(); + List<E> result = new ArrayList<>(); return result; } } @@ -625,19 +622,6 @@ public abstract class ContentUIHandler<E extends IdDto> { } } - protected E onCreate(Object parentBean, E editBean) { - return editBean; - } - - protected E onUpdate(Object parentBean, E beanToSave) { - // rien par defaut - return beanToSave; - } - - protected void onDelete(Object parentBean, E beanToDelete) { - // rien par defaut - } - protected void addInfoMessage(String message) { addMessage(ui, NuitonValidatorScope.INFO, @@ -788,6 +772,146 @@ public abstract class ContentUIHandler<E extends IdDto> { } + protected void updateReferenceSets(boolean reloadReferenceSets) { + + if (reloadReferenceSets && ContentMode.READ != getModel().getMode()) { + + getDataSource().loadReferenceSets(getModel().getFormDto()); + + } + + for (String name : ui.get$objectMap().keySet()) { + Object o = ui.getObjectById(name); + + if (o == null) { + continue; + } + + if (o instanceof BeanComboBox) { + updateData((BeanComboBox) o); + continue; + } + + if (o instanceof BeanListHeader) { + updateData((BeanListHeader) o); + continue; + } + + if (o instanceof FilterableDoubleList) { + updateData((FilterableDoubleList) o); + continue; + } + + } + + } + + protected <R extends IdDto> void updateData(FilterableDoubleList<ReferenceDto<R>> list) { + + Class<R> dtoClass = getDtoClass(list); + FormDto<E> formDto = getModel().getFormDto(); + List<ReferenceDto<R>> data; + + if (formDto != null && ReferentialDto.class.isAssignableFrom(dtoClass)) { + + //FIXME Bien vérifier que cela fonctionne + ReferenceSetDto<R> referenceSetDto = formDto.getReferenceSetDto(dtoClass, list.getModel().getProperty()); + + data = new ArrayList<>(referenceSetDto.getReference()); + + } else { + + data = new ArrayList<>(); + + } + + // sort data from first decorator context + Decorator<ReferenceDto<R>> decorator = getReferenceDecorator(dtoClass); + DecoratorUtil.sort((JXPathDecorator<ReferenceDto<R>>) decorator, data, 0); + + //FIXME A finir (bien vérifier que la sélection n'est plus dans l'univers) + List<ReferenceDto<R>> selected = list.getModel().getSelected(); + list.setUniverse(data); + list.setSelected(selected); + + list.putClientProperty("data", data); + } + + protected <R extends IdDto> void updateData(BeanListHeader<ReferenceDto<R>> list) { + + Class<R> dtoClass = getDtoClass(list); + FormDto<E> formDto = getModel().getFormDto(); + List<ReferenceDto<R>> data; + + if (formDto != null && ReferentialDto.class.isAssignableFrom(dtoClass)) { + + ReferenceSetDto<R> referenceSetDto = formDto.getReferenceSetDto(dtoClass); + data = new ArrayList<>(referenceSetDto.getReference()); + + } else { + data = new ArrayList<>(); + } + + // sort data from first decorator context + Decorator<ReferenceDto<R>> decorator = getReferenceDecorator(dtoClass); + DecoratorUtil.sort((JXPathDecorator<ReferenceDto<R>>) decorator, data, 0); + + list.setData(data); + list.putClientProperty("data", data); + } + + + protected <R extends IdDto> void updateData(BeanComboBox<ReferenceDto<R>> comboBox) { + + Class<R> dtoClass = getDtoClass(comboBox); + + Boolean noLoad = (Boolean) comboBox.getClientProperty(ObserveContentUI.CLIENT_PROPERTY_LIST_NO_LOAD); + + List<ReferenceDto<R>> data; + FormDto<E> formDto = getModel().getFormDto(); + + if (noLoad != null && noLoad || formDto == null) { + + if (log.isInfoEnabled()) { + log.info("Skip loading of entity list [" + dtoClass.getName() + "] (listNoLoad property found)"); + } + data = Collections.emptyList(); + + } else { + + data = new ArrayList<>(); + + // get complete data list from service + Optional<ReferenceSetDto<R>> optionalReferenceSetDto = formDto.tryToGetReferenceSetDto(dtoClass, comboBox.getProperty()); + + if (optionalReferenceSetDto.isPresent()) { + + ReferenceSetDto<R> referenceSetDto = optionalReferenceSetDto.get(); + LinkedHashSet<ReferenceDto<R>> reference = referenceSetDto.getReference(); + data.addAll(reference); + + } + + } + + if (log.isInfoEnabled()) { + log.info("entity list [" + dtoClass.getName() + "] : " + data.size()); + } + + comboBox.setData(data); + } + + protected <R extends IdDto> Class<R> getDtoClass(JComponent list) { + Object clientProperty = list.getClientProperty(ObserveContentUI.CLIENT_PROPERTY_ENTITY_CLASS); + return (Class<R>) clientProperty; + } + + protected <R extends IdDto> Decorator<ReferenceDto<R>> getReferenceDecorator(Class<R> dtoType) { + Decorator<ReferenceDto<R>> decorator = ObserveSwingApplicationContext.get().getReferenceDecorator(dtoType); + return decorator; + } + + // protected static class LogPropertyChanges implements PropertyChangeListener { // // private final ImmutableSet<String> propertyNames; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIInitializer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIInitializer.java index 177147e..14bfd19 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIInitializer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIInitializer.java @@ -22,14 +22,11 @@ package fr.ird.observe.ui.content; * #L% */ -import com.google.common.base.Predicate; -import com.google.common.collect.Collections2; import com.google.common.collect.Lists; import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.ReferenceDto; -import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.referential.ReferentialDtos; import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; @@ -57,7 +54,6 @@ import org.jdesktop.swingx.JXMonthView; import org.jdesktop.swingx.autocomplete.ComboBoxCellEditor; import org.jdesktop.swingx.autocomplete.ObjectToStringConverter; import org.nuiton.decorator.Decorator; -import org.nuiton.decorator.DecoratorUtil; import org.nuiton.decorator.JXPathDecorator; import org.nuiton.jaxx.application.bean.JavaBeanObjectUtil; import org.nuiton.jaxx.widgets.datetime.DateTimeEditor; @@ -99,7 +95,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.HashSet; -import java.util.LinkedHashSet; import java.util.List; import java.util.Set; @@ -299,36 +294,6 @@ public class ContentUIInitializer<E extends IdDto, UI extends ObserveContentUI<E } } - public void referentialDataUpdated() { - - // initialisation des éditeurs - - for (String name : ui.get$objectMap().keySet()) { - Object o = ui.getObjectById(name); - - if (o == null) { - continue; - } - - if (o instanceof BeanComboBox<?>) { - updateData((BeanComboBox<?>) o); - continue; - } - - if (o instanceof BeanListHeader<?>) { - updateData((BeanListHeader<?>) o); - continue; - } - - if (o instanceof FilterableDoubleList<?>) { - updateData((FilterableDoubleList<?>) o); - continue; - } - - } - - } - protected void initBlockLayerUI(String... doNotBlockComponentIds) { ui.getBlockLayerUI().setAcceptedComponentTypes(ObserveMapPane.class, JScrollBar.class); ui.getBlockLayerUI().setAcceptedComponentNames(doNotBlockComponentIds); @@ -675,37 +640,6 @@ public class ContentUIInitializer<E extends IdDto, UI extends ObserveContentUI<E // service.addReferentielPropertyChangeListener(entityClass, listener); } - protected <E extends IdDto> void updateData(FilterableDoubleList list) { - Class<E> dtoClass = (Class<E>) list.getClientProperty(ObserveContentUI.CLIENT_PROPERTY_ENTITY_CLASS); - FormDto formDto = getFormDto(); - List<ReferenceDto> data; - - if (formDto != null && ReferentialDto.class.isAssignableFrom(dtoClass)) { - - //FIXME Bien vérifier que cela fonctionne - ReferenceSetDto<E> referenceSetDto = formDto.getReferenceSetDto(dtoClass, list.getModel().getProperty()); - - data = new ArrayList<>(referenceSetDto.getReference()); - - } else { - - data = new ArrayList<>(); - - } - - // sort data from first decorator context - ObserveSwingApplicationContext tx = ObserveSwingApplicationContext.get(); - Decorator<ReferenceDto> decorator = tx.getDecorator(ReferenceDto.class, dtoClass.getSimpleName()); - DecoratorUtil.sort((JXPathDecorator<ReferenceDto>) decorator, data, 0); - - //FIXME A finir (bien vérifier que la sélection n'est plus dans l'univers) - List selected = list.getModel().getSelected(); - list.setUniverse(data); - list.setSelected(selected); - - list.putClientProperty("data", data); - } - /** * Remplit le modèle d'une liste graphique avec la liste des entités d'un * type donné sur un service de persistance donné. @@ -745,31 +679,6 @@ public class ContentUIInitializer<E extends IdDto, UI extends ObserveContentUI<E // service.addReferentielPropertyChangeListener(entityClass, listener); } - protected <E extends IdDto> void updateData(BeanListHeader list) { - Class<E> dtoClass = (Class<E>) list.getClientProperty(ObserveContentUI.CLIENT_PROPERTY_ENTITY_CLASS); - FormDto formDto = getFormDto(); - List<ReferenceDto> data; - - if (formDto != null && ReferentialDto.class.isAssignableFrom(dtoClass)) { - - Predicate<ReferenceDto> predicate = (Predicate<ReferenceDto>) list.getClientProperty(ObserveContentUI.CLIENT_PROPERTY_LIST_PREDICATE); - - ReferenceSetDto<E> referenceSetDto = formDto.getReferenceSetDto(dtoClass); - data = new ArrayList<>(Collections2.filter(referenceSetDto.getReference(), predicate)); - - } else { - data = new ArrayList<>(); - } - - // sort data from first decorator context - ObserveSwingApplicationContext tx = ObserveSwingApplicationContext.get(); - Decorator<ReferenceDto> decorator = tx.getDecorator(ReferenceDto.class, dtoClass.getSimpleName()); - DecoratorUtil.sort((JXPathDecorator<ReferenceDto>) decorator, data, 0); - - list.setData(data); - list.putClientProperty("data", data); - } - /** * Prépare un component de choix d'entités pour un type d'entité donné et * pour un service de persistance donné. @@ -841,143 +750,6 @@ public class ContentUIInitializer<E extends IdDto, UI extends ObserveContentUI<E } - protected <E extends IdDto> void updateData(BeanComboBox comboBox) { - ObserveSwingApplicationContext context = ObserveSwingApplicationContext.get(); - - // init combobox - Class<E> dtoClass = (Class<E>) comboBox.getClientProperty(ObserveContentUI.CLIENT_PROPERTY_ENTITY_CLASS); - Decorator<ReferenceDto> decorator = context.getDecorator(ReferenceDto.class, dtoClass.getSimpleName()); - - Boolean noLoad = (Boolean) comboBox.getClientProperty(ObserveContentUI.CLIENT_PROPERTY_LIST_NO_LOAD); - - List<ReferenceDto> data = null; - FormDto formDto = getFormDto(); - - if (noLoad != null && noLoad || formDto == null) { - - if (log.isInfoEnabled()) { - log.info("Skip loading of entity list [" + dtoClass.getName() + "] (listNoLoad property found)"); - } - data = Collections.emptyList(); - - } else { - - data = new ArrayList<>(); - - // get complete data list from service - ReferenceSetDto<E> referenceSetDto = formDto.getReferenceSetDto(dtoClass, comboBox.getProperty()); - LinkedHashSet<ReferenceDto> reference = referenceSetDto.getReference(); - - data.addAll(reference); - - } - - if (log.isInfoEnabled()) { - log.info("entity list [" + dtoClass.getName() + "] : " + data.size()); - } - - comboBox.setData(data); - } - - /** - * Un écouteur de changement les entités d'un type donné contenues dans une - * liste graphique donnée. - * - * @param <E> le type des entités - */ - protected static class EntityListPropertyChangeListener - <E extends IdDto> implements PropertyChangeListener { - - /** le type des entités */ - private Class<E> entityClass; - - /** la liste graphique */ - private BeanListHeader<E> list; - - public EntityListPropertyChangeListener(Class<E> entityClass, - BeanListHeader<E> list) { - this.entityClass = entityClass; - this.list = list; - } - - @SuppressWarnings({"unchecked"}) - @Override - public void propertyChange(PropertyChangeEvent evt) { - - List<E> newValue = (List<E>) evt.getNewValue(); - - Decorator<E> decorator = (Decorator<E>) - list.getClientProperty("decorator"); - - if (log.isDebugEnabled()) { - log.debug("reloading entities list for [" + entityClass + - "], size : " + newValue.size()); - } - - DecoratorUtil.sort((JXPathDecorator<E>) decorator, newValue, 0); - E selectedValue = list.getSelectedValue(); - list.putClientProperty("data", newValue); - list.setData(Collections.<E>emptyList()); - list.setData(newValue); - if (selectedValue != null && newValue.contains(selectedValue)) { - - // reselect it - list.getList().setSelectedValue(selectedValue, true); - } - } - } - - /** - * Un écouteur de changement les entités d'un type donné contenues dans une - * liste graphique donnée. - * - * @param <E> le type des entités - */ - protected static class EntityDoubleListPropertyChangeListener - <E extends IdDto> implements PropertyChangeListener { - - /** le type des entités */ - private Class<E> entityClass; - - /** la liste graphique */ - private FilterableDoubleList<E> list; - - public EntityDoubleListPropertyChangeListener(Class<E> entityClass, - FilterableDoubleList<E> list) { - this.entityClass = entityClass; - this.list = list; - } - - @SuppressWarnings({"unchecked"}) - @Override - public void propertyChange(PropertyChangeEvent evt) { - - List<E> newValue = (List<E>) evt.getNewValue(); - - Decorator<E> decorator = (Decorator<E>) - list.getClientProperty("decorator"); - - if (log.isDebugEnabled()) { - log.debug("reloading entities list for [" + entityClass + - "], size : " + newValue.size()); - } - - DecoratorUtil.sort((JXPathDecorator<E>) decorator, newValue, 0); - list.putClientProperty("data", newValue); - - List<E> selectedValues = new ArrayList<E>(list.getModel().getSelected()); - - list.setUniverse(Collections.<E>emptyList()); - list.setUniverse(newValue); - - selectedValues.retainAll(newValue); - - // reselect it - list.setSelected(selectedValues); - - } - } - /** * Un renderer de liste d'entites d'un referentiel dans le quel on veut * differencier les entites qui sont desactivees. diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ObserveContentUI.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ObserveContentUI.java index 5c8799b..4d736c2 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ObserveContentUI.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ObserveContentUI.java @@ -41,8 +41,6 @@ import javax.swing.JToolBar; */ public interface ObserveContentUI<E extends IdDto> extends JAXXObject { - String CLIENT_PROPERTY_LIST_PREDICATE = "listPredicate"; - String CLIENT_PROPERTY_LIST_NO_LOAD = "listNoLoad"; String CLIENT_PROPERTY_ENTITY_CLASS = "entityClass"; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUI.css b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUI.css index aae257d..d919ca3 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUI.css +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUI.css @@ -29,7 +29,7 @@ } #listHeader { - beanType:{ReferenceDto.class}; + beanType:{(Class)ReferenceDto.class}; _doInit:{getModel().getChildType()}; showReset:true; list:{list}; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUI.jaxx index 8b0fffc..6180809 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUI.jaxx @@ -57,8 +57,8 @@ <script><![CDATA[ -public final ReferenceDto getSelectedData() { - return (ReferenceDto) getSelectedBean(list); +public final ReferenceDto<C> getSelectedData() { + return (ReferenceDto<C>) getSelectedBean(list); } public final List<ReferenceDto> getSelectedDatas() { @@ -75,7 +75,7 @@ public final List<ReferenceDto> getSelectedDatas() { <JList id='list' onMouseClicked='getHandler().onDataSelected(event)'/> - <BeanListHeader id='listHeader' genericType='ReferenceDto' _entityClass="getModel().getChildType()"/> + <BeanListHeader id='listHeader' genericType='ReferenceDto< C >' _entityClass="getModel().getChildType()"/> </JScrollPane> diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUIHandler.java index 68f7e19..b6db1fe 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUIHandler.java @@ -64,7 +64,7 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends IdDto> ext * @param bean the container of entities to display * @return the list of entities to display */ - protected abstract List<ReferenceDto> getChilds(E bean); + protected abstract List<ReferenceDto<C>> getChilds(E bean); @Override protected boolean computeCanWrite(ObserveSwingDataSource source) { @@ -130,7 +130,7 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends IdDto> ext loadParentBean(); E bean = getBean(); - List<ReferenceDto> data = getChilds(bean); + List<ReferenceDto<C>> data = getChilds(bean); model.setData(data); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java index ff6699f..620c684 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java @@ -114,7 +114,7 @@ public class ActivityLonglinesUIHandler extends ContentListUIHandler<TripLonglin } @Override - protected List<ReferenceDto> getChilds(TripLonglineDto bean) { + protected List<ReferenceDto<ActivityLonglineDto>> getChilds(TripLonglineDto bean) { ActivityLonglineService service = ObserveSwingApplicationContext.get().newService(ActivityLonglineService.class); ReferenceSetDto<ActivityLonglineDto> activityLonglineStubByRoute = service.getActivityLonglineByTripLongline(bean.getId()); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIModel.java index bc0966d..2f54ec9 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIModel.java @@ -22,11 +22,9 @@ package fr.ird.observe.ui.content.list.impl.longline; * #L% */ -import fr.ird.observe.ObserveSwingBinderService; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.ui.content.list.ContentListUIModel; -import org.nuiton.util.beans.BinderModelBuilder; /** * Created on 9/26/14. diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIHandler.java index e05c7c1..620bcab 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIHandler.java @@ -97,7 +97,7 @@ public class TripLonglinesUIHandler extends ContentListUIHandler<ProgramDto, Tri } @Override - protected List<ReferenceDto> getChilds(ProgramDto bean) { + protected List<ReferenceDto<TripLonglineDto>> getChilds(ProgramDto bean) { TripLonglineService service = ObserveSwingApplicationContext.get().newService(TripLonglineService.class); ReferenceSetDto<TripLonglineDto> tripLonglineByProgram = service.getTripLonglineByProgram(bean.getId()); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIModel.java index a3be385..332347c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIModel.java @@ -49,18 +49,18 @@ public class TripLonglinesUIModel extends ContentListUIModel<ProgramDto, TripLon public static final String PROPERTY_SELECTED_DATAS = "selectedDatas"; /** entité sélectionnée dans la liste */ - protected List<ReferenceDto> selectedDatas; + protected List<ReferenceDto<TripLonglineDto>> selectedDatas; public TripLonglinesUIModel() { super(ProgramDto.class, TripLonglineDto.class); } - public List<ReferenceDto> getSelectedDatas() { + public List<ReferenceDto<TripLonglineDto>> getSelectedDatas() { return selectedDatas; } - public void setSelectedDatas(List<ReferenceDto> selectedDatas) { - List<ReferenceDto> old = getSelectedDatas(); + public void setSelectedDatas(List<ReferenceDto<TripLonglineDto>> selectedDatas) { + List<ReferenceDto<TripLonglineDto>> old = getSelectedDatas(); this.selectedDatas = selectedDatas; if (log.isDebugEnabled()) { log.debug("New selected datas : " + selectedDatas); @@ -69,7 +69,7 @@ public class TripLonglinesUIModel extends ContentListUIModel<ProgramDto, TripLon } @Override - public void setData(List<ReferenceDto> data) { + public void setData(List<ReferenceDto<TripLonglineDto>> data) { super.setData(data); setSelectedDatas(null); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUIHandler.java index 494df6b..b0f1701 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUIHandler.java @@ -112,7 +112,7 @@ public class ActivitySeinesUIHandler extends ContentListUIHandler<RouteDto, Acti } @Override - protected List<ReferenceDto> getChilds(RouteDto bean) { + protected List<ReferenceDto<ActivitySeineDto>> getChilds(RouteDto bean) { ActivitySeineService service = ObserveSwingApplicationContext.get().newService(ActivitySeineService.class); ReferenceSetDto<ActivitySeineDto> activitySeineByRoute = service.getActivitySeineByRoute(bean.getId()); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIHandler.java index aeb31c8..9f591c6 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIHandler.java @@ -109,7 +109,7 @@ public class RoutesUIHandler extends ContentListUIHandler<TripSeineDto, RouteDto } @Override - protected List<ReferenceDto> getChilds(TripSeineDto bean) { + protected List<ReferenceDto<RouteDto>> getChilds(TripSeineDto bean) { RouteService service = ObserveSwingApplicationContext.get().newService(RouteService.class); ReferenceSetDto<RouteDto> routeByTripSeine = service.getRouteByTripSeine(bean.getId()); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIHandler.java index 0333cc2..f978250 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIHandler.java @@ -94,7 +94,7 @@ public class TripSeinesUIHandler extends ContentListUIHandler<ProgramDto, TripSe } @Override - protected List<ReferenceDto> getChilds(ProgramDto bean) { + protected List<ReferenceDto<TripSeineDto>> getChilds(ProgramDto bean) { TripSeineService service = ObserveSwingApplicationContext.get().newService(TripSeineService.class); ReferenceSetDto<TripSeineDto> tripSeineByProgram = service.getTripSeineByProgram(bean.getId()); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIModel.java index 7236f31..28d8952 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIModel.java @@ -43,8 +43,37 @@ public class TripSeinesUIModel extends ContentListUIModel<ProgramDto, TripSeineD */ private static final Log log = LogFactory.getLog(TripSeinesUIModel.class); +<<<<<<< 91f61e4c040cb3dcca05b04dcccd582b94a3145c +======= + public static final String PROPERTY_SELECTED_DATAS = "selectedDatas"; + + /** entité sélectionnée dans la liste */ + protected List<ReferenceDto<TripSeineDto>> selectedDatas; + +>>>>>>> Début de revue du code de l'application swing : y'a du boulot... public TripSeinesUIModel() { super(ProgramDto.class, TripSeineDto.class); } +<<<<<<< 91f61e4c040cb3dcca05b04dcccd582b94a3145c +======= + public List<ReferenceDto<TripSeineDto>> getSelectedDatas() { + return selectedDatas; + } + + public void setSelectedDatas(List<ReferenceDto<TripSeineDto>> selectedDatas) { + List<ReferenceDto<TripSeineDto>> old = getSelectedDatas(); + this.selectedDatas = selectedDatas; + if (log.isDebugEnabled()) { + log.debug("New selected datas : " + selectedDatas); + } + firePropertyChange(PROPERTY_SELECTED_DATAS, old, selectedDatas); + } + + @Override + public void setData(List<ReferenceDto<TripSeineDto>> data) { + super.setData(data); + setSelectedDatas(null); + } +>>>>>>> Début de revue du code de l'application swing : y'a du boulot... } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java index ce4ca00..b77f81d 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java @@ -22,8 +22,8 @@ package fr.ird.observe.ui.content.open; import fr.ird.observe.ObserveSwingApplicationContext; -import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.db.ObserveSwingDataSource; +import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.seine.TripSeineDto; @@ -100,6 +100,9 @@ public abstract class ContentOpenableUIHandler<E extends IdDto> extends ContentU ContentOpenableUI<E> ui = getUi(); + // On charge les ensembles de références utilisées dans les combobox + updateReferenceSets(true); + // on repaint le parent (le program devient alors ouvert) ObserveTreeHelper treeHelper = getTreeHelper(ui); treeHelper.reloadSelectedNode(true, true); @@ -279,8 +282,8 @@ public abstract class ContentOpenableUIHandler<E extends IdDto> extends ContentU protected final void finalizeOpenUI(ContentMode mode, boolean create) { - // utilisation du mode requis - setContentMode(mode); +// // utilisation du mode requis +// setContentMode(mode); boolean historicalData = false; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUIHandler.java index 7da80d5..0b26e67 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUIHandler.java @@ -185,6 +185,7 @@ public class ActivityLonglineUIHandler extends ContentOpenableUIHandler<Activity } + setContentMode(mode); getModel().setFormDto(formDto); ActivityLonglineDtos.copyActivityLonglineDto(formDto.getForm(), bean); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIHandler.java index 69c4c2c..695cd74 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIHandler.java @@ -195,6 +195,7 @@ public class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLongline formDto = getTripLonglineService().loadToEdit(tripId); } + setContentMode(mode); getModel().setFormDto(formDto); TripLonglineDtos.copyTripLonglineDto(formDto.getForm(), bean); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUIHandler.java index 50b65c2..ba98e15 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUIHandler.java @@ -213,6 +213,7 @@ public class ActivitySeineUIHandler extends ContentOpenableUIHandler<ActivitySei } + setContentMode(mode); getModel().setFormDto(formDto); ActivitySeineDtos.copyActivitySeineDto(formDto.getForm(), bean); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIHandler.java index 441f15f..0e043aa 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIHandler.java @@ -146,6 +146,7 @@ public class RouteUIHandler extends ContentOpenableUIHandler<RouteDto> { } + setContentMode(mode); getModel().setFormDto(formDto); RouteDtos.copyRouteDto(formDto.getForm(), editBean); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java index 60c87b6..5eeee20 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java @@ -67,7 +67,6 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeineDto> { } - @Override public TripSeineUI getUi() { return (TripSeineUI) super.getUi(); @@ -124,6 +123,7 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeineDto> { tripMap.getHandler().setConfig(config); getUi().getTripSeineTabPane().addChangeListener(new ChangeListener() { + @Override public void stateChanged(ChangeEvent e) { JTabbedPane tripSeineTabPane = (JTabbedPane) e.getSource(); @@ -134,6 +134,7 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeineDto> { if (buildTripMap) { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { @@ -179,23 +180,30 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeineDto> { if (create) { // create mode - if (log.isInfoEnabled()) { + if (log.isInfoEnabled()) { log.info(prefix + "create a new trip"); } formDto = getTripSeineService().preCreate(programId); + } else if (mode == ContentMode.READ) { + + // read mode + if (log.isInfoEnabled()) { + log.info(prefix + "read existing trip " + tripId); + } + formDto = getTripSeineService().loadToRead(tripId); + } else { - // update mode + // edit mode if (log.isInfoEnabled()) { - log.info(prefix + "using existing trip " + tripId); + log.info(prefix + "edit existing trip " + tripId); } formDto = getTripSeineService().loadToEdit(tripId); } - getDataSource().loadReferenceSets(formDto); - + setContentMode(mode); getModel().setFormDto(formDto); TripSeineDtos.copyTripSeineDto(formDto.getForm(), bean); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIHandler.java index 2ef95d4..c582143 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIHandler.java @@ -42,6 +42,7 @@ import fr.ird.observe.ui.DecoratorService; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.ContentUIHandler; +import fr.ird.observe.ui.content.ObserveContentUI; import fr.ird.observe.ui.tree.ObserveTreeHelper; import fr.ird.observe.ui.usage.UsagesUI; import fr.ird.observe.ui.util.SpringUtilities; @@ -49,6 +50,7 @@ import fr.ird.observe.validation.ValidationContext; import jaxx.runtime.JAXXContext; import jaxx.runtime.swing.CardLayout2Ext; import jaxx.runtime.swing.ErrorDialogUI; +import jaxx.runtime.swing.editor.bean.BeanComboBox; import jaxx.runtime.swing.editor.bean.BeanListHeader; import jaxx.runtime.validator.swing.SwingValidatorUtil; import org.apache.commons.lang3.StringUtils; @@ -56,6 +58,9 @@ import org.apache.commons.lang3.time.FastDateFormat; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; +import org.nuiton.decorator.DecoratorUtil; +import org.nuiton.decorator.JXPathDecorator; +import org.nuiton.jaxx.widgets.select.FilterableDoubleList; import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderFactory; @@ -86,6 +91,8 @@ import java.beans.PropertyChangeListener; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.Collections; +import java.util.LinkedHashSet; import java.util.List; import java.util.Locale; import java.util.Map; @@ -465,7 +472,7 @@ public class ContentReferenceUIHandler<E extends ReferentialDto> extends Content ContentReferenceUIModel<E> model = getModel(); // Chargement des données - uiInitializer.referentialDataUpdated(); + updateReferenceSets(true); ContentReferenceUI<E> ui = getUi(); @@ -641,7 +648,7 @@ public class ContentReferenceUIHandler<E extends ReferentialDto> extends Content addInfoMessage(t("observe.message.referentiel.editable")); } - uiInitializer.referentialDataUpdated(); + updateReferenceSets(false); } @Override @@ -904,4 +911,84 @@ public class ContentReferenceUIHandler<E extends ReferentialDto> extends Content return ObserveSwingApplicationContext.get().newService(ReferentialService.class); } + @Override + protected <R extends IdDto> void updateData(BeanComboBox<ReferenceDto<R>> comboBox) { + + Class<R> dtoClass = getDtoClass(comboBox); + + Boolean noLoad = (Boolean) comboBox.getClientProperty(ObserveContentUI.CLIENT_PROPERTY_LIST_NO_LOAD); + + List<ReferenceDto<R>> data; + + if (noLoad != null && noLoad) { + + if (log.isInfoEnabled()) { + log.info("Skip loading of entity list [" + dtoClass.getName() + "] (listNoLoad property found)"); + } + data = Collections.emptyList(); + + } else { + + data = new ArrayList<>(); + + // get complete data list from service + ReferenceSetDto<R> referentialReferenceSet = getReferentialService().getReferentialReferenceSet((Class) dtoClass); + LinkedHashSet<ReferenceDto<R>> reference = referentialReferenceSet.getReference(); + + data.addAll(reference); + + } + + if (log.isInfoEnabled()) { + log.info("entity list [" + dtoClass.getName() + "] : " + data.size()); + } + + comboBox.setData(data); + } + + @Override + protected <R extends IdDto> void updateData(BeanListHeader<ReferenceDto<R>> list) { + + Class<R> dtoClass = getDtoClass(list); + + // Attention ici on charge les references avec aussi les données techniques + // On en a besoin pour l'écran justement des informations techniques d'une entité en cours d'édition + ReferenceSetDto<R> referentialReferenceSet = getReferentialService().getReferentialReferenceSetWithTechnicalInformations((Class) dtoClass); + + List<ReferenceDto<R>> data = new ArrayList<>(referentialReferenceSet.getReference()); + + Decorator<ReferenceDto<R>> decorator = getReferenceDecorator(dtoClass); + DecoratorUtil.sort((JXPathDecorator<ReferenceDto<R>>) decorator, data, 0); + + list.setData(data); + list.putClientProperty("data", data); + } + + @Override + protected <R extends IdDto> void updateData(FilterableDoubleList<ReferenceDto<R>> list) { + Class<R> dtoClass = getDtoClass(list); + List<ReferenceDto<R>> data; + + if (ReferentialDto.class.isAssignableFrom(dtoClass)) { + + ReferentialService service = getReferentialService(); + ReferenceSetDto<R> referentialReferenceSet = service.getReferentialReferenceSet((Class) dtoClass); + + data = new ArrayList<>(referentialReferenceSet.getReference()); + + } else { + + data = new ArrayList<>(); + + } + + // sort data from first decorator context + Decorator<ReferenceDto<R>> decorator = getReferenceDecorator(dtoClass); + DecoratorUtil.sort((JXPathDecorator<ReferenceDto<R>>) decorator, data, 0); + + list.setUniverse(data); + list.putClientProperty("data", data); + } + + } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ReferentialContentUIInitializer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ReferentialContentUIInitializer.java index 9e835ba..88f9116 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ReferentialContentUIInitializer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ReferentialContentUIInitializer.java @@ -22,27 +22,8 @@ package fr.ird.observe.ui.content.ref; * #L% */ -import fr.ird.observe.ObserveSwingApplicationContext; -import fr.ird.observe.services.dto.ReferenceDto; -import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.referential.ReferentialDto; -import fr.ird.observe.services.service.ReferentialService; import fr.ird.observe.ui.content.ContentUIInitializer; -import fr.ird.observe.ui.content.ObserveContentUI; -import jaxx.runtime.swing.editor.bean.BeanComboBox; -import jaxx.runtime.swing.editor.bean.BeanListHeader; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.decorator.Decorator; -import org.nuiton.decorator.DecoratorUtil; -import org.nuiton.decorator.JXPathDecorator; -import org.nuiton.jaxx.widgets.select.FilterableDoubleList; - -import javax.swing.JComponent; -import java.util.ArrayList; -import java.util.Collections; -import java.util.LinkedHashSet; -import java.util.List; /** * Created on 11/28/14. @@ -52,8 +33,8 @@ import java.util.List; */ public class ReferentialContentUIInitializer<E extends ReferentialDto, UI extends ContentReferenceUI<E>> extends ContentUIInitializer<E, UI> { - /** Logger. */ - private static final Log log = LogFactory.getLog(ReferentialContentUIInitializer.class); +// /** Logger. */ +// private static final Log log = LogFactory.getLog(ReferentialContentUIInitializer.class); public ReferentialContentUIInitializer(UI ui) { super(ui); @@ -69,95 +50,8 @@ public class ReferentialContentUIInitializer<E extends ReferentialDto, UI extend } - @Override - protected void updateData(BeanComboBox comboBox) { - - Class<? extends ReferentialDto> dtoClass = getDtoClass(comboBox); - - Boolean noLoad = (Boolean) comboBox.getClientProperty(ObserveContentUI.CLIENT_PROPERTY_LIST_NO_LOAD); - - List<ReferenceDto> data; - - if (noLoad != null && noLoad) { - - if (log.isInfoEnabled()) { - log.info("Skip loading of entity list [" + dtoClass.getName() + "] (listNoLoad property found)"); - } - data = Collections.emptyList(); - - } else { - - data = new ArrayList<>(); - - // get complete data list from service - ReferenceSetDto referentialReferenceSet = getReferentialService().getReferentialReferenceSet(dtoClass); - LinkedHashSet<ReferenceDto> reference = referentialReferenceSet.getReference(); - - data.addAll(reference); - - } - - if (log.isInfoEnabled()) { - log.info("entity list [" + dtoClass.getName() + "] : " + data.size()); - } - - comboBox.setData(data); - } - - @Override - protected void updateData(BeanListHeader list) { - - Class<? extends ReferentialDto> dtoClass = getDtoClass(list); - - // Attention ici on charge les references avec aussi les données techniques - // On en a besoin pour l'écran justement des informations techniques d'une entité en cours d'édition - ReferenceSetDto referentialReferenceSet = getReferentialService().getReferentialReferenceSetWithTechnicalInformations(dtoClass); - - List<ReferenceDto> data = new ArrayList<>(referentialReferenceSet.getReference()); - - Decorator<ReferenceDto> decorator = getDecorator(dtoClass); - DecoratorUtil.sort((JXPathDecorator<ReferenceDto>) decorator, data, 0); - - list.setData(data); - list.putClientProperty("data", data); - } - - @Override - protected void updateData(FilterableDoubleList list) { - Class<? extends ReferentialDto> dtoClass = getDtoClass(list); - List<ReferenceDto> data; - - if (ReferentialDto.class.isAssignableFrom(dtoClass)) { - - ReferentialService service = getReferentialService(); - ReferenceSetDto referentialReferenceSet = service.getReferentialReferenceSet(dtoClass); - - data = new ArrayList<>(referentialReferenceSet.getReference()); - - } else { - - data = new ArrayList<>(); - - } - - // sort data from first decorator context - Decorator<ReferenceDto> decorator = getDecorator(dtoClass); - DecoratorUtil.sort((JXPathDecorator<ReferenceDto>) decorator, data, 0); - - list.setUniverse(data); - list.putClientProperty("data", data); - } - - protected ReferentialService getReferentialService() { - return ObserveSwingApplicationContext.get().newService(ReferentialService.class); - } - - protected Decorator<ReferenceDto> getDecorator(Class<? extends ReferentialDto> dtoClass) { - return ObserveSwingApplicationContext.get().getDecorator(ReferenceDto.class, dtoClass.getSimpleName()); - } - - protected Class<? extends ReferentialDto> getDtoClass(JComponent list) { - return (Class<? extends ReferentialDto>) list.getClientProperty(ObserveContentUI.CLIENT_PROPERTY_ENTITY_CLASS); - } +// protected Decorator<ReferenceDto> getDecorator(Class<? extends ReferentialDto> dtoClass) { +// return ObserveSwingApplicationContext.get().getDecorator(ReferenceDto.class, dtoClass.getSimpleName()); +// } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIHandler.java index 9598fd3..026074e 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIHandler.java @@ -21,29 +21,20 @@ */ package fr.ird.observe.ui.content.table; -import com.google.common.collect.Collections2; import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.db.ObserveSwingDataSource; +import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.services.dto.IdDto; -import fr.ird.observe.services.dto.ReferenceDto; -import fr.ird.observe.services.dto.ReferenceDtos; -import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; -import fr.ird.observe.services.dto.referential.SpeciesDto; -import fr.ird.observe.services.dto.referential.SpeciesListDto; -import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.ContentUIHandler; import fr.ird.observe.ui.content.ContentUIModel; -import fr.ird.observe.ui.content.ObserveContentUI; import fr.ird.observe.ui.tree.ObserveNode; import jaxx.runtime.swing.ErrorDialogUI; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.validator.NuitonValidatorScope; -import javax.swing.JComponent; import javax.swing.ListSelectionModel; import javax.swing.SwingUtilities; import javax.swing.event.ListSelectionEvent; @@ -51,11 +42,7 @@ import javax.swing.table.DefaultTableCellRenderer; import java.awt.Rectangle; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; -import java.util.Collections; -import java.util.HashSet; -import java.util.LinkedHashSet; import java.util.List; -import java.util.Set; import static org.nuiton.i18n.I18n.n; import static org.nuiton.i18n.I18n.t; @@ -261,43 +248,12 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto> ex getModel().addPropertyChangeListener(ContentUIModel.PROPERTY_FORM_DTO, new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { - uiInitializer.referentialDataUpdated(); + updateReferenceSets(false); } }); } - //FIXME Ne plus utiliser cela mais directement le labelSet sur la propriété Species qui contient la liste des espèces - public Set<String> loadSpeciesList(String speciesListId, String errorMessage) { - - Set<String> speciesIds; - - try { - ReferenceDto<SpeciesListDto> speciesList = getModel().getFormDto().getReferenceById(SpeciesListDto.class, speciesListId); - LinkedHashSet<ReferentialReferenceDto<SpeciesDto>> species = - (LinkedHashSet<ReferentialReferenceDto<SpeciesDto>>) speciesList.getPropertyValue(SpeciesListDto.PROPERTY_SPECIES); - speciesIds = new HashSet<>(Collections2.transform(species, - ReferenceDtos.newReferenceDtoIdFunction())); - - } catch (Exception e) { - UIHelper.displayWarning(t("observe.title.speciesList.not.found"), t(errorMessage)); - speciesIds = Collections.emptySet(); - - } - return speciesIds; - - } - - //FIXME Ne plus utiliser cela mais directement le labelSet sur la propriété Species qui contient la liste des espèces - protected void prepareSpeciesList(String speciesListId, JComponent speciesComponent, String errorMessage) { - - Set<String> speciesIds = loadSpeciesList(speciesListId, errorMessage); - - speciesComponent.putClientProperty( - ObserveContentUI.CLIENT_PROPERTY_LIST_PREDICATE, - ReferenceDtos.newContainsIdPredicate(speciesIds)); - } - @Override public void openUI() throws Exception { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java index 0169cd4..a4f40db 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java @@ -90,6 +90,7 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat // Compute valid state of tab from the error table protected final TableModelListener computeTabValidStateListener = new TableModelListener() { + @Override public void tableChanged(TableModelEvent e) { @@ -100,6 +101,7 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat }; private final PropertyChangeListener catchFateChanged = new PropertyChangeListener() { + @Override public void propertyChange(PropertyChangeEvent evt) { onCatchFateChanged((ReferenceDto<CatchFateLonglineDto>) evt.getNewValue(), (CatchLonglineDto) evt.getSource()); @@ -107,6 +109,7 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat }; private final PropertyChangeListener branchlineChanged = new PropertyChangeListener() { + @Override public void propertyChange(PropertyChangeEvent evt) { onBranchlineChanged((ReferenceDto<BranchlineDto>) evt.getNewValue()); @@ -114,6 +117,7 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat }; private final PropertyChangeListener depredatedChanged = new PropertyChangeListener() { + @Override public void propertyChange(PropertyChangeEvent evt) { onDepretadedChanged((Boolean) evt.getNewValue(), (CatchLonglineDto) evt.getSource()); @@ -369,13 +373,13 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, ReferenceDto.class, SizeMeasureTypeDto.class.getSimpleName())); UIHelper.setTableColumnRenderer(table, 1, UIHelper.newEmptyNumberTableCellRenderer(renderer)); - Decorator<ReferenceDto> decorator = ObserveSwingApplicationContext.get().getDecorator(ReferenceDto.class, SizeMeasureTypeDto.class.getSimpleName()); + Decorator<ReferenceDto<SizeMeasureTypeDto>> decorator = getReferenceDecorator(SizeMeasureTypeDto.class); ReferentialService referentialService = ObserveSwingApplicationContext.get().newService(ReferentialService.class); ReferenceSetDto<SizeMeasureTypeDto> sizeMeasureTypeDtoRefSet = referentialService.getReferentialReferenceSet(SizeMeasureTypeDto.class); - ArrayList<ReferenceDto> sizeMeasureTypes = Lists.newArrayList(sizeMeasureTypeDtoRefSet.getReference()); + ArrayList<ReferenceDto<SizeMeasureTypeDto>> sizeMeasureTypes = Lists.newArrayList(sizeMeasureTypeDtoRefSet.getReference()); UIHelper.setTableColumnEditor(table, 0, ContentUIInitializer.newDataColumnEditor(sizeMeasureTypes, decorator)); UIHelper.setTableColumnEditor(table, 1, ContentUIInitializer.newFloatColumnEditor(table)); @@ -399,13 +403,13 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, ReferenceDto.class, WeightMeasureTypeDto.class.getSimpleName())); UIHelper.setTableColumnRenderer(table, 1, UIHelper.newEmptyNumberTableCellRenderer(renderer)); - Decorator<ReferenceDto> decorator = ObserveSwingApplicationContext.get().getDecorator(ReferenceDto.class, WeightMeasureTypeDto.class.getSimpleName()); + Decorator<ReferenceDto<WeightMeasureTypeDto>> decorator = getReferenceDecorator(WeightMeasureTypeDto.class); ReferentialService referentialService = ObserveSwingApplicationContext.get().newService(ReferentialService.class); ReferenceSetDto<WeightMeasureTypeDto> weightMeasureTypeDtoRefSet = referentialService.getReferentialReferenceSet(WeightMeasureTypeDto.class); - ArrayList<ReferenceDto> weightMeasureTypes = Lists.newArrayList(weightMeasureTypeDtoRefSet.getReference()); + ArrayList<ReferenceDto<WeightMeasureTypeDto>> weightMeasureTypes = Lists.newArrayList(weightMeasureTypeDtoRefSet.getReference()); UIHelper.setTableColumnEditor(table, 0, ContentUIInitializer.newDataColumnEditor(weightMeasureTypes, decorator)); UIHelper.setTableColumnEditor(table, 1, ContentUIInitializer.newFloatColumnEditor(table)); @@ -417,6 +421,7 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat } getTableModel().addPropertyChangeListener(ContentTableModel.CREATE_PROPERTY, new PropertyChangeListener() { + @Override public void propertyChange(PropertyChangeEvent evt) { Boolean oldValue = (Boolean) evt.getOldValue(); @@ -438,6 +443,7 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat uiInitializer.initUI(); getModel().addPropertyChangeListener(CatchLonglineUIModel.PROPERTY_SHOW_INDIVIDUAL_TABS, new PropertyChangeListener() { + @Override public void propertyChange(PropertyChangeEvent evt) { Boolean newValue = (Boolean) evt.getNewValue(); @@ -446,6 +452,7 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat }); getModel().addPropertyChangeListener(CatchLonglineUIModel.PROPERTY_EDITABLE, new PropertyChangeListener() { + @Override public void propertyChange(PropertyChangeEvent evt) { Boolean newValue = (Boolean) evt.getNewValue(); @@ -454,15 +461,16 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat }); getModel().addPropertyChangeListener(ContentUIModel.PROPERTY_FORM_DTO, new PropertyChangeListener() { + @Override public void propertyChange(PropertyChangeEvent evt) { - uiInitializer.referentialDataUpdated(); + updateReferenceSets(false); } }); setTableModelEditable(getModel().isEditable()); - LonglinePositionHelper<CatchLonglineDto> positionHelper = new LonglinePositionHelper<CatchLonglineDto>( + LonglinePositionHelper<CatchLonglineDto> positionHelper = new LonglinePositionHelper<>( getUi().getSection(), getUi().getBasket(), getUi().getBranchline(), @@ -509,9 +517,9 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat LonglinePositionHelper<CatchLonglineDto> positionHelper = POSITION_HELPER_ENTRY.getContextValue(getUi()); positionHelper.initSections(formDto.getReferenceSetDto(SectionDto.class, CatchLonglineDto.PROPERTY_SECTION), - formDto.getReferenceSetDto(BasketDto.class, CatchLonglineDto.PROPERTY_BASKET), - formDto.getReferenceSetDto(BranchlineDto.class, CatchLonglineDto.PROPERTY_BRANCHLINE), - formDto.getForm().getCatchLongline()); + formDto.getReferenceSetDto(BasketDto.class, CatchLonglineDto.PROPERTY_BASKET), + formDto.getReferenceSetDto(BranchlineDto.class, CatchLonglineDto.PROPERTY_BRANCHLINE), + formDto.getForm().getCatchLongline()); SetLonglineCatchDtos.copySetLonglineCatchDto(formDto.getForm(), getBean()); @@ -791,7 +799,7 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat protected void computeTabValidState(SwingValidatorMessageTableModel errorTableModel) { - Set<String> errorProperties = new HashSet<String>(); + Set<String> errorProperties = new HashSet<>(); int rowCount = errorTableModel.getRowCount(); for (int i = 0; i < rowCount; i++) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java index 41d6668..9445037 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java @@ -94,6 +94,7 @@ public class GearUseFeaturesLonglineUIHandler extends ContentTableUIHandler<Trip // Compute valid state of tab from the error table protected final TableModelListener computeTabValidStateListener = new TableModelListener() { + @Override public void tableChanged(TableModelEvent e) { @@ -222,7 +223,7 @@ public class GearUseFeaturesLonglineUIHandler extends ContentTableUIHandler<Trip n("observe.gearUseFeaturesLongline.table.comment"), n("observe.gearUseFeaturesLongline.table.comment.tip")); - UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, ReferenceDto.class, GearDto.class.getSimpleName())); + UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, ReferenceDto.class, GearDto.class.getSimpleName())); UIHelper.setTableColumnRenderer(table, 1, UIHelper.newEmptyNumberTableCellRenderer(renderer)); UIHelper.setTableColumnRenderer(table, 2, UIHelper.newBooleanTableCellRenderer(renderer)); UIHelper.setTableColumnRenderer(table, 3, UIHelper.newStringTableCellRenderer(renderer, 10, true)); @@ -243,13 +244,13 @@ public class GearUseFeaturesLonglineUIHandler extends ContentTableUIHandler<Trip table.getTableHeader().setReorderingAllowed(false); - Decorator<ReferenceDto> decorator = ObserveSwingApplicationContext.get().getDecorator(ReferenceDto.class, GearCaracteristicDto.class.getSimpleName()); + Decorator<ReferenceDto<GearCaracteristicDto>> decorator = getReferenceDecorator(GearCaracteristicDto.class); ReferentialService referentialService = ObserveSwingApplicationContext.get().newService(ReferentialService.class); ReferenceSetDto<GearCaracteristicDto> gearCaracteristicDtoRefSet = referentialService.getReferentialReferenceSet(GearCaracteristicDto.class); - ArrayList<ReferenceDto> gearCaracteristics = Lists.newArrayList(gearCaracteristicDtoRefSet.getReference()); + ArrayList<ReferenceDto<GearCaracteristicDto>> gearCaracteristics = Lists.newArrayList(gearCaracteristicDtoRefSet.getReference()); UIHelper.setTableColumnEditor(table, 0, ContentUIInitializer.newDataColumnEditor(gearCaracteristics, decorator)); UIHelper.setTableColumnEditor(table, 1, new GearUseFeatureMeasurementCellEditor(0)); @@ -287,6 +288,7 @@ public class GearUseFeaturesLonglineUIHandler extends ContentTableUIHandler<Trip super.initUI(); getModel().addPropertyChangeListener(GearUseFeaturesLonglineUIModel.PROPERTY_EDITABLE, new PropertyChangeListener() { + @Override public void propertyChange(PropertyChangeEvent evt) { Boolean newValue = (Boolean) evt.getNewValue(); @@ -349,7 +351,7 @@ public class GearUseFeaturesLonglineUIHandler extends ContentTableUIHandler<Trip if (!selectionEmpty) { - GearUseFeaturesMeasurementLonglineDto data = tableModel.getSelectedRow(); + GearUseFeaturesMeasurementLonglineDto data = tableModel.getSelectedRow(); if (log.isInfoEnabled()) { log.info("Delete: " + data); @@ -443,7 +445,7 @@ public class GearUseFeaturesLonglineUIHandler extends ContentTableUIHandler<Trip protected void computeTabValidState(SwingValidatorMessageTableModel errorTableModel) { - Set<String> errorProperties = new HashSet<String>(); + Set<String> errorProperties = new HashSet<>(); int rowCount = errorTableModel.getRowCount(); for (int i = 0; i < rowCount; i++) { @@ -471,14 +473,15 @@ public class GearUseFeaturesLonglineUIHandler extends ContentTableUIHandler<Trip List<GearUseFeaturesMeasurementLonglineDto> measurements = Lists.newArrayList( Iterables.transform(gearDto.getGearCaracteristic(), - new Function<ReferentialReferenceDto<GearCaracteristicDto>, GearUseFeaturesMeasurementLonglineDto>() { - @Override - public GearUseFeaturesMeasurementLonglineDto apply(ReferentialReferenceDto<GearCaracteristicDto> input) { - GearUseFeaturesMeasurementLonglineDto measurementLonglineDto = new GearUseFeaturesMeasurementLonglineDto(); - measurementLonglineDto.setGearCaracteristic(input); - return measurementLonglineDto; - } - })); + new Function<ReferentialReferenceDto<GearCaracteristicDto>, GearUseFeaturesMeasurementLonglineDto>() { + + @Override + public GearUseFeaturesMeasurementLonglineDto apply(ReferentialReferenceDto<GearCaracteristicDto> input) { + GearUseFeaturesMeasurementLonglineDto measurementLonglineDto = new GearUseFeaturesMeasurementLonglineDto(); + measurementLonglineDto.setGearCaracteristic(input); + return measurementLonglineDto; + } + })); return measurements; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java index 14f209a..c76fbe8 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java @@ -239,13 +239,13 @@ public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSei table.getTableHeader().setReorderingAllowed(false); - Decorator<ReferenceDto> decorator = ObserveSwingApplicationContext.get().getDecorator(ReferenceDto.class, GearCaracteristicDto.class.getSimpleName()); + Decorator<ReferenceDto<GearCaracteristicDto>> decorator = getReferenceDecorator(GearCaracteristicDto.class); ReferentialService referentialService = ObserveSwingApplicationContext.get().newService(ReferentialService.class); ReferenceSetDto<GearCaracteristicDto> gearCaracteristicDtoRefSet = referentialService.getReferentialReferenceSet(GearCaracteristicDto.class); - ArrayList<ReferenceDto> gearCaracteristics = Lists.newArrayList(gearCaracteristicDtoRefSet.getReference()); + ArrayList<ReferenceDto<GearCaracteristicDto>> gearCaracteristics = Lists.newArrayList(gearCaracteristicDtoRefSet.getReference()); UIHelper.setTableColumnEditor(table, 0, ContentUIInitializer.newDataColumnEditor(gearCaracteristics, decorator)); UIHelper.setTableColumnEditor(table, 1, new GearUseFeatureMeasurementCellEditor(0)); diff --git a/observe-application-swing/src/main/resources/observe-log4j.properties b/observe-application-swing/src/main/resources/observe-log4j.properties index 027fd89..61ae1eb 100644 --- a/observe-application-swing/src/main/resources/observe-log4j.properties +++ b/observe-application-swing/src/main/resources/observe-log4j.properties @@ -45,7 +45,7 @@ log4j.logger.fr.ird.observe.entities.Entities=DEBUG log4j.logger.fr.ird.observe.validation.field=WARN log4j.logger.fr.ird.observe.ui.tree=INFO -log4j.logger.fr.ird.observe.decorator.ObserveDecorator=ERROR +log4j.logger.fr.ird.observe.ui.util.decorator=ERROR log4j.logger.org.nuiton.topia.migration=INFO log4j.logger.org.nuiton.config=INFO -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit 35a18ffa0ed0ce394b29960134c578c4784c9455 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 19 20:08:56 2015 +0100 Meilleure utilisation des ReferenceDto --- .../observe/services/service/ReferentialServiceTopia.java | 14 ++++++++------ .../service/seine/NonTargetSampleServiceTopia.java | 2 +- .../services/service/seine/TargetSampleServiceTopia.java | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java index c4e9908..3d7d59a 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java @@ -195,17 +195,19 @@ public class ReferentialServiceTopia extends ObserveServiceTopia implements Refe Iterable<E> entities = loadEntities(entityType); - LinkedHashSet<ReferentialReferenceDto<D>> labels = new LinkedHashSet<>(); + LinkedHashSet<ReferenceDto<D>> labels = new LinkedHashSet<>(); for (E entity : entities) { - ReferentialReferenceDto<D> dto = (ReferentialReferenceDto<D>) entityToReferenceDto(dtoType, entity); + ReferenceDto<D> dto = entityToReferenceDto(dtoType, entity); if (loadTechnicalInformations) { - dto.setVersion(entity.getTopiaVersion()); - dto.setCreateDate(entity.getTopiaCreateDate()); - dto.setLastUpdate(entity.getLastUpdate()); - dto.setEnabled(fr.ird.observe.entities.constants.ReferenceStatus.enabled == entity.getStatus()); + ReferentialReferenceDto<D> referentialReferenceDto = (ReferentialReferenceDto<D>) dto; + referentialReferenceDto.setVersion(entity.getTopiaVersion()); + referentialReferenceDto.setCreateDate(entity.getTopiaCreateDate()); + referentialReferenceDto.setLastUpdate(entity.getLastUpdate()); + referentialReferenceDto.setEnabled(fr.ird.observe.entities.constants.ReferenceStatus.enabled == entity.getStatus()); + } labels.add(dto); diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleServiceTopia.java index fb02144..76ff6d3 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleServiceTopia.java @@ -117,7 +117,7 @@ public class NonTargetSampleServiceTopia extends ObserveServiceTopia implements } - LinkedHashSet<ReferenceDto> speciesRefs = Sets.newLinkedHashSet(); + LinkedHashSet<ReferenceDto<SpeciesDto>> speciesRefs = Sets.newLinkedHashSet(); for (Species species : speciesSet ) { speciesRefs.add(entityToReferenceDto(SpeciesDto.class, species)); diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TargetSampleServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TargetSampleServiceTopia.java index 727d4e9..d651f02 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TargetSampleServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TargetSampleServiceTopia.java @@ -120,7 +120,7 @@ public class TargetSampleServiceTopia extends ObserveServiceTopia implements Tar } - LinkedHashSet<ReferenceDto> speciesRefs = Sets.newLinkedHashSet(); + LinkedHashSet<ReferenceDto<SpeciesDto>> speciesRefs = Sets.newLinkedHashSet(); for (Species species : speciesSet ) { speciesRefs.add(entityToReferenceDto(SpeciesDto.class, species)); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit 9ede930d17b76191a7a98d7aa2e67c0aa9c8cd17 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 20 08:43:18 2015 +0100 Fix generic --- .../src/main/java/fr/ird/observe/services/dto/ReferenceSetDto.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDto.java index ad27724..7a03b5b 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDto.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDto.java @@ -62,8 +62,8 @@ public class ReferenceSetDto<R extends IdDto> extends AbstractReferenceSetDto { .toString(); } - public ReferenceDto getReference(int index) { - ReferenceDto o = getChild(reference, index); + public ReferenceDto<R> getReference(int index) { + ReferenceDto<R> o = getChild(reference, index); return o; } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit c90ed43ee00506736869739efda051562ec897ac Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 20 08:43:24 2015 +0100 Réajout de méthodes enlevées trop rapidemment --- .../java/fr/ird/observe/services/dto/FormDto.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDto.java index 219e9b3..0ff891a 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDto.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDto.java @@ -26,6 +26,8 @@ import com.google.common.base.MoreObjects; import com.google.common.base.Optional; import com.google.common.base.Predicate; import com.google.common.collect.Iterables; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; public class FormDto<R extends IdDto> extends AbstractFormDto { @@ -135,6 +137,23 @@ public class FormDto<R extends IdDto> extends AbstractFormDto { } + //FIXME Supprimer cette méthode et toujours utiliser celle dessous car un ReferenceSetDto porte aussi sur le nom + //FIXME éviter d'avoir des API non déterministes + @Deprecated + public <D extends ReferentialDto> ReferentialReferenceDto<D> getReferentialReferenceById(Class<D> type, String id) { + + return getReferentialReferenceById(type, null, id); + + } + + public <D extends ReferentialDto> ReferentialReferenceDto<D> getReferentialReferenceById(Class<D> type, String name, String id) { + + ReferenceSetDto<D> referenceSetDto = getReferenceSetDto(type, name); + ReferentialReferenceDto<D> referenceDto = (ReferentialReferenceDto<D>) referenceSetDto.getById(id); + return referenceDto; + + } + @Override public String toString() { return MoreObjects.toStringHelper(this) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit 7fd9a31cc02b67052a9f0df79d0bb08b1c3240b1 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 20 08:43:30 2015 +0100 Ajout d'une méthode utile pour récupérer tous les types de lables d'un formulaire --- .../fr/ird/observe/services/dto/ReferenceSetDtos.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDtos.java index eb12ec1..5667457 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDtos.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDtos.java @@ -22,11 +22,15 @@ package fr.ird.observe.services.dto; * #L% */ +import com.google.common.base.Function; import com.google.common.base.Predicate; +import com.google.common.collect.Iterables; +import com.google.common.collect.Sets; import java.util.Date; import java.util.LinkedHashSet; import java.util.Objects; +import java.util.Set; public class ReferenceSetDtos extends AbstractReferenceSetDtos { @@ -65,5 +69,18 @@ public class ReferenceSetDtos extends AbstractReferenceSetDtos { } + public static Set<Class<?>> getTypes(Iterable<ReferenceSetDto> referenceSets) { + + Set<Class<?>> types = Sets.newLinkedHashSet(Iterables.transform(referenceSets, new Function<ReferenceSetDto, Class<?>>() { + + @Override + public Class<?> apply(ReferenceSetDto input) { + return input.getType(); + } + })); + return types; + + } + } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit 657b8b30e678456d1c47eb845569d1762d9b0288 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 20 08:44:21 2015 +0100 Déplacement du cache de rérentiels dans le module de l'API de service et intégration dans les tests --- .../fr/ird/observe/db/ObserveSwingDataSource.java | 62 +--------------------- .../services/service}/ObserveReferentialCache.java | 58 +++++++++++++++++++- .../ird/observe/services/DataSourceResource.java | 20 +++++-- .../services/service/AbstractServiceTopiaTest.java | 4 +- 4 files changed, 79 insertions(+), 65 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveSwingDataSource.java b/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveSwingDataSource.java index 39401f2..6d1312d 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveSwingDataSource.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveSwingDataSource.java @@ -2,7 +2,6 @@ package fr.ird.observe.db; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.db.event.ObserveSwingDataSourceEvent; @@ -23,20 +22,12 @@ import fr.ird.observe.services.dto.DataSourceCreateWithNoReferentialImportExcept import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.IncompatibleDataSourceCreateConfigurationException; import fr.ird.observe.services.dto.ObserveDbUserDto; -import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.constants.ReferentialLocale; -import fr.ird.observe.services.dto.reference.ObserveReference; -import fr.ird.observe.services.dto.reference.ObserveReferenceSet; -import fr.ird.observe.services.dto.reference.ObserveReferenceSetRequest; -import fr.ird.observe.services.dto.reference.ObserveReferenceSetResult; -import fr.ird.observe.services.dto.reference.ObserveReferentialReference; -import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetRequestDefinition; -import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetRequestDefinitions; -import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetRequestKeyDefinition; import fr.ird.observe.services.service.BabModelVersionException; import fr.ird.observe.services.service.DataSourceService; import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException; import fr.ird.observe.services.service.DatabaseNotFoundException; +import fr.ird.observe.services.service.ObserveReferentialCache; import fr.ird.observe.services.service.ReferenceSetService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -47,8 +38,6 @@ import javax.swing.JOptionPane; import javax.swing.event.EventListenerList; import java.io.Closeable; import java.io.File; -import java.util.Date; -import java.util.LinkedHashSet; import java.util.Locale; import java.util.Set; @@ -276,54 +265,7 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements checkIsOpen(); ReferenceSetService referenceSetService = newService(ReferenceSetService.class); - - LinkedHashSet<ReferenceSetDto> values = new LinkedHashSet<>(); - - String referentialRequestName = formDto.getReferentialReferenceSetRequestName(); - if (referentialRequestName != null) { - - if (log.isInfoEnabled()) { - log.info("Loading referantialReferenceSetRequest: " + referentialRequestName); - } - ImmutableMap<String, Date> lastUpdateDates = referentialCache.getLastUpdateDates(referentialRequestName); - - ObserveReferenceSetRequest request = new ObserveReferenceSetRequest(); - request.setRequestName(referentialRequestName); - request.setLastUpdateDates(lastUpdateDates); - - ObserveReferenceSetResult<ObserveReferentialReference> referenceSetResult = referenceSetService.loadReferentialReferenceSets(request); - - ImmutableMap<String, ReferenceSetDto<?>> referenceSets = referentialCache.loadReferenceSets(referenceSetResult); - values.addAll(referenceSets.values()); - } - - String dataRequestName = formDto.getDataReferenceSetRequestName(); - if (dataRequestName != null) { - - if (log.isInfoEnabled()) { - log.info("Loading dataReferenceSetRequest: " + dataRequestName); - } - ObserveReferenceSetRequest request = new ObserveReferenceSetRequest(); - request.setRequestName(dataRequestName); - request.setLastUpdateDates(ImmutableMap.<String, Date>of()); - - ObserveReferenceSetResult<ObserveReference> referenceSetResult = referenceSetService.loadDataReferenceSets(request); - ImmutableMap<String, ObserveReferenceSet<?, ObserveReference>> referenceSets = referenceSetResult.getReferenceSets(); - - ObserveReferenceSetRequestDefinition requestDefinition = ObserveReferenceSetRequestDefinitions.get(dataRequestName); - for (ObserveReferenceSetRequestKeyDefinition requestKeyDefinition : requestDefinition.getKeys()) { - - String requestKeyDefinitionName = requestKeyDefinition.getName(); - ObserveReferenceSet<?, ObserveReference> referenceSet = referenceSets.get(requestKeyDefinitionName); - - ReferenceSetDto<?> referenceSetDto = referenceSet.toReferenceSetDto(requestKeyDefinitionName); - values.add(referenceSetDto); - - } - - } - - formDto.setLabels(values); + referentialCache.loadReferenceSets(referenceSetService, formDto); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveReferentialCache.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ObserveReferentialCache.java similarity index 62% rename from observe-application-swing/src/main/java/fr/ird/observe/db/ObserveReferentialCache.java rename to observe-services-api/src/main/java/fr/ird/observe/services/service/ObserveReferentialCache.java index 76abd27..e6facfd 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveReferentialCache.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/ObserveReferentialCache.java @@ -1,8 +1,11 @@ -package fr.ird.observe.db; +package fr.ird.observe.services.service; import com.google.common.collect.ImmutableMap; +import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.ReferenceSetDto; +import fr.ird.observe.services.dto.reference.ObserveReference; import fr.ird.observe.services.dto.reference.ObserveReferenceSet; +import fr.ird.observe.services.dto.reference.ObserveReferenceSetRequest; import fr.ird.observe.services.dto.reference.ObserveReferenceSetResult; import fr.ird.observe.services.dto.reference.ObserveReferentialReference; import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetRequestDefinition; @@ -15,6 +18,7 @@ import java.io.Closeable; import java.io.Serializable; import java.util.Date; import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.Map; /** @@ -35,6 +39,58 @@ public class ObserveReferentialCache implements Closeable, Serializable { this.cache = new LinkedHashMap<>(); } + public void loadReferenceSets(ReferenceSetService referenceSetService, FormDto<?> formDto) { + + LinkedHashSet<ReferenceSetDto> values = new LinkedHashSet<>(); + + String referentialRequestName = formDto.getReferentialReferenceSetRequestName(); + if (referentialRequestName != null) { + + if (log.isInfoEnabled()) { + log.info("Loading referantialReferenceSetRequest: " + referentialRequestName); + } + ImmutableMap<String, Date> lastUpdateDates = getLastUpdateDates(referentialRequestName); + + ObserveReferenceSetRequest request = new ObserveReferenceSetRequest(); + request.setRequestName(referentialRequestName); + request.setLastUpdateDates(lastUpdateDates); + + ObserveReferenceSetResult<ObserveReferentialReference> referenceSetResult = referenceSetService.loadReferentialReferenceSets(request); + + ImmutableMap<String, ReferenceSetDto<?>> referenceSets = loadReferenceSets(referenceSetResult); + values.addAll(referenceSets.values()); + } + + String dataRequestName = formDto.getDataReferenceSetRequestName(); + if (dataRequestName != null) { + + if (log.isInfoEnabled()) { + log.info("Loading dataReferenceSetRequest: " + dataRequestName); + } + ObserveReferenceSetRequest request = new ObserveReferenceSetRequest(); + request.setRequestName(dataRequestName); + request.setLastUpdateDates(ImmutableMap.<String, Date>of()); + + ObserveReferenceSetResult<ObserveReference> referenceSetResult = referenceSetService.loadDataReferenceSets(request); + ImmutableMap<String, ObserveReferenceSet<?, ObserveReference>> referenceSets = referenceSetResult.getReferenceSets(); + + ObserveReferenceSetRequestDefinition requestDefinition = ObserveReferenceSetRequestDefinitions.get(dataRequestName); + for (ObserveReferenceSetRequestKeyDefinition requestKeyDefinition : requestDefinition.getKeys()) { + + String requestKeyDefinitionName = requestKeyDefinition.getName(); + ObserveReferenceSet<?, ObserveReference> referenceSet = referenceSets.get(requestKeyDefinitionName); + + ReferenceSetDto<?> referenceSetDto = referenceSet.toReferenceSetDto(requestKeyDefinitionName); + values.add(referenceSetDto); + + } + + } + + formDto.setLabels(values); + + } + /** * Pour récupérer les dates de dernières mises à jour des ensembles de références utiliées par la requète. * diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/DataSourceResource.java b/observe-services-topia/src/test/java/fr/ird/observe/services/DataSourceResource.java index 4f57135..e458270 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/DataSourceResource.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/DataSourceResource.java @@ -33,6 +33,7 @@ import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; import fr.ird.observe.services.dto.DataSourceCreateWithNoReferentialImportException; import fr.ird.observe.services.dto.IncompatibleDataSourceCreateConfigurationException; import fr.ird.observe.services.service.DataSourceService; +import fr.ird.observe.services.service.ObserveReferentialCache; import fr.ird.observe.test.TestHelper; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -71,6 +72,8 @@ public class DataSourceResource implements TestRule { protected String scriptName; + protected ObserveReferentialCache referentialCache; + public DataSourceResource(ApplicationContextResource applicationContextResource, Set<String> testNamesChangeDataBase, String scriptName) { this.applicationContextResource = applicationContextResource; this.testNamesChangeDataBase = testNamesChangeDataBase; @@ -99,6 +102,13 @@ public class DataSourceResource implements TestRule { } } + public ObserveReferentialCache getReferentialCache() { + if (referentialCache == null) { + referentialCache = new ObserveReferentialCache(); + } + return referentialCache; + } + public void createDataSourceFromScript(String scriptPath) throws IOException, IncompatibleDataSourceCreateConfigurationException, DataSourceCreateWithNoReferentialImportException { byte[] databaseToImportContent = getDatabaseToImportContent(scriptPath); @@ -194,15 +204,15 @@ public class DataSourceResource implements TestRule { File commonsDir = TestHelper.getCommonsDir(); - File dataBaseCommonsRefDirectory = new File (commonsDir, scriptName); + File dataBaseCommonsRefDirectory = new File(commonsDir, scriptName); applicationContextResource.setDataBaseCommonRefDirectory(dataBaseCommonsRefDirectory); //if (testNamesChangeDataBase.contains(methodName)) { - File dataBaseDirectory = new File (testDirectory, scriptName); + File dataBaseDirectory = new File(testDirectory, scriptName); - applicationContextResource.setDataBaseDirectory(dataBaseDirectory); + applicationContextResource.setDataBaseDirectory(dataBaseDirectory); // } else { // @@ -223,6 +233,10 @@ public class DataSourceResource implements TestRule { log.debug("Ends " + testClass.getName() + "::" + methodName); } + if (referentialCache != null) { + referentialCache.close(); + } + applicationContextResource.closeServiceFactory(); applicationContextResource.setTemporaryDirectoryRoot(null); diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/AbstractServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/AbstractServiceTopiaTest.java index b6fe60f..56b9d85 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/AbstractServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/AbstractServiceTopiaTest.java @@ -152,7 +152,9 @@ public abstract class AbstractServiceTopiaTest { return lastUpdateType.getLastUpdate(); - } + public ObserveReferentialCache getReferentialCache() { + return dataSourceResource.getReferentialCache(); + } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit d563b907436ea780b3785af40932990d71aedbb3 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 20 08:44:35 2015 +0100 Suppression classe non utilisée --- .../ird/observe/db/ObserveReferentialCacheKey.java | 33 ---------------------- 1 file changed, 33 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveReferentialCacheKey.java b/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveReferentialCacheKey.java deleted file mode 100644 index 3eda009..0000000 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveReferentialCacheKey.java +++ /dev/null @@ -1,33 +0,0 @@ -package fr.ird.observe.db; - -import com.google.common.base.Optional; -import fr.ird.observe.services.dto.referential.ReferentialDto; - -/** - * Created on 10/11/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ObserveReferentialCacheKey<D extends ReferentialDto> { - - private final Class<D> type; - - private final Optional<String> context; - - public ObserveReferentialCacheKey(Class<D> type, Optional<String> context) { - this.type = type; - this.context = context; - } - - public Class<D> getType() { - return type; - } - - public Optional<String> getContext() { - return context; - } - - public static <D extends ReferentialDto> ObserveReferentialCacheKey<D> of(Class<D> type, String optionalContext) { - return new ObserveReferentialCacheKey<>(type, Optional.fromNullable(optionalContext)); - } -} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit ac539a758093c3c46ee599349f0f22a6e87bcd8a Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 20 09:48:04 2015 +0100 Suppression de la méthode loadForRead et renommage de l'autre en loadForm --- .../open/impl/seine/TripSeineUIHandler.java | 14 +-- .../v1/seine/TripSeineServiceController.java | 9 +- .../services/service/seine/TripSeineService.java | 12 +-- .../service/seine/TripSeineServiceTopia.java | 54 +++++------ .../service/seine/TripSeineServiceTopiaTest.java | 104 ++++++--------------- 5 files changed, 65 insertions(+), 128 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java index 5eeee20..4167254 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java @@ -185,21 +185,13 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeineDto> { } formDto = getTripSeineService().preCreate(programId); - } else if (mode == ContentMode.READ) { - - // read mode - if (log.isInfoEnabled()) { - log.info(prefix + "read existing trip " + tripId); - } - formDto = getTripSeineService().loadToRead(tripId); - } else { - // edit mode + // update mode if (log.isInfoEnabled()) { - log.info(prefix + "edit existing trip " + tripId); + log.info(prefix + "load existing trip " + tripId); } - formDto = getTripSeineService().loadToEdit(tripId); + formDto = getTripSeineService().loadForm(tripId); } diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TripSeineServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TripSeineServiceController.java index 9f5fdaf..7734e25 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TripSeineServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TripSeineServiceController.java @@ -68,18 +68,13 @@ public class TripSeineServiceController extends ObserveAuthenticatedServiceContr } @Override - public FormDto<TripSeineDto> loadToRead(String tripSeineId) { - return service.loadToRead(tripSeineId); - } - - @Override public boolean exists(String tripSeineId) { return service.exists(tripSeineId); } @Override - public FormDto<TripSeineDto> loadToEdit(String tripSeineId) { - return service.loadToEdit(tripSeineId); + public FormDto<TripSeineDto> loadForm(String tripSeineId) { + return service.loadForm(tripSeineId); } @Override diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java index 47e2d1f..6d4856e 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java @@ -42,6 +42,7 @@ import java.util.List; */ public interface TripSeineService extends ObserveService { + @ReadDataPermission ReferenceSetDto<TripSeineDto> getAllTripSeine(); @ReadDataPermission @@ -51,13 +52,13 @@ public interface TripSeineService extends ObserveService { int getTripSeinePositionInProgram(String programId, String tripSeineId); @ReadDataPermission - TripSeineDto loadDto(String tripSeineId); - - @ReadDataPermission TripMapDto getTripSeineMap(String tripSeineId); + @WriteDataPermission + FormDto<TripSeineDto> loadForm(String tripSeineId); + @ReadDataPermission - FormDto<TripSeineDto> loadToRead(String tripSeineId); + TripSeineDto loadDto(String tripSeineId); @ReadDataPermission ReferenceDto<TripSeineDto> loadReferenceToRead(String tripSeineId); @@ -66,9 +67,6 @@ public interface TripSeineService extends ObserveService { boolean exists(String tripSeineId); @WriteDataPermission - FormDto<TripSeineDto> loadToEdit(String tripSeineId); - - @WriteDataPermission FormDto<TripSeineDto> preCreate(String programId); @Write diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TripSeineServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TripSeineServiceTopia.java index c309822..4473b56 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TripSeineServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TripSeineServiceTopia.java @@ -22,6 +22,7 @@ package fr.ird.observe.services.service.seine; * #L% */ +import com.google.common.collect.ImmutableList; import com.google.common.collect.Sets; import fr.ird.observe.ObserveTopiaPersistenceContext; import fr.ird.observe.entities.constants.ReferenceLocale; @@ -59,7 +60,6 @@ public class TripSeineServiceTopia extends ObserveServiceTopia implements TripSe @Override public ReferenceSetDto<TripSeineDto> getAllTripSeine() { - ReferenceLocale referenceLocale = getReferenceLocale(); List<TripSeine> tripSeines = loadEntities(TripSeine.class); @@ -67,6 +67,7 @@ public class TripSeineServiceTopia extends ObserveServiceTopia implements TripSe for (TripSeine tripSeine : tripSeines) { + //FIXME Utiliser les définitions de références ReferenceDto<TripSeineDto> stub = entityToReferenceDto(TripSeineDto.class, tripSeine); stubs.add(stub); @@ -92,6 +93,7 @@ public class TripSeineServiceTopia extends ObserveServiceTopia implements TripSe for (TripSeine tripSeine : tripSeines) { + //FIXME Utiliser les définitions de références ReferenceDto<TripSeineDto> stub = entityToReferenceDto(TripSeineDto.class, tripSeine); stubs.add(stub); @@ -109,6 +111,27 @@ public class TripSeineServiceTopia extends ObserveServiceTopia implements TripSe } @Override + public FormDto<TripSeineDto> loadForm(String tripSeineId) { + + TripSeine tripSeine = loadEntity(TripSeineDto.class, TripSeine.class, tripSeineId); + + FormDto<TripSeineDto> form = entityToEditFormDto(TripSeineDto.class, TripSeine.class, tripSeine); + //FIXME Remove labels building from the entityToEditFormDto method + form.setLabels(ImmutableList.<ReferenceSetDto>of()); + + form.setReferentialReferenceSetRequestName(ObserveReferenceSetRequestDefinitions.TRIP_SEINE_FORM.name()); + + TripSeineDto tripSeineDto = form.getForm(); + + if (tripSeineDto.getEndDate() == null) { + Date date = DateUtil.getEndOfDay(now()); + tripSeineDto.setEndDate(date); + } + + return form; + } + + @Override public TripSeineDto loadDto(String tripSeineId) { TripSeineDto dto= loadEntityToDto(TripSeineDto.class, tripSeineId); @@ -130,17 +153,6 @@ public class TripSeineServiceTopia extends ObserveServiceTopia implements TripSe } @Override - public FormDto<TripSeineDto> loadToRead(String tripSeineId) { - - TripSeine tripSeine = loadEntity(TripSeineDto.class, TripSeine.class, tripSeineId); - - FormDto<TripSeineDto> form = entityToReadFormDto(TripSeineDto.class, TripSeine.class, tripSeine); - form.setReferentialReferenceSetRequestName(ObserveReferenceSetRequestDefinitions.TRIP_SEINE_FORM.name()); - - return form; - } - - @Override public ReferenceDto<TripSeineDto> loadReferenceToRead(String tripSeineId) { TripSeine tripSeine = loadEntity(TripSeineDto.class, TripSeine.class, tripSeineId); @@ -155,24 +167,6 @@ public class TripSeineServiceTopia extends ObserveServiceTopia implements TripSe } @Override - public FormDto<TripSeineDto> loadToEdit(String tripSeineId) { - - TripSeine tripSeine = loadEntity(TripSeineDto.class, TripSeine.class, tripSeineId); - - FormDto<TripSeineDto> form = entityToEditFormDto(TripSeineDto.class, TripSeine.class, tripSeine); - form.setReferentialReferenceSetRequestName(ObserveReferenceSetRequestDefinitions.TRIP_SEINE_FORM.name()); - - TripSeineDto tripSeineDto = form.getForm(); - - if (tripSeineDto.getEndDate() == null) { - Date date = DateUtil.getEndOfDay(now()); - tripSeineDto.setEndDate(date); - } - - return form; - } - - @Override public FormDto<TripSeineDto> preCreate(String programId) { TripSeine tripSeine = newEntity(TripSeine.class); diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java index 2628c00..3879f16 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java @@ -23,8 +23,6 @@ package fr.ird.observe.services.service.seine; */ import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Iterables; -import com.google.common.collect.Sets; import fr.ird.observe.entities.seine.TripSeine; import fr.ird.observe.services.ObserveServiceContextTopiaTaiste; import fr.ird.observe.services.dto.FormDto; @@ -36,12 +34,12 @@ import fr.ird.observe.services.dto.referential.HarbourDto; import fr.ird.observe.services.dto.referential.OceanDto; import fr.ird.observe.services.dto.referential.PersonDto; import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; import fr.ird.observe.services.dto.referential.VesselDto; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.services.service.AbstractServiceTopiaTest; import fr.ird.observe.services.service.ConcurrentModificationException; +import fr.ird.observe.services.service.ReferenceSetService; import fr.ird.observe.services.service.ReferentialService; import org.junit.Assert; import org.junit.Test; @@ -60,6 +58,8 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { protected ReferentialService referentialService; + protected ReferenceSetService referenceSetService; + @Override public Set<String> getTestNamesChangeDataBase() { return ImmutableSet.of( @@ -80,6 +80,7 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { service = newService(TripSeineService.class); referentialService = newService(ReferentialService.class); + referenceSetService = newService(ReferenceSetService.class); } @@ -122,10 +123,10 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { } @Test - public void loadToReadTest() throws Exception { + public void loadFormTest() throws Exception { TripSeine tripSeine = dataSourceResource.findById(TripSeine.class, TRIP_SEINE_ID_1); - FormDto<TripSeineDto> formDto = service.loadToRead(TRIP_SEINE_ID_1); + FormDto<TripSeineDto> formDto = service.loadForm(TRIP_SEINE_ID_1); Assert.assertNotNull(formDto); TripSeineDto tripSeineDto = formDto.getForm(); @@ -145,39 +146,7 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { Assert.assertEquals(tripSeine.getComment(), tripSeineDto.getComment()); Assert.assertEquals(tripSeine.getLastUpdate(), tripSeineDto.getLastUpdate()); - assertTripFormLabels(formDto); - - for (ReferenceSetDto referenceSetDto : formDto.getLabels()) { - - Assert.assertEquals(0, referenceSetDto.sizeReference()); - - } - - } - - @Test - public void loadToEditTest() throws Exception { - - TripSeine tripSeine = dataSourceResource.findById(TripSeine.class, TRIP_SEINE_ID_1); - FormDto<TripSeineDto> formDto = service.loadToEdit(TRIP_SEINE_ID_1); - - Assert.assertNotNull(formDto); - TripSeineDto tripSeineDto = formDto.getForm(); - - assertEntityEqualsReferenceDto(tripSeine.getCaptain(), tripSeineDto.getCaptain()); - assertEntityEqualsReferenceDto(tripSeine.getObserver(), tripSeineDto.getObserver()); - assertEntityEqualsReferenceDto(tripSeine.getDataEntryOperator(), tripSeineDto.getDataEntryOperator()); - assertEntityEqualsReferenceDto(tripSeine.getVessel(), tripSeineDto.getVessel()); - assertEntityEqualsReferenceDto(tripSeine.getOcean(), tripSeineDto.getOcean()); - assertEntityEqualsReferenceDto(tripSeine.getDepartureHarbour(), tripSeineDto.getDepartureHarbour()); - assertEntityEqualsReferenceDto(tripSeine.getLandingHarbour(), tripSeineDto.getLandingHarbour()); - Assert.assertEquals(tripSeine.getErsId(), tripSeineDto.getErsId()); - Assert.assertEquals(tripSeine.getStartDate(), tripSeineDto.getStartDate()); - Assert.assertEquals(tripSeine.getEndDate(), tripSeineDto.getEndDate()); - Assert.assertEquals(tripSeine.getFormsUrl(), tripSeineDto.getFormsUrl()); - Assert.assertEquals(tripSeine.getReportsUrl(), tripSeineDto.getReportsUrl()); - Assert.assertEquals(tripSeine.getComment(), tripSeineDto.getComment()); - Assert.assertEquals(tripSeine.getLastUpdate(), tripSeineDto.getLastUpdate()); + loadReferenceSets(referenceSetService, formDto); assertTripFormLabels(formDto); @@ -228,21 +197,16 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { TripSeineDto tripSeineDto = formDto.getForm(); - ReferenceSetDto<PersonDto> personRefs = formDto.getReferenceSetDto(PersonDto.class); - ReferenceSetDto<VesselDto> vesselRefs = formDto.getReferenceSetDto(VesselDto.class); - ReferenceSetDto<OceanDto> oceanRefs = formDto.getReferenceSetDto(OceanDto.class); - ReferenceSetDto<HarbourDto> harbourRefs = formDto.getReferenceSetDto(HarbourDto.class); - - tripSeineDto.setCaptain((ReferentialReferenceDto<PersonDto>) personRefs.getReference(0)); - tripSeineDto.setObserver((ReferentialReferenceDto<PersonDto>) personRefs.getReference(1)); - tripSeineDto.setDataEntryOperator((ReferentialReferenceDto<PersonDto>) personRefs.getReference(2)); + tripSeineDto.setCaptain(getReference(formDto, PersonDto.class, TripSeine.PROPERTY_CAPTAIN, 0)); + tripSeineDto.setObserver(getReference(formDto, PersonDto.class, TripSeine.PROPERTY_OBSERVER, 0)); + tripSeineDto.setDataEntryOperator(getReference(formDto, PersonDto.class, TripSeine.PROPERTY_DATA_ENTRY_OPERATOR, 0)); - tripSeineDto.setVessel((ReferentialReferenceDto<VesselDto>) vesselRefs.getReference(0)); + tripSeineDto.setVessel(getReference(formDto, VesselDto.class, TripSeine.PROPERTY_VESSEL, 0)); - tripSeineDto.setOcean((ReferentialReferenceDto<OceanDto>) oceanRefs.getReference(0)); + tripSeineDto.setOcean(getReference(formDto, OceanDto.class, TripSeine.PROPERTY_OCEAN, 0)); - tripSeineDto.setDepartureHarbour((ReferentialReferenceDto<HarbourDto>) harbourRefs.getReference(0)); - tripSeineDto.setLandingHarbour((ReferentialReferenceDto<HarbourDto>) harbourRefs.getReference(1)); + tripSeineDto.setDepartureHarbour(getReference(formDto, HarbourDto.class, TripSeine.PROPERTY_DEPARTURE_HARBOUR, 0)); + tripSeineDto.setLandingHarbour(getReference(formDto, HarbourDto.class, TripSeine.PROPERTY_LANDING_HARBOUR, 0)); tripSeineDto.setErsId("ersid"); @@ -282,21 +246,19 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { @Test public void saveUpdateTest() { - FormDto<TripSeineDto> formDto = service.loadToEdit(TRIP_SEINE_ID_1); + FormDto<TripSeineDto> formDto = service.loadForm(TRIP_SEINE_ID_1); - TripSeineDto tripSeineDto = formDto.getForm(); + loadReferenceSets(referenceSetService, formDto); - ReferenceSetDto<PersonDto> personRefs = formDto.getReferenceSetDto(PersonDto.class); - ReferenceSetDto<OceanDto> oceanRefs = formDto.getReferenceSetDto(OceanDto.class); - ReferenceSetDto<HarbourDto> harbourRefs = formDto.getReferenceSetDto(HarbourDto.class); + TripSeineDto tripSeineDto = formDto.getForm(); - tripSeineDto.setCaptain((ReferentialReferenceDto<PersonDto>) personRefs.getReference(0)); - tripSeineDto.setDataEntryOperator((ReferentialReferenceDto<PersonDto>) personRefs.getReference(2)); + tripSeineDto.setCaptain(getReference(formDto, PersonDto.class, TripSeine.PROPERTY_CAPTAIN, 0)); + tripSeineDto.setDataEntryOperator(getReference(formDto, PersonDto.class, TripSeine.PROPERTY_DATA_ENTRY_OPERATOR, 0)); - tripSeineDto.setOcean((ReferentialReferenceDto<OceanDto>) oceanRefs.getReference(0)); + tripSeineDto.setOcean(getReference(formDto, OceanDto.class, TripSeine.PROPERTY_OCEAN, 0)); - tripSeineDto.setDepartureHarbour((ReferentialReferenceDto<HarbourDto>) harbourRefs.getReference(0)); - tripSeineDto.setLandingHarbour((ReferentialReferenceDto<HarbourDto>) harbourRefs.getReference(1)); + tripSeineDto.setDepartureHarbour(getReference(formDto, HarbourDto.class, TripSeine.PROPERTY_DEPARTURE_HARBOUR, 0)); + tripSeineDto.setLandingHarbour(getReference(formDto, HarbourDto.class, TripSeine.PROPERTY_LANDING_HARBOUR, 0)); tripSeineDto.setErsId("ersid"); @@ -335,31 +297,27 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { } - - @Test(expected = ConcurrentModificationException.class) public void saveConcurrentTest() { - FormDto<TripSeineDto> formDto = service.loadToEdit(TRIP_SEINE_ID_1); + FormDto<TripSeineDto> formDto = service.loadForm(TRIP_SEINE_ID_1); TripSeineDto tripSeineDto = formDto.getForm(); - ReferenceSetDto<PersonDto> personRefs = formDto.getReferenceSetDto(PersonDto.class); - ReferenceSetDto<OceanDto> oceanRefs = formDto.getReferenceSetDto(OceanDto.class); - ReferenceSetDto<HarbourDto> harbourRefs = formDto.getReferenceSetDto(HarbourDto.class); + loadReferenceSets(referenceSetService, formDto); - tripSeineDto.setCaptain((ReferentialReferenceDto<PersonDto>) personRefs.getReference(0)); - tripSeineDto.setDataEntryOperator((ReferentialReferenceDto<PersonDto>) personRefs.getReference(2)); + tripSeineDto.setCaptain(getReference(formDto, PersonDto.class, TripSeine.PROPERTY_CAPTAIN, 0)); + tripSeineDto.setDataEntryOperator(getReference(formDto, PersonDto.class, TripSeine.PROPERTY_DATA_ENTRY_OPERATOR, 0)); - tripSeineDto.setOcean((ReferentialReferenceDto<OceanDto>) oceanRefs.getReference(0)); + tripSeineDto.setOcean(getReference(formDto, OceanDto.class, TripSeine.PROPERTY_OCEAN, 0)); - tripSeineDto.setDepartureHarbour((ReferentialReferenceDto<HarbourDto>) harbourRefs.getReference(0)); - tripSeineDto.setLandingHarbour((ReferentialReferenceDto<HarbourDto>) harbourRefs.getReference(1)); + tripSeineDto.setDepartureHarbour(getReference(formDto, HarbourDto.class, TripSeine.PROPERTY_DEPARTURE_HARBOUR, 0)); + tripSeineDto.setLandingHarbour(getReference(formDto, HarbourDto.class, TripSeine.PROPERTY_LANDING_HARBOUR, 0)); // on fait croire que notre version est plus ancienne Calendar calendar = Calendar.getInstance(); calendar.setTime(tripSeineDto.getLastUpdate()); - calendar.add(Calendar.HOUR, - 1); + calendar.add(Calendar.HOUR, -1); tripSeineDto.setLastUpdate(calendar.getTime()); service.save(formDto.getForm()); @@ -388,7 +346,7 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { Assert.assertNotNull(formDto.getLabels()); - Set<Class> types = Sets.newLinkedHashSet(Iterables.transform(formDto.getLabels(), ReferenceSetDtos.getTypeFunction())); + Set<Class<?>> types = ReferenceSetDtos.getTypes(formDto.getLabels()); Assert.assertTrue(types.contains(PersonDto.class)); Assert.assertTrue(types.contains(VesselDto.class)); Assert.assertTrue(types.contains(OceanDto.class)); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit dbb5658db1968cf0f4d8a01db825062259b9ff6c Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 20 09:49:42 2015 +0100 Amélioration des logs + bien transformer les références vers référentiels + prise en compte des champs techniques --- .../fr/ird/observe/services/dto/ReferenceDto.java | 20 +++++++--- .../dto/gson/ObserveReferenceSetAdapter.java | 2 +- .../dto/reference/ObserveReferenceSet.java | 44 +++++++++++++++++++--- .../dto/reference/ObserveReferenceSetRequest.java | 10 +++++ .../dto/reference/ObserveReferenceSetResult.java | 4 +- .../dto/reference/ObserveReferentialReference.java | 34 +++++++++++------ .../definition/ObserveReferenceSetDefinition.java | 19 ++++++++++ .../ObserveReferenceSetRequestKeyDefinition.java | 21 ++++++++--- .../dto/referential/ReferentialReferenceDto.java | 30 ++++++++++----- .../dto/reference/ObserveReferenceSetBuilder.java | 27 +++++++++---- .../services/service/ReferenceSetServiceTopia.java | 23 +++++++---- 11 files changed, 177 insertions(+), 57 deletions(-) diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceDto.java index 7301ecf..06b9a3e 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceDto.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceDto.java @@ -31,6 +31,8 @@ import fr.ird.observe.services.dto.longline.SetLonglineDto; import fr.ird.observe.services.dto.referential.I18nReferentialDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.SetSeineDto; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderFactory; @@ -50,6 +52,9 @@ public class ReferenceDto<D extends IdDto> extends AbstractReferenceDto { private static final long serialVersionUID = 1L; + /** Logger. */ + private static final Log log = LogFactory.getLog(ReferenceDto.class); + protected Class<D> type; protected List<String> labelPropertyNames; @@ -160,12 +165,17 @@ public class ReferenceDto<D extends IdDto> extends AbstractReferenceDto { @Override public String toString() { - return MoreObjects.toStringHelper(this) - .add("type", type.getName()) - .add("id", id) - .add("labelPropertyNames", labelPropertyNames) + MoreObjects.ToStringHelper toStringHelper = MoreObjects.toStringHelper(this) + .add("type", type.getSimpleName()) + .add("id", id); + + if (log.isDebugEnabled()) { + toStringHelper + .add("labelPropertyNames", labelPropertyNames) + .add("labelPropertyTypes", Arrays.toString(labelPropertyTypes)); + } + return toStringHelper .add("labelPropertyValues", Arrays.toString(labelPropertyValues)) - .add("labelPropertyTypes", Arrays.toString(labelPropertyTypes)) .toString(); } } diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ObserveReferenceSetAdapter.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ObserveReferenceSetAdapter.java index 300ae53..c37b255 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ObserveReferenceSetAdapter.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ObserveReferenceSetAdapter.java @@ -83,7 +83,7 @@ public class ObserveReferenceSetAdapter implements JsonDeserializer<ObserveRefer result.setVersion((long) context.deserialize(jsonObject.get(ReferentialDto.PROPERTY_VERSION), long.class)); result.setCreateDate((Date) context.deserialize(jsonObject.get(ReferentialDto.PROPERTY_CREATE_DATE), Date.class)); - result.setLastUpdate((Date) context.deserialize(jsonObject.get(ReferentialDto.PROPERTY_LAST_UPDATE), Date.class)); + result.setLastUpdateDate((Date) context.deserialize(jsonObject.get(ReferentialDto.PROPERTY_LAST_UPDATE), Date.class)); result.setEnabled((Boolean) context.deserialize(jsonObject.get(ReferentialDto.PROPERTY_ENABLED), boolean.class)); result.setNeedComment((Boolean) context.deserialize(jsonObject.get(ReferentialDto.PROPERTY_NEED_COMMENT), boolean.class)); diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSet.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSet.java index 79b98cb..9abd500 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSet.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSet.java @@ -5,6 +5,10 @@ import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinition; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import java.io.Serializable; import java.util.Collection; @@ -19,6 +23,9 @@ public class ObserveReferenceSet<D extends IdDto, R extends ObserveReference> im private static final long serialVersionUID = 1L; + /** Logger. */ + private static final Log log = LogFactory.getLog(ObserveReferenceSet.class); + protected ObserveReferenceSetDefinition<D> definition; protected Collection<R> values; @@ -70,22 +77,47 @@ public class ObserveReferenceSet<D extends IdDto, R extends ObserveReference> im result.setLastUpdate(lastUpdate); result.setName(name); + boolean referential = ReferentialDto.class.isAssignableFrom(type); + for (R value : values) { - ReferenceDto<D> referenceDto = new ReferenceDto<>(); - referenceDto.init(type, propertyNames, propertyTypes, value.getValues()); - result.addReference(referenceDto); + if (referential) { + + ObserveReferentialReference referentialValue = (ObserveReferentialReference) value; + ReferentialReferenceDto referenceDto = new ReferentialReferenceDto<>(); + referenceDto.init(type, propertyNames, propertyTypes, value.getValues()); + referenceDto.setId(value.getId()); + referenceDto.setCreateDate(referentialValue.getCreateDate()); + referenceDto.setEnabled(referentialValue.isEnabled()); + referenceDto.setLastUpdate(referentialValue.getLastUpdateDate()); + referenceDto.setNeedComment(referentialValue.isNeedComment()); + referenceDto.setVersion(referentialValue.getVersion()); + result.addReference(referenceDto); + + } else { + + ReferenceDto<D> referenceDto = new ReferenceDto<>(); + referenceDto.setId(value.getId()); + referenceDto.init(type, propertyNames, propertyTypes, value.getValues()); + result.addReference(referenceDto); + + } } return result; } - + @Override public String toString() { - return MoreObjects.toStringHelper(this) - .add("definition", definition) + MoreObjects.ToStringHelper toStringHelper = MoreObjects.toStringHelper(this); + if (log.isDebugEnabled()) { + toStringHelper.add("definition", definition); + } else { + toStringHelper.add("type", definition.getType().getSimpleName()); + } + return toStringHelper .add("values", values == null ? 0 : values.size()) .add("lastUpdate", lastUpdate) .toString(); diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetRequest.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetRequest.java index 25ea7b6..69cbda3 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetRequest.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetRequest.java @@ -13,6 +13,8 @@ public class ObserveReferenceSetRequest { private String requestName; + private boolean loadTechnicalInformations; + private ImmutableMap<String, Date> lastUpdateDates; public String getRequestName() { @@ -30,4 +32,12 @@ public class ObserveReferenceSetRequest { public void setLastUpdateDates(ImmutableMap<String, Date> lastUpdateDates) { this.lastUpdateDates = lastUpdateDates; } + + public boolean isLoadTechnicalInformations() { + return loadTechnicalInformations; + } + + public void setLoadTechnicalInformations(boolean loadTechnicalInformations) { + this.loadTechnicalInformations = loadTechnicalInformations; + } } diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetResult.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetResult.java index 2812e03..8eb4bf1 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetResult.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetResult.java @@ -56,9 +56,9 @@ public class ObserveReferenceSetResult<R extends ObserveReference> { this.referenceSetsMapBuilder = ImmutableMap.builder(); } - public Builder addKey(String name, ObserveReferenceSet<?, R> referenceSet) { + public Builder addReferenceSet(String name, ObserveReferenceSet<?, R> referenceSet) { if (log.isInfoEnabled()) { - log.info("Add reference set " + name + " : " + referenceSet); + log.info(String.format("Add reference set : %s", referenceSet)); } referenceSetsMapBuilder.put(name, referenceSet); return this; diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferentialReference.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferentialReference.java index f82dd81..083eccb 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferentialReference.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferentialReference.java @@ -1,6 +1,8 @@ package fr.ird.observe.services.dto.reference; import com.google.common.base.MoreObjects; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import java.util.Arrays; import java.util.Date; @@ -14,13 +16,16 @@ public class ObserveReferentialReference extends ObserveReference { private static final long serialVersionUID = 1L; + /** Logger. */ + private static final Log log = LogFactory.getLog(ObserveReferentialReference.class); + protected boolean needComment; protected boolean enabled; protected Date createDate; - protected Date lastUpdate; + protected Date lastUpdateDate; protected long version; @@ -40,12 +45,12 @@ public class ObserveReferentialReference extends ObserveReference { this.enabled = enabled; } - public Date getLastUpdate() { - return lastUpdate; + public Date getLastUpdateDate() { + return lastUpdateDate; } - public void setLastUpdate(Date lastUpdate) { - this.lastUpdate = lastUpdate; + public void setLastUpdateDate(Date lastUpdateDate) { + this.lastUpdateDate = lastUpdateDate; } public Date getCreateDate() { @@ -66,13 +71,18 @@ public class ObserveReferentialReference extends ObserveReference { @Override public String toString() { - return MoreObjects.toStringHelper(this) - .add("id", id) - .add("needComment", needComment) - .add("enabled", enabled) - .add("version", version) - .add("createDate", createDate) - .add("lastUpdate", lastUpdate) + MoreObjects.ToStringHelper toStringHelper = MoreObjects.toStringHelper(this) + .add("id", id); + + if (log.isDebugEnabled()) { + toStringHelper + .add("needComment", needComment) + .add("enabled", enabled) + .add("version", version) + .add("createDate", createDate) + .add("lastUpdate", lastUpdateDate); + } + return toStringHelper .add("values", Arrays.asList(values)) .toString(); } diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetDefinition.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetDefinition.java index 3a5f327..b510ab4 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetDefinition.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetDefinition.java @@ -1,8 +1,12 @@ package fr.ird.observe.services.dto.reference.definition; +import com.google.common.base.MoreObjects; import fr.ird.observe.services.dto.IdDto; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import java.io.Serializable; +import java.util.Arrays; import java.util.LinkedList; /** @@ -16,6 +20,9 @@ public class ObserveReferenceSetDefinition<D extends IdDto> implements Serializa private static final long serialVersionUID = 1L; + /** Logger. */ + private static final Log log = LogFactory.getLog(ObserveReferenceSetDefinition.class); + /** * Le type du dto qui doit être transformé en références. * {@link ObserveReferenceSetDefinition#getType()}. @@ -48,6 +55,18 @@ public class ObserveReferenceSetDefinition<D extends IdDto> implements Serializa return propertyNames; } + @Override + public String toString() { + MoreObjects.ToStringHelper toStringHelper = MoreObjects.toStringHelper(this) + .add("type", type.getSimpleName()); + if (log.isDebugEnabled()) { + toStringHelper + .add("propertyNames", Arrays.toString(propertyNames)) + .add("propertyTypes", Arrays.toString(propertyTypes)); + } + return toStringHelper.toString(); + } + public static class Builder<D extends IdDto> { private final Class<D> type; diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestKeyDefinition.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestKeyDefinition.java index b086c7e..5272c90 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestKeyDefinition.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestKeyDefinition.java @@ -3,8 +3,11 @@ package fr.ird.observe.services.dto.reference.definition; import com.google.common.base.MoreObjects; import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.referential.ReferentialDto; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import java.io.Serializable; +import java.util.Arrays; import java.util.Objects; /** @@ -16,6 +19,9 @@ public class ObserveReferenceSetRequestKeyDefinition<D extends IdDto> implements private static final long serialVersionUID = 1L; + /** Logger. */ + private static final Log log = LogFactory.getLog(ObserveReferenceSetRequestKeyDefinition.class); + private final Class<? extends IdDto> parentType; private final ObserveReferenceSetDefinition<D> referenceSetDefinition; @@ -66,12 +72,15 @@ public class ObserveReferenceSetRequestKeyDefinition<D extends IdDto> implements @Override public String toString() { - return MoreObjects.toStringHelper(this) - .add("parentType", parentType) + MoreObjects.ToStringHelper toStringHelper = MoreObjects.toStringHelper(this) + .add("parentType", parentType.getSimpleName()) .add("name", name) - .add("type", referenceSetDefinition.getType()) - .add("propertyNames", referenceSetDefinition.getPropertyNames()) - .add("propertyTypes", referenceSetDefinition.getPropertyTypes()) - .toString(); + .add("type", referenceSetDefinition.getType().getSimpleName()); + if (log.isDebugEnabled()) { + toStringHelper + .add("propertyNames", Arrays.toString(referenceSetDefinition.getPropertyNames())) + .add("propertyTypes", Arrays.toString(referenceSetDefinition.getPropertyTypes())); + } + return toStringHelper.toString(); } } diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceDto.java index b594ae4..626d4bd 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceDto.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceDto.java @@ -27,6 +27,8 @@ import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import fr.ird.observe.services.dto.constants.ReferentialLocale; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import java.io.Serializable; import java.util.Arrays; @@ -35,6 +37,9 @@ public class ReferentialReferenceDto<D extends ReferentialDto> extends AbstractR private static final long serialVersionUID = 1L; + /** Logger. */ + private static final Log log = LogFactory.getLog(ReferentialReferenceDto.class); + public static final String PROPERTY_LABEL = "label"; public static final ImmutableSet<String> I18N_PROPERTY_NAMES = ImmutableSet.of( @@ -94,17 +99,22 @@ public class ReferentialReferenceDto<D extends ReferentialDto> extends AbstractR @Override public String toString() { - return MoreObjects.toStringHelper(this) - .add("type", type.getName()) - .add("id", id) - .add("enabled", enabled) - .add("needComment", needComment) - .add("createDate", createDate) - .add("lastUpdate", lastUpdate) - .add("version", version) - .add("labelPropertyNames", labelPropertyNames) + MoreObjects.ToStringHelper toStringHelper = MoreObjects.toStringHelper(this) + .add("type", type.getSimpleName()) + .add("id", id); + + if (log.isDebugEnabled()) { + toStringHelper + .add("enabled", enabled) + .add("needComment", needComment) + .add("createDate", createDate) + .add("lastUpdate", lastUpdate) + .add("version", version) + .add("labelPropertyNames", labelPropertyNames) + .add("labelPropertyTypes", Arrays.toString(labelPropertyTypes)); + } + return toStringHelper .add("labelPropertyValues", Arrays.toString(labelPropertyValues)) - .add("labelPropertyTypes", Arrays.toString(labelPropertyTypes)) .toString(); } } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetBuilder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetBuilder.java index bda5a57..3845e25 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetBuilder.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetBuilder.java @@ -49,9 +49,14 @@ public class ObserveReferenceSetBuilder<D extends IdDto, R extends ObserveRefere private Date lastUpdateDate; + private boolean loadTechnicalInformations; + public static <D extends IdDto, R extends ObserveReference> ObserveReferenceSetBuilder<D, R> of( - ReferentialLocale referentialLocale, ObserveReferenceSetDefinition<D> definition, Class<TopiaEntity> entityType) { + ReferentialLocale referentialLocale, + ObserveReferenceSetDefinition<D> definition, + Class<TopiaEntity> entityType, + boolean loadTechnicalInformations) { ObserveReferenceSetBuilder<D, R> referenceDtoBuilder = new ObserveReferenceSetBuilder<>(); @@ -59,6 +64,7 @@ public class ObserveReferenceSetBuilder<D extends IdDto, R extends ObserveRefere referenceDtoBuilder.referentialLocaleOrdinal = referentialLocale.ordinal(); referenceDtoBuilder.binder = BinderFactory.newBinder(entityType); referenceDtoBuilder.propertyNames = definition.getPropertyNames(); + referenceDtoBuilder.loadTechnicalInformations = loadTechnicalInformations; List<String> entityPropertyNames = new ArrayList<>(); @@ -130,14 +136,21 @@ public class ObserveReferenceSetBuilder<D extends IdDto, R extends ObserveRefere result.setValues(propertyValues); result.setId(entity.getTopiaId()); - result.setVersion(entity.getTopiaVersion()); - result.setCreateDate(entity.getTopiaCreateDate()); + ReferenceEntity referenceEntity = (ReferenceEntity) entity; - result.setEnabled(referenceEntity.isEnabled()); - result.setNeedComment(referenceEntity.isNeedComment()); - result.setLastUpdate(referenceEntity.getLastUpdate()); - result.setEnabled(fr.ird.observe.entities.constants.ReferenceStatus.enabled == referenceEntity.getStatus()); + + if (loadTechnicalInformations) { + + result.setVersion(entity.getTopiaVersion()); + result.setCreateDate(entity.getTopiaCreateDate()); + result.setEnabled(referenceEntity.isEnabled()); + result.setNeedComment(referenceEntity.isNeedComment()); + result.setLastUpdateDate(referenceEntity.getLastUpdate()); + result.setEnabled(fr.ird.observe.entities.constants.ReferenceStatus.enabled == referenceEntity.getStatus()); + + } + references.add((R) result); diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferenceSetServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferenceSetServiceTopia.java index a017b15..509b086 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferenceSetServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferenceSetServiceTopia.java @@ -34,6 +34,8 @@ public class ReferenceSetServiceTopia extends ObserveServiceTopia implements Ref String requestName = request.getRequestName(); ObserveReferenceSetRequestDefinition requestDefinition = ObserveReferenceSetRequestDefinitions.get(requestName); + boolean loadTechnicalInformations = request.isLoadTechnicalInformations(); + ObserveReferenceSetResult.Builder<ObserveReference> resultBuilder = ObserveReferenceSetResult.builder(requestName); for (ObserveReferenceSetRequestKeyDefinition definition : requestDefinition.getKeys()) { @@ -41,10 +43,10 @@ public class ReferenceSetServiceTopia extends ObserveServiceTopia implements Ref boolean referential = definition.isReferential(); Preconditions.checkArgument(!referential, "Can't obtain referenceSet of referential here, but try with " + definition); - ObserveReferenceSet<IdDto, ObserveReference> referenceSet = loadDataReferenceSet(definition); + ObserveReferenceSet<IdDto, ObserveReference> referenceSet = loadDataReferenceSet(definition, loadTechnicalInformations); String name = definition.getName(); - resultBuilder.addKey(name, referenceSet); + resultBuilder.addReferenceSet(name, referenceSet); } @@ -59,6 +61,8 @@ public class ReferenceSetServiceTopia extends ObserveServiceTopia implements Ref ObserveReferenceSetRequestDefinition requestDefinition = ObserveReferenceSetRequestDefinitions.get(requestName); + boolean loadTechnicalInformations = request.isLoadTechnicalInformations(); + ObserveReferenceSetResult.Builder<ObserveReferentialReference> resultBuilder = ObserveReferenceSetResult.builder(requestName); ImmutableMap<String, Date> lastUpdateDates = request.getLastUpdateDates(); Preconditions.checkNotNull(lastUpdateDates); @@ -71,9 +75,9 @@ public class ReferenceSetServiceTopia extends ObserveServiceTopia implements Ref String name = definition.getName(); Date lastUpdateDate = lastUpdateDates.get(name); - ObserveReferenceSet<ReferentialDto, ObserveReferentialReference> referenceSet = loadReferentialReferenceSet(definition, lastUpdateDate); + ObserveReferenceSet<ReferentialDto, ObserveReferentialReference> referenceSet = loadReferentialReferenceSet(definition, lastUpdateDate, loadTechnicalInformations); if (referenceSet != null) { - resultBuilder.addKey(name, referenceSet); + resultBuilder.addReferenceSet(name, referenceSet); } } @@ -82,11 +86,11 @@ public class ReferenceSetServiceTopia extends ObserveServiceTopia implements Ref } - protected <D extends IdDto> ObserveReferenceSet<D, ObserveReference> loadDataReferenceSet(ObserveReferenceSetRequestKeyDefinition<D> requestKeyDefinition) { + protected <D extends IdDto> ObserveReferenceSet<D, ObserveReference> loadDataReferenceSet(ObserveReferenceSetRequestKeyDefinition<D> requestKeyDefinition, boolean loadTechnicalInformations) { Class<TopiaEntity> entityType = getEntityType(requestKeyDefinition.getType()); - ObserveReferenceSetBuilder<D, ObserveReference> referenceBuilder = ObserveReferenceSetBuilder.of(serviceContext.getReferentialLocale(), requestKeyDefinition.getDefinition(), entityType); + ObserveReferenceSetBuilder<D, ObserveReference> referenceBuilder = ObserveReferenceSetBuilder.of(serviceContext.getReferentialLocale(), requestKeyDefinition.getDefinition(), entityType, loadTechnicalInformations); Iterable<TopiaEntity> entities = getEntities(requestKeyDefinition, Collections.<String, Object>emptyMap()); @@ -101,7 +105,7 @@ public class ReferenceSetServiceTopia extends ObserveServiceTopia implements Ref } - protected <D extends ReferentialDto> ObserveReferenceSet<D, ObserveReferentialReference> loadReferentialReferenceSet(ObserveReferenceSetRequestKeyDefinition<D> requestKeyDefinition, Date lastUpdateDate) { + protected <D extends ReferentialDto> ObserveReferenceSet<D, ObserveReferentialReference> loadReferentialReferenceSet(ObserveReferenceSetRequestKeyDefinition<D> requestKeyDefinition, Date lastUpdateDate, boolean loadTechnicalInformations) { Class<TopiaEntity> entityType = getEntityType(requestKeyDefinition.getType()); @@ -110,7 +114,10 @@ public class ReferenceSetServiceTopia extends ObserveServiceTopia implements Ref ObserveReferenceSet<D, ObserveReferentialReference> referenceSet; if (lastUpdateOptional.isPresent() && (lastUpdateDate == null || lastUpdateOptional.get().after(lastUpdateDate))) { - ObserveReferenceSetBuilder<D, ObserveReferentialReference> referenceBuilder = ObserveReferenceSetBuilder.of(serviceContext.getReferentialLocale(), requestKeyDefinition.getDefinition(), entityType); + ObserveReferenceSetBuilder<D, ObserveReferentialReference> referenceBuilder = ObserveReferenceSetBuilder.of(serviceContext.getReferentialLocale(), + requestKeyDefinition.getDefinition(), + entityType, + loadTechnicalInformations); referenceBuilder.setLastUpdateDate(lastUpdateOptional.get()); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit d8a13bcfdb4f93aef0836edc94310d1ac98f4e83 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 20 10:15:49 2015 +0100 Add fixme --- .../src/main/java/fr/ird/observe/services/dto/FormDto.java | 1 + 1 file changed, 1 insertion(+) diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDto.java index 0ff891a..2e12be5 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDto.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDto.java @@ -110,6 +110,7 @@ public class FormDto<R extends IdDto> extends AbstractFormDto { Optional<ReferenceSetDto<D>> referenceSetDto = Iterables.tryFind(getLabels(), (Predicate) predicate); if (!referenceSetDto.isPresent()) { + //FIXME Supprimer cela, tout referenceSet doit être nommé predicate = ReferenceSetDtos.newTypeNamePredicate(type, null); referenceSetDto = Iterables.tryFind(getLabels(), (Predicate) predicate); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit 2ce324b0b651256460efe0e7a6718c40b7ad30de Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 20 10:16:28 2015 +0100 Fix some tests --- .../service/seine/TripSeineServiceRestTest.java | 46 ++-------------------- .../services/service/AbstractServiceTopiaTest.java | 12 +++++- .../fr/ird/observe/services/service/RigthTest.java | 4 +- ...tLonglineDetailCompositionServiceTopiaTest.java | 18 ++++----- .../seine/TargetSampleServiceTopiaTest.java | 3 +- .../seine/TripSeineGearUseServiceTopiaTest.java | 6 +-- 6 files changed, 29 insertions(+), 60 deletions(-) diff --git a/observe-services-rest/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceRestTest.java b/observe-services-rest/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceRestTest.java index a986048..9f17864 100644 --- a/observe-services-rest/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceRestTest.java +++ b/observe-services-rest/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceRestTest.java @@ -95,47 +95,9 @@ public class TripSeineServiceRestTest extends AbstractServiceRestTest { } @Test - public void loadToReadTest() throws Exception { + public void loadFormTest() throws Exception { - FormDto<TripSeineDto> formDto = service.loadToRead(TRIP_SEINE_ID_1); - - Assert.assertNotNull(formDto); - TripSeineDto tripSeineDto = formDto.getForm(); - - Assert.assertNull(tripSeineDto.getCaptain()); - - Assert.assertEquals("fr.ird.observe.entities.referentiel.Person#1355399844272#0.32586441962131485", tripSeineDto.getObserver().getId()); - Assert.assertEquals("Fanchon", tripSeineDto.getObserver().getPropertyValue(PersonDto.PROPERTY_FIRST_NAME)); - Assert.assertEquals("Varenne", tripSeineDto.getObserver().getPropertyValue(PersonDto.PROPERTY_LAST_NAME)); - Assert.assertNull(tripSeineDto.getDataEntryOperator()); - Assert.assertEquals("fr.ird.observe.entities.referentiel.Vessel#1306847717532#0.7435948873477364", tripSeineDto.getVessel().getId()); - Assert.assertEquals("835", tripSeineDto.getVessel().getPropertyValue(VesselDto.PROPERTY_CODE)); - Assert.assertEquals("BERNICA", tripSeineDto.getVessel().getPropertyValue("label")); - Assert.assertEquals("fr.ird.observe.entities.referentiel.Ocean#1239832686152#0.8325731048817705", tripSeineDto.getOcean().getId()); - Assert.assertEquals("2", tripSeineDto.getOcean().getPropertyValue(OceanDto.PROPERTY_CODE)); - Assert.assertEquals("Indien", tripSeineDto.getOcean().getPropertyValue("label")); - Assert.assertNull(tripSeineDto.getDepartureHarbour()); - Assert.assertNull(tripSeineDto.getLandingHarbour()); - Assert.assertNull(tripSeineDto.getErsId()); - Assert.assertEquals(DateUtil.createDate(25, 1, 2013), tripSeineDto.getStartDate()); - Assert.assertEquals(DateUtil.createDate(27, 2, 2013), tripSeineDto.getEndDate()); - Assert.assertNull(tripSeineDto.getFormsUrl()); - Assert.assertNull(tripSeineDto.getReportsUrl()); - Assert.assertTrue(tripSeineDto.getComment().startsWith("Caractéristiques de la senne")); - - assertReadLabels(formDto, 8, - ProgramDto.class, - PersonDto.class, - VesselDto.class, - OceanDto.class, - HarbourDto.class); - - } - - @Test - public void loadToEditTest() throws Exception { - - FormDto<TripSeineDto> formDto = service.loadToEdit(TRIP_SEINE_ID_1); + FormDto<TripSeineDto> formDto = service.loadForm(TRIP_SEINE_ID_1); Assert.assertNotNull(formDto); TripSeineDto tripSeineDto = formDto.getForm(); @@ -205,7 +167,7 @@ public class TripSeineServiceRestTest extends AbstractServiceRestTest { @Test public void saveUpdateTest() { - FormDto<TripSeineDto> formDto = service.loadToEdit(TRIP_SEINE_ID_1); + FormDto<TripSeineDto> formDto = service.loadForm(TRIP_SEINE_ID_1); TripSeineDto tripSeineDto = formDto.getForm(); @@ -233,7 +195,7 @@ public class TripSeineServiceRestTest extends AbstractServiceRestTest { service.save(formDto.getForm()); - FormDto<TripSeineDto> formDtoReload = service.loadToRead(TRIP_SEINE_ID_1); + FormDto<TripSeineDto> formDtoReload = service.loadForm(TRIP_SEINE_ID_1); TripSeineDto tripSeineDtoReload = formDtoReload.getForm(); Assert.assertEquals(tripSeineDto.getCaptain().getId(), tripSeineDtoReload.getCaptain().getId()); diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/AbstractServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/AbstractServiceTopiaTest.java index 56b9d85..a7b6ecf 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/AbstractServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/AbstractServiceTopiaTest.java @@ -32,7 +32,10 @@ import fr.ird.observe.services.ObserveDataSourceConnectionTopiaTaiste; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationTopiaH2; import fr.ird.observe.services.configuration.ObserveDataSourceConnection; +import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Assert; @@ -154,7 +157,12 @@ public abstract class AbstractServiceTopiaTest { } - public ObserveReferentialCache getReferentialCache() { - return dataSourceResource.getReferentialCache(); + protected void loadReferenceSets(ReferenceSetService referenceSetService, FormDto<?> formDto) { + dataSourceResource.getReferentialCache().loadReferenceSets(referenceSetService, formDto); } + + protected <R extends ReferentialDto> ReferentialReferenceDto<R> getReference(FormDto<?> formDto, Class<R> type, String propertyName, int index) { + return (ReferentialReferenceDto<R>) formDto.getReferenceSetDto(type, propertyName).getReference(index); + } + } diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/RigthTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/RigthTest.java index 065ac30..cb707bc 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/RigthTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/RigthTest.java @@ -147,7 +147,7 @@ public class RigthTest { TripSeineService service = newService(dataSourceConnection, TripSeineService.class); - service.loadToRead(TRIP_SEINE_ID); + service.loadForm(TRIP_SEINE_ID); } protected void testWriteData(String login) throws DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException, BabModelVersionException { @@ -156,7 +156,7 @@ public class RigthTest { TripSeineService service = newService(dataSourceConnection, TripSeineService.class); - FormDto<TripSeineDto> tripSeineDtoFormDto = service.loadToEdit(TRIP_SEINE_ID); + FormDto<TripSeineDto> tripSeineDtoFormDto = service.loadForm(TRIP_SEINE_ID); service.save(tripSeineDtoFormDto.getForm()); } diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/longline/SetLonglineDetailCompositionServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/longline/SetLonglineDetailCompositionServiceTopiaTest.java index 28a4fbc..30ca7a9 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/longline/SetLonglineDetailCompositionServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/longline/SetLonglineDetailCompositionServiceTopiaTest.java @@ -118,36 +118,36 @@ public class SetLonglineDetailCompositionServiceTopiaTest extends AbstractServic branchlineDto.setBranchlineLength(1.2f); branchlineDto.setTracelineLength(2.8f); - ReferentialReferenceDto<LineTypeDto> topType = formDto.getReferentialReferenceById(LineTypeDto.class, "fr.ird.observe.entities.referentiel.longline.LineType#1239832686157#0.1"); + ReferentialReferenceDto<LineTypeDto> topType = formDto.getReferentialReferenceById(LineTypeDto.class, BranchlineDto.PROPERTY_TOP_TYPE, "fr.ird.observe.entities.referentiel.longline.LineType#1239832686157#0.1"); branchlineDto.setTopType(topType); - ReferentialReferenceDto<LineTypeDto> tracelineType = formDto.getReferentialReferenceById(LineTypeDto.class, "fr.ird.observe.entities.referentiel.longline.LineType#1239832686157#0.3"); + ReferentialReferenceDto<LineTypeDto> tracelineType = formDto.getReferentialReferenceById(LineTypeDto.class, BranchlineDto.PROPERTY_TRACELINE_TYPE, "fr.ird.observe.entities.referentiel.longline.LineType#1239832686157#0.3"); branchlineDto.setTracelineType(tracelineType); branchlineDto.setDepthRecorder(true); branchlineDto.setHookLost(false); branchlineDto.setTraceCutOff(false); branchlineDto.setTimer(true); - branchlineDto.setTimeSinceContact(25478l); + branchlineDto.setTimeSinceContact(25478L); branchlineDto.setTimerTimeOnBoard(DateUtil.createDate(14, 57, 10, 2, 8, 2009)); branchlineDto.setWeightedSnap(true); branchlineDto.setSnapWeight(0.8f); branchlineDto.setWeightedSwivel(true); branchlineDto.setSwivelWeight(0.45f); - ReferentialReferenceDto<HookTypeDto> hookType = formDto.getReferentialReferenceById(HookTypeDto.class, "fr.ird.observe.entities.referentiel.longline.HookType#1239832686152#0.2"); + ReferentialReferenceDto<HookTypeDto> hookType = formDto.getReferentialReferenceById(HookTypeDto.class, BranchlineDto.PROPERTY_HOOK_TYPE, "fr.ird.observe.entities.referentiel.longline.HookType#1239832686152#0.2"); branchlineDto.setHookType(hookType); - ReferentialReferenceDto<HookSizeDto> hookSize = formDto.getReferentialReferenceById(HookSizeDto.class, "fr.ird.observe.entities.referentiel.longline.HookSize#1239832686151#0.6"); + ReferentialReferenceDto<HookSizeDto> hookSize = formDto.getReferentialReferenceById(HookSizeDto.class, BranchlineDto.PROPERTY_HOOK_SIZE, "fr.ird.observe.entities.referentiel.longline.HookSize#1239832686151#0.6"); branchlineDto.setHookSize(hookSize); branchlineDto.setHookOffset(24); - ReferentialReferenceDto<BaitTypeDto> baitType = formDto.getReferentialReferenceById(BaitTypeDto.class, "fr.ird.observe.entities.referentiel.longline.BaitType#1239832686124#0.8"); + ReferentialReferenceDto<BaitTypeDto> baitType = formDto.getReferentialReferenceById(BaitTypeDto.class, BranchlineDto.PROPERTY_BAIT_TYPE, "fr.ird.observe.entities.referentiel.longline.BaitType#1239832686124#0.8"); branchlineDto.setBaitType(baitType); - ReferentialReferenceDto<BaitSettingStatusDto> baitSettingStatus = formDto.getReferentialReferenceById(BaitSettingStatusDto.class, "fr.ird.observe.entities.referentiel.longline.BaitSettingStatus#1239832686123#0.1"); + ReferentialReferenceDto<BaitSettingStatusDto> baitSettingStatus = formDto.getReferentialReferenceById(BaitSettingStatusDto.class, BranchlineDto.PROPERTY_BAIT_SETTING_STATUS, "fr.ird.observe.entities.referentiel.longline.BaitSettingStatus#1239832686123#0.1"); branchlineDto.setBaitSettingStatus(baitSettingStatus); - ReferentialReferenceDto<BaitHaulingStatusDto> baitHaulingStatus = formDto.getReferentialReferenceById(BaitHaulingStatusDto.class, "fr.ird.observe.entities.referentiel.longline.BaitHaulingStatus#1239832686122#0.4"); + ReferentialReferenceDto<BaitHaulingStatusDto> baitHaulingStatus = formDto.getReferentialReferenceById(BaitHaulingStatusDto.class, BranchlineDto.PROPERTY_BAIT_HAULING_STATUS, "fr.ird.observe.entities.referentiel.longline.BaitHaulingStatus#1239832686122#0.4"); branchlineDto.setBaitHaulingStatus(baitHaulingStatus); service.save(compositionDto); - SetLongline setLongline = dataSourceResource.findById(SetLongline.class, SET_LONGLINE_ID); + SetLongline setLongline = dataSourceResource.findById(SetLongline.class, SET_LONGLINE_ID); Section section = setLongline.getSectionByTopiaId(sectionDto.getId()); Assert.assertEquals(sectionDto.getSettingIdentifier(), section.getSettingIdentifier()); diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TargetSampleServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TargetSampleServiceTopiaTest.java index 41625de..09f3bd7 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TargetSampleServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TargetSampleServiceTopiaTest.java @@ -27,6 +27,7 @@ import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.referential.SpeciesDto; +import fr.ird.observe.services.dto.seine.TargetLengthDto; import fr.ird.observe.services.dto.seine.TargetSampleDto; import fr.ird.observe.services.service.AbstractServiceTopiaTest; import org.junit.Assert; @@ -82,7 +83,7 @@ public class TargetSampleServiceTopiaTest extends AbstractServiceTopiaTest { Assert.assertFalse(targetSampleDto.getDiscarded()); Assert.assertTrue(targetSampleDto.isTargetLengthEmpty()); - ReferenceSetDto<SpeciesDto> speciesDtoReferenceSetDto = formDto.getReferenceSetDto(SpeciesDto.class); + ReferenceSetDto<SpeciesDto> speciesDtoReferenceSetDto = formDto.getReferenceSetDto(SpeciesDto.class, TargetLengthDto.PROPERTY_SPECIES); Assert.assertEquals(1, speciesDtoReferenceSetDto.sizeReference()); ReferenceDto referenceDto = speciesDtoReferenceSetDto.getReference(0); Assert.assertEquals("fr.ird.observe.entities.referentiel.Species#1239832685474#0.8943253454598569", referenceDto.getId()); diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineGearUseServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineGearUseServiceTopiaTest.java index 4fbbeae..640c879 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineGearUseServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineGearUseServiceTopiaTest.java @@ -22,7 +22,6 @@ package fr.ird.observe.services.service.seine; * #L% */ -import com.google.common.collect.Collections2; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; import fr.ird.observe.entities.seine.GearUseFeaturesMeasurementSeine; @@ -43,7 +42,6 @@ import org.junit.Assert; import org.junit.Test; import org.nuiton.topia.persistence.TopiaEntities; -import java.util.Collection; import java.util.Set; /** @@ -116,7 +114,7 @@ public class TripSeineGearUseServiceTopiaTest extends AbstractServiceTopiaTest { Assert.assertNotNull(formDto.getLabels()); - Collection<Class> types = Collections2.transform(formDto.getLabels(), ReferenceSetDtos.getTypeFunction()); + Set<Class<?>> types = ReferenceSetDtos.getTypes(formDto.getLabels()); Assert.assertTrue(types.contains(GearDto.class)); Assert.assertTrue(types.contains(GearCaracteristicDto.class)); Assert.assertEquals(2, formDto.sizeLabels()); @@ -163,7 +161,7 @@ public class TripSeineGearUseServiceTopiaTest extends AbstractServiceTopiaTest { Assert.assertNotNull(formDto.getLabels()); - Collection<Class> types = Collections2.transform(formDto.getLabels(), ReferenceSetDtos.getTypeFunction()); + Set<Class<?>> types = ReferenceSetDtos.getTypes(formDto.getLabels()); Assert.assertTrue(types.contains(GearDto.class)); Assert.assertTrue(types.contains(GearCaracteristicDto.class)); Assert.assertEquals(2, formDto.sizeLabels()); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit fcb72be7f24060bf5453326e49156c8c8945f311 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 20 10:16:41 2015 +0100 Nommer le label set --- .../fr/ird/observe/services/service/seine/TargetSampleServiceTopia.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TargetSampleServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TargetSampleServiceTopia.java index d651f02..a55f943 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TargetSampleServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TargetSampleServiceTopia.java @@ -126,7 +126,7 @@ public class TargetSampleServiceTopia extends ObserveServiceTopia implements Tar speciesRefs.add(entityToReferenceDto(SpeciesDto.class, species)); } - ReferenceSetDto<SpeciesDto> speciesRreferenceSetDto = form.getReferenceSetDto(SpeciesDto.class); + ReferenceSetDto<SpeciesDto> speciesRreferenceSetDto = form.getReferenceSetDto(SpeciesDto.class, TargetLengthDto.PROPERTY_SPECIES); speciesRreferenceSetDto.setReference(speciesRefs); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit f5c2c3c8badb22f8fe52b58b51a565ff9cb34d05 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 20 10:17:00 2015 +0100 Fix api --- .../java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIHandler.java index 9f591c6..0392ab5 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIHandler.java @@ -125,7 +125,7 @@ public class RoutesUIHandler extends ContentListUIHandler<TripSeineDto, RouteDto @Override protected void loadParentBean() { TripSeineService service = ObserveSwingApplicationContext.get().newService(TripSeineService.class); - FormDto<TripSeineDto> tripSeineDtoFormDto = service.loadToEdit(getSelectedParentId()); + FormDto<TripSeineDto> tripSeineDtoFormDto = service.loadForm(getSelectedParentId()); getModel().setFormDto(tripSeineDtoFormDto); TripSeineDtos.copyTripSeineDto(tripSeineDtoFormDto.getForm(), getBean()); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit 5156de30d14da59f1545a7039925e1e662dcbba4 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 20 10:42:05 2015 +0100 Fix code after merge --- .../actions/shared/MoveTripLonglinesUIAction.java | 10 ++---- .../ui/actions/shared/MoveTripSeinesUIAction.java | 8 +---- .../ui/actions/shared/MoveTripsUIAction.java | 2 +- .../ird/observe/ui/content/list/ContentListUI.jaxx | 4 +-- .../ui/content/list/ContentListUIModel.java | 16 +++++----- .../list/impl/longline/TripLonglinesUIModel.java | 25 --------------- .../content/list/impl/seine/TripSeinesUIModel.java | 36 ---------------------- 7 files changed, 14 insertions(+), 87 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripLonglinesUIAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripLonglinesUIAction.java index 57003e4..35a9577 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripLonglinesUIAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripLonglinesUIAction.java @@ -3,6 +3,7 @@ package fr.ird.observe.ui.actions.shared; import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.constants.GearType; +import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.service.longline.TripLonglineService; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.content.ContentUI; @@ -18,7 +19,7 @@ import java.util.List; * @author Kevin Morin (Code Lutin) * @since 5.0 */ -public class MoveTripLonglinesUIAction extends MoveTripsUIAction { +public class MoveTripLonglinesUIAction extends MoveTripsUIAction<TripLonglineDto> { private static final long serialVersionUID = 1L; @@ -41,13 +42,6 @@ public class MoveTripLonglinesUIAction extends MoveTripsUIAction { } @Override - protected List<ReferenceDto<TripLonglineDto>> getSelectedDatas(ContentUI<?> ui) { - TripLonglinesUI tripLonglinesUI = (TripLonglinesUI) ui; - TripLonglinesUIModel model = tripLonglinesUI.getModel(); - return model.getSelectedDatas(); - } - - @Override protected GearType getGearType(ContentUI<?> ui) { return GearType.longline; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripSeinesUIAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripSeinesUIAction.java index 1cf53db..7981613 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripSeinesUIAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripSeinesUIAction.java @@ -3,6 +3,7 @@ package fr.ird.observe.ui.actions.shared; import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.constants.GearType; +import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.services.service.seine.TripSeineService; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.content.ContentUI; @@ -41,13 +42,6 @@ public class MoveTripSeinesUIAction extends MoveTripsUIAction<TripSeineDto> { } @Override - protected List<ReferenceDto<TripSeineDto>> getSelectedDatas(ContentUI<?> ui) { - TripSeinesUI tripSeinesUI = (TripSeinesUI) ui; - TripSeinesUIModel model = tripSeinesUI.getModel(); - return model.getSelectedDatas(); - } - - @Override protected GearType getGearType(ContentUI<?> ui) { return GearType.seine; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripsUIAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripsUIAction.java index 17a7b9c..809ebea 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripsUIAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripsUIAction.java @@ -24,6 +24,7 @@ package fr.ird.observe.ui.actions.shared; import com.google.common.collect.Lists; import fr.ird.observe.ObserveOpenDataManager; import fr.ird.observe.ObserveSwingApplicationContext; +import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.IdDtos; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.ReferenceDtos; @@ -45,7 +46,6 @@ import javax.swing.JOptionPane; import javax.swing.SwingUtilities; import java.awt.event.ActionEvent; import java.util.ArrayList; -import java.util.LinkedHashSet; import java.util.List; import static org.nuiton.i18n.I18n.n; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUI.jaxx index 6180809..42adbab 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUI.jaxx @@ -61,8 +61,8 @@ public final ReferenceDto<C> getSelectedData() { return (ReferenceDto<C>) getSelectedBean(list); } -public final List<ReferenceDto> getSelectedDatas() { - return (List<ReferenceDto>) list.getSelectedValuesList(); +public final List<ReferenceDto<C>> getSelectedDatas() { + return (List<ReferenceDto<C>>) list.getSelectedValuesList(); } ]]></script> diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUIModel.java index df7ffc2..e3a1958 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUIModel.java @@ -55,10 +55,10 @@ public abstract class ContentListUIModel<E extends IdDto, C extends IdDto> exten protected final Class<C> childType; /** liste des entites */ - protected List<ReferenceDto> data; + protected List<ReferenceDto<C>> data; /** entités sélectionnées dans la liste */ - protected List<ReferenceDto> selectedDatas; + protected List<ReferenceDto<C>> selectedDatas; /** un drapeau pour savoir si on peut reouvrir l'un des données de la liste. */ protected boolean canReopen; @@ -72,11 +72,11 @@ public abstract class ContentListUIModel<E extends IdDto, C extends IdDto> exten return childType; } - public List<ReferenceDto> getData() { + public List<ReferenceDto<C>> getData() { return data; } - public void setData(List<ReferenceDto> data) { + public void setData(List<ReferenceDto<C>> data) { boolean wasEmpty = isEmpty(); this.data = data; // on force toujours la propagation de la liste @@ -85,16 +85,16 @@ public abstract class ContentListUIModel<E extends IdDto, C extends IdDto> exten setSelectedDatas(null); } - public ReferenceDto getSelectedData() { + public ReferenceDto<C> getSelectedData() { return CollectionUtils.isNotEmpty(selectedDatas) ? selectedDatas.get(0) : null; } - public List<ReferenceDto> getSelectedDatas() { + public List<ReferenceDto<C>> getSelectedDatas() { return selectedDatas; } - public void setSelectedDatas(List<ReferenceDto> selectedDatas) { - List<ReferenceDto> old = getSelectedDatas(); + public void setSelectedDatas(List<ReferenceDto<C>> selectedDatas) { + List<ReferenceDto<C>> old = getSelectedDatas(); this.selectedDatas = selectedDatas; if (log.isDebugEnabled()) { log.debug("New selected datas : " + selectedDatas); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIModel.java index 332347c..d81c3fe 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIModel.java @@ -26,8 +26,6 @@ import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.ui.content.list.ContentListUIModel; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import java.util.List; @@ -41,33 +39,10 @@ public class TripLonglinesUIModel extends ContentListUIModel<ProgramDto, TripLon private static final long serialVersionUID = 1L; - /** - * Logger. - */ - private static final Log log = LogFactory.getLog(TripLonglinesUIModel.class); - - public static final String PROPERTY_SELECTED_DATAS = "selectedDatas"; - - /** entité sélectionnée dans la liste */ - protected List<ReferenceDto<TripLonglineDto>> selectedDatas; - public TripLonglinesUIModel() { super(ProgramDto.class, TripLonglineDto.class); } - public List<ReferenceDto<TripLonglineDto>> getSelectedDatas() { - return selectedDatas; - } - - public void setSelectedDatas(List<ReferenceDto<TripLonglineDto>> selectedDatas) { - List<ReferenceDto<TripLonglineDto>> old = getSelectedDatas(); - this.selectedDatas = selectedDatas; - if (log.isDebugEnabled()) { - log.debug("New selected datas : " + selectedDatas); - } - firePropertyChange(PROPERTY_SELECTED_DATAS, old, selectedDatas); - } - @Override public void setData(List<ReferenceDto<TripLonglineDto>> data) { super.setData(data); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIModel.java index 28d8952..f28ed51 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIModel.java @@ -25,8 +25,6 @@ package fr.ird.observe.ui.content.list.impl.seine; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.ui.content.list.ContentListUIModel; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; /** * Created on 9/26/14. @@ -38,42 +36,8 @@ public class TripSeinesUIModel extends ContentListUIModel<ProgramDto, TripSeineD private static final long serialVersionUID = 1L; - /** - * Logger. - */ - private static final Log log = LogFactory.getLog(TripSeinesUIModel.class); - -<<<<<<< 91f61e4c040cb3dcca05b04dcccd582b94a3145c -======= - public static final String PROPERTY_SELECTED_DATAS = "selectedDatas"; - - /** entité sélectionnée dans la liste */ - protected List<ReferenceDto<TripSeineDto>> selectedDatas; - ->>>>>>> Début de revue du code de l'application swing : y'a du boulot... public TripSeinesUIModel() { super(ProgramDto.class, TripSeineDto.class); } -<<<<<<< 91f61e4c040cb3dcca05b04dcccd582b94a3145c -======= - public List<ReferenceDto<TripSeineDto>> getSelectedDatas() { - return selectedDatas; - } - - public void setSelectedDatas(List<ReferenceDto<TripSeineDto>> selectedDatas) { - List<ReferenceDto<TripSeineDto>> old = getSelectedDatas(); - this.selectedDatas = selectedDatas; - if (log.isDebugEnabled()) { - log.debug("New selected datas : " + selectedDatas); - } - firePropertyChange(PROPERTY_SELECTED_DATAS, old, selectedDatas); - } - - @Override - public void setData(List<ReferenceDto<TripSeineDto>> data) { - super.setData(data); - setSelectedDatas(null); - } ->>>>>>> Début de revue du code de l'application swing : y'a du boulot... } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit 9e740bd4ab4a3a06506f1822aa95d574fe96ec5b Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 20 10:44:33 2015 +0100 Fix some other tests --- .../fr/ird/observe/services/service/AbstractServiceRestTest.java | 6 ++---- .../fr/ird/observe/services/service/ReferentialServiceRestTest.java | 2 +- .../services/service/seine/TripSeineGearUseServiceRestTest.java | 4 ++-- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/observe-services-rest/src/test/java/fr/ird/observe/services/service/AbstractServiceRestTest.java b/observe-services-rest/src/test/java/fr/ird/observe/services/service/AbstractServiceRestTest.java index 285759d..d26f735 100644 --- a/observe-services-rest/src/test/java/fr/ird/observe/services/service/AbstractServiceRestTest.java +++ b/observe-services-rest/src/test/java/fr/ird/observe/services/service/AbstractServiceRestTest.java @@ -22,8 +22,6 @@ package fr.ird.observe.services.service; * #L% */ -import com.google.common.collect.Collections2; -import com.google.common.collect.Sets; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.TestClassResource; import fr.ird.observe.services.TestMethodResource; @@ -89,7 +87,7 @@ public abstract class AbstractServiceRestTest { Assert.assertNotNull(formDto.getLabels()); - Set<Class> types = Sets.newLinkedHashSet(Collections2.transform(formDto.getLabels(), ReferenceSetDtos.getTypeFunction())); + Set<Class<?>> types = ReferenceSetDtos.getTypes(formDto.getLabels()); Assert.assertEquals(expectedTypes.length, types.size()); @@ -109,7 +107,7 @@ public abstract class AbstractServiceRestTest { Assert.assertNotNull(formDto.getLabels()); - Set<Class> types = Sets.newLinkedHashSet(Collections2.transform(formDto.getLabels(), ReferenceSetDtos.getTypeFunction())); + Set<Class<?>> types = ReferenceSetDtos.getTypes(formDto.getLabels()); Assert.assertEquals(expectedTypes.length, types.size()); diff --git a/observe-services-rest/src/test/java/fr/ird/observe/services/service/ReferentialServiceRestTest.java b/observe-services-rest/src/test/java/fr/ird/observe/services/service/ReferentialServiceRestTest.java index 5fd96a9..66b2c99 100644 --- a/observe-services-rest/src/test/java/fr/ird/observe/services/service/ReferentialServiceRestTest.java +++ b/observe-services-rest/src/test/java/fr/ird/observe/services/service/ReferentialServiceRestTest.java @@ -43,7 +43,7 @@ public class ReferentialServiceRestTest { Assert.assertNotNull(referentialReferenceSet); - LinkedHashSet<ReferenceDto> reference = referentialReferenceSet.getReference(); + LinkedHashSet<ReferenceDto<ProgramDto>> reference = referentialReferenceSet.getReference(); Assert.assertNotNull(reference); Assert.assertEquals(28, reference.size()); diff --git a/observe-services-rest/src/test/java/fr/ird/observe/services/service/seine/TripSeineGearUseServiceRestTest.java b/observe-services-rest/src/test/java/fr/ird/observe/services/service/seine/TripSeineGearUseServiceRestTest.java index 1cacd88..93df71e 100644 --- a/observe-services-rest/src/test/java/fr/ird/observe/services/service/seine/TripSeineGearUseServiceRestTest.java +++ b/observe-services-rest/src/test/java/fr/ird/observe/services/service/seine/TripSeineGearUseServiceRestTest.java @@ -62,7 +62,7 @@ public class TripSeineGearUseServiceRestTest extends AbstractServiceRestTest { ReferenceSetDto<TripSeineDto> allTripSeine = newService(TripSeineService.class).getAllTripSeine(); - Map<String, ReferenceDto> tripIds = IdDtos.splitById(allTripSeine.getReference()); + Map<String, ReferenceDto<TripSeineDto>> tripIds = IdDtos.splitById(allTripSeine.getReference()); Assume.assumeTrue("Marée " + TRIP_SEINE_ID_1 + " non trouvée dans cette base. Test annulé", tripIds.containsKey(TRIP_SEINE_ID_1)); FormDto<TripSeineGearUseDto> formDto = service.loadToRead(TRIP_SEINE_ID_1); @@ -124,7 +124,7 @@ public class TripSeineGearUseServiceRestTest extends AbstractServiceRestTest { ReferenceSetDto<TripSeineDto> allTripSeine = newService(TripSeineService.class).getAllTripSeine(); - Map<String, ReferenceDto> tripIds = IdDtos.splitById(allTripSeine.getReference()); + Map<String, ReferenceDto<TripSeineDto>> tripIds = IdDtos.splitById(allTripSeine.getReference()); Assume.assumeTrue("Marée " + TRIP_SEINE_ID_1 + " non trouvée dans cette base. Test annulé", tripIds.containsKey(TRIP_SEINE_ID_1)); FormDto<TripSeineGearUseDto> formDto = service.loadToEdit(TRIP_SEINE_ID_1); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
participants (1)
-
codelutin.com scm