branch develop updated (0b1e832 -> a4bb288)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository observe. See http://git.codelutin.com/observe.git from 0b1e832 Mise en place des modules de service (termine #7457) Merge branch 'feature/7457' into develop new ec6bbe3 Modèle Seine : remplacer les associations vers les objets du referentiel par des associations vers des objets de type referentialLabel (refs #7458). new 6f6346e Renommage en dto + génération du modèle Longline new a19edd4 Modèle Seine : correction de la generation des DTO (refs #7458). new 24ae978 fix tag values new 7a163b9 Dto décrivant les formulaire (refs #7458). new c432553 fix properties (refs #7458). new 80044c4 Simplification des configurations de modele + correction de certains noms de dtos new 6827738 Ajout d'un constructeur de ReferentielLabelDto mais ausii pour les FormDto new 01bfc95 Deplacement d'un test new bf2a9f7 Ajout d'un builder de ReferentialDto à partir d'une entité new ffa3d72 Suppression des traductions sur les constantes + prise en compte dans le builder de Dto new 4086edc add activitySeine Services (refs #7458). new a7d0bd5 typage du labelset new ad485d1 Ajout dun premier binding pour les RTP new 8683d26 Premiers tests pour ReferentialServiceTopia new fe6cdca on desactive pour le moment le module rest) new 497ba00 Gestion de la locale des référentiels new 6c688a1 Ajout commentaires sur un test new 5eda038 Correction d'un test + optimisation des dépendances new c6e7300 Correction des liens sur certains référentiels + tester le chargement de tous les référentiels new 6e008ba Pour les référentiels en lecture seule, on ne prend que la label des références rencontrées new ea86ae6 Ajout d'une exception lorsqu'on a pas pas trouvé une donnée + test de suppression new d457cd3 update model seine dto (refs #7458). new dc03b68 update model longline dto (refs #7458). new 2f63e0b On retourne des universes de références vides en mode lecture new a5f7ff9 Renommage Label en Reference, introduction de Reference ReferentialReference new ccd5a13 add seine services dto (refs #7458). new 13e7ada add commentable dto (refs #7458). new 0d3aee4 add set seine service and fix floating Object (refs #7458). new 1a129f2 add school estimate service (refs #7458). new 9536321 Suppression d'une entité non voulue (booleanDto) new a8f3901 Mise en place d'une classe pour initialiser tous les dto du modèle new 92c92c9 Utilisation des binders pour effectuer les créations de dto new 72ad572 Réorganisation ordre des méthodes new 655d35c add target catch service (refs #7458). new aedcaa3 add non target catch service (refs #7458). new f276030 add taget and non target sample service (refs #7458). new 7f8a9fc add route service (refs #7458). new 983991b Correction to context to binder new 1068bbd Ajout du type sur une référence new bd5b868 Création d'un paquetage builder pour y mettre tous les types de builders new ebf58da Deplacement de code réutilisable dans le service de base + mise en place de la transformation dto vers entite (à finir) new 65741be add openable entity and start dtosInitializer (refs #7458). new d07d9b2 Permettre de générer des binders avec des types différents new 3ae2785 Utilisation de la nouvelle API sur les binder pour faire les transformations de type new c0295ec correction du nom d'une propriété new 6609e00 add some service for longline (refs #7458). new 57c39cc debut de services rest + restructuration des paquetages new fb5a769 add catche longline service (refs #7458). new a4bb288 Merge branch 'feature/7458' into develop The 50 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 a4bb28877abea83f3b676d21775a6f7f01f4a3e0 Merge: 0b1e832 fb5a769 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Aug 20 09:43:51 2015 +0200 Merge branch 'feature/7458' into develop commit fb5a769f95f8622289ff3a0d0a69b4bc84fad95e Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Aug 20 09:42:07 2015 +0200 add catche longline service (refs #7458). commit 57c39cc277aba366fc6dd24cae60f3a41a01903a Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Aug 20 09:25:53 2015 +0200 debut de services rest + restructuration des paquetages commit 6609e00fa0130dfccd104dd32fd44a78518209ea Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Aug 19 17:34:02 2015 +0200 add some service for longline (refs #7458). commit c0295ec93fb6a26ac63c0c1e328b5f2f2851e9f2 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 16:06:42 2015 +0200 correction du nom d'une propriété commit 3ae2785dbe55ef96db002e542a2e36d7685446d5 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 16:06:16 2015 +0200 Utilisation de la nouvelle API sur les binder pour faire les transformations de type commit d07d9b2d5c8b0c4e593bdfe5651759b33d036830 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 14:56:47 2015 +0200 Permettre de générer des binders avec des types différents commit 65741bea8d0b85c598b59bfa4479d760d6fc12c1 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Aug 19 14:39:48 2015 +0200 add openable entity and start dtosInitializer (refs #7458). commit ebf58daf77949cafa19b3d75218277d58a9f6f4a Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 14:05:04 2015 +0200 Deplacement de code réutilisable dans le service de base + mise en place de la transformation dto vers entite (à finir) commit bd5b868e25ff6701fda79304400ca9b168bfcd59 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 14:04:15 2015 +0200 Création d'un paquetage builder pour y mettre tous les types de builders commit 1068bbd0eb79acf93ef121598cdf2a6aabbd9403 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 14:03:14 2015 +0200 Ajout du type sur une référence commit 983991baaf9f300841899eb6d327739abd967a5d Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 14:02:09 2015 +0200 Correction to context to binder commit 7f8a9fc43a95be3b88b90da78c92827fec28fcde Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Aug 19 13:42:00 2015 +0200 add route service (refs #7458). commit f27603058c768fb368d6ce571e3a6dcc697b851f Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Aug 19 12:16:01 2015 +0200 add taget and non target sample service (refs #7458). commit aedcaa30783bb84631a8874e6be8580bbee60f1c Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Aug 19 11:21:43 2015 +0200 add non target catch service (refs #7458). commit 655d35cbcf0eabd62e55a3a31dca53306a4bcc69 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Aug 19 10:52:26 2015 +0200 add target catch service (refs #7458). commit 72ad572dafd1f5184f10c24a3e5ed2f42a10ad76 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 10:48:18 2015 +0200 Réorganisation ordre des méthodes commit 92c92c9ab2a7406f1e4752a2ca4bd198ef78683a Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 10:33:56 2015 +0200 Utilisation des binders pour effectuer les créations de dto commit a8f3901d865d49b26668c1f17eaacefa173da4d4 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 10:33:32 2015 +0200 Mise en place d'une classe pour initialiser tous les dto du modèle commit 9536321da00442bd6fffac738d1cf809bb6bbe68 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 10:32:28 2015 +0200 Suppression d'une entité non voulue (booleanDto) commit 1a129f2c1eddabdbee342aabca9c8c96b8955aed Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Aug 19 10:27:16 2015 +0200 add school estimate service (refs #7458). commit 0d3aee4ced8a1065685eddf9939c7c59434d6c32 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Aug 19 10:09:22 2015 +0200 add set seine service and fix floating Object (refs #7458). commit 13e7ada90bd1fb51ad5818e95e620f0f1fad3a2d Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Aug 19 09:25:10 2015 +0200 add commentable dto (refs #7458). commit ccd5a13386d0597c618c43ed9a168aad0f6fbf34 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Tue Aug 18 18:09:29 2015 +0200 add seine services dto (refs #7458). commit a5f7ff953c6110db69e554518274f93666133884 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 18 16:36:49 2015 +0200 Renommage Label en Reference, introduction de Reference ReferentialReference commit 2f63e0b41cfc83a31580c4796d4f4c7b3cc0d2df Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 18 15:01:47 2015 +0200 On retourne des universes de références vides en mode lecture commit dc03b68ee60f7bf2382db4e0ab5bd4463f51d549 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Tue Aug 18 16:31:28 2015 +0200 update model longline dto (refs #7458). commit d457cd30d07e42ec980aacb343fff5cb5156cf15 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Tue Aug 18 16:19:05 2015 +0200 update model seine dto (refs #7458). commit ea86ae6913b46c64f4b9be640feb55014525a710 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 18 14:22:47 2015 +0200 Ajout d'une exception lorsqu'on a pas pas trouvé une donnée + test de suppression commit 6e008ba2a5289fe5b65130cb15598b8bbebe6dae Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 18 13:36:19 2015 +0200 Pour les référentiels en lecture seule, on ne prend que la label des références rencontrées commit c6e7300cad250e52f3a0e038dacef38745d730af Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 18 13:18:53 2015 +0200 Correction des liens sur certains référentiels + tester le chargement de tous les référentiels commit 5eda0387cd3024c01eeba176fb3c30db5dcbc347 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 18 12:28:55 2015 +0200 Correction d'un test + optimisation des dépendances commit 6c688a16bb382ff3a04948153893f30c8cd18dce Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 18 12:23:13 2015 +0200 Ajout commentaires sur un test commit 497ba0087fc05db383796d1ad532ce409989b592 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 18 12:19:42 2015 +0200 Gestion de la locale des référentiels commit fe6cdca8f7d7b60c23345c4a518705e88f8b7421 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 18 11:07:32 2015 +0200 on desactive pour le moment le module rest) commit 8683d266283c84244fde46a57b5693f6f2cd7534 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 18 10:57:13 2015 +0200 Premiers tests pour ReferentialServiceTopia commit ad485d156bb9d1342776560332a118203a667593 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 18 10:56:36 2015 +0200 Ajout dun premier binding pour les RTP commit a7d0bd51fbe8e816aa62025cf3687fc2ba774b29 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 18 09:59:18 2015 +0200 typage du labelset commit 4086edc66eba55e764634f449f607d6830fc6388 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Tue Aug 18 10:48:55 2015 +0200 add activitySeine Services (refs #7458). commit ffa3d7213f8d389129bdce70cb5cc29d40abd4ef Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 18 09:16:35 2015 +0200 Suppression des traductions sur les constantes + prise en compte dans le builder de Dto commit bf2a9f7af94bd58e294ba09f101c9927ac22cf5b Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 18 08:39:23 2015 +0200 Ajout d'un builder de ReferentialDto à partir d'une entité commit 01bfc953183ea34ca1dafcc7dc08c5d89fbf7633 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 18 08:38:12 2015 +0200 Deplacement d'un test commit 682773800442901e3c98af3b2c6084aa2e9c9960 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 18 08:37:19 2015 +0200 Ajout d'un constructeur de ReferentielLabelDto mais ausii pour les FormDto commit 80044c4cfe3b4bacf378d0c77caaf12ca0f3377a Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 18 08:33:47 2015 +0200 Simplification des configurations de modele + correction de certains noms de dtos commit c432553eec78ca869fa2662834e7dd5fa659c36d Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Mon Aug 17 18:26:21 2015 +0200 fix properties (refs #7458). commit 7a163b9cf9f1a2c9dd8fcfab81a7f3762a28ecce Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Mon Aug 17 18:25:36 2015 +0200 Dto décrivant les formulaire (refs #7458). commit 24ae978df8a3e972b0a39eb9f9f410bf715e87e0 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Aug 17 16:43:45 2015 +0200 fix tag values commit a19edd40a9439e85db460f7769b7d83ee6622ee3 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Mon Aug 17 16:38:41 2015 +0200 Modèle Seine : correction de la generation des DTO (refs #7458). commit 6f6346e068dca2ad0040e7d392b475dd26b1c13f Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Aug 17 16:12:45 2015 +0200 Renommage en dto + génération du modèle Longline commit ec6bbe32b7aacf805d847afe48c776239dbf85f4 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Mon Aug 17 15:57:00 2015 +0200 Modèle Seine : remplacer les associations vers les objets du referentiel par des associations vers des objets de type referentialLabel (refs #7458). Summary of changes: observe-services-api/pom.xml | 18 + .../observe/services/ObserveServiceContext.java | 4 +- .../observe/services/ObserveServiceFactory.java | 4 +- ...xt.java => ObserveDataSourceConfiguration.java} | 4 +- .../services/ObserveServiceApplicationContext.java | 24 + .../observe/services/ObserveServiceContext.java | 8 + .../observe/services/ObserveServiceFactory.java | 4 +- .../services/ObserveServiceFactorySupport.java | 4 +- .../services/ObserveServiceMainFactory.java | 30 +- .../services/service/DataNotFoundException.java | 30 + .../services/service/ReferentialService.java | 20 +- .../longline/ActivityLongLineEncouterService.java | 20 + .../ActivityLongLineSensorUsedService.java | 21 + .../service/longline/ActivitySeineService.java | 29 + .../service/longline/CatchLonglineService.java | 23 + .../longline/GearUseFeaturesLonglineService.java | 30 + .../SetLonglineDetailCompositionService.java | 20 + .../SetLonglineGlobalCompositionService.java | 20 + .../service/longline/SetLonglineService.java | 28 + .../service/longline/TripLonglineService.java | 30 + .../seine/ActivitySeineObservedSystemService.java | 20 + .../service/seine/ActivitySeineService.java | 29 + .../service/seine/FloatingObjectService.java | 30 + .../service/seine/GearUseFeaturesSeineService.java | 30 + .../service/seine/NonTargetCatchService.java | 19 + .../service/seine/NonTargetSampleService.java | 19 + .../seine/ObjectObservedSpeciesService.java | 20 + .../service/seine/ObjectSchoolEstimateService.java | 19 + .../services/service/seine/RouteService.java | 30 + .../service/seine/SchoolEstimateService.java | 20 + .../services/service/seine/SetSeineService.java | 28 + .../services/service/seine/TargetCatchService.java | 19 + .../service/seine/TargetSampleService.java | 20 + .../seine/TransmittingBuoyOperationService.java | 20 + .../services/service/seine/TripSeineService.java | 30 + .../services/FakeObserveServiceContext.java | 10 - .../services/FakeObserveServiceFactory.java | 19 - .../services/ObserveServiceMainFactoryTest.java | 23 - .../fr.ird.observe.services.ObserveServiceFactory | 1 - observe-services-model/pom.xml | 24 +- .../{model => dto}/AbstractObserveDto.java | 2 +- .../ReferentialFormDto.java => dto/FormDto.java} | 12 +- .../java/fr/ird/observe/services/dto/FormDtos.java | 24 + .../fr/ird/observe/services/dto/ReferenceDto.java | 51 + .../fr/ird/observe/services/dto/ReferenceDtos.java | 11 + .../ird/observe/services/dto/ReferenceSetDto.java | 17 + .../ird/observe/services/dto/ReferenceSetDtos.java | 20 + .../dto/ReferenceValueNotFoundException.java | 28 + .../{model => dto}/constants/GearType.java | 2 +- .../{model => dto}/constants/ReferenceStatus.java | 2 +- .../services/dto/constants/ReferentialLocale.java | 124 ++ .../seine/NonTargetCatchComputedValueSource.java | 52 + .../services/dto/constants/seine/Ownership.java | 51 + .../constants/seine/SchoolType.java} | 35 +- .../seine/TypeTransmittingBuoyOperation.java | 68 ++ .../dto/referential/ReferentialReferenceDto.java | 65 + .../dto/referential/ReferentialReferenceDtos.java | 18 + .../model/referential/ReferentialFormDtos.java | 15 - .../xmi/observe-services-dto-common.properties | 13 + .../src/main/xmi/observe-services-dto-common.zargo | Bin 0 -> 34074 bytes ...es => observe-services-dto-longline.properties} | 4 +- .../main/xmi/observe-services-dto-longline.zargo | Bin 0 -> 77309 bytes ...rties => observe-services-dto-seine.properties} | 4 +- .../src/main/xmi/observe-services-dto-seine.zargo | Bin 0 -> 54397 bytes .../xmi/observe-services-model-common.properties | 13 - .../main/xmi/observe-services-model-common.zargo | Bin 32880 -> 0 bytes .../main/xmi/observe-services-model-longline.zargo | Bin 96124 -> 0 bytes .../main/xmi/observe-services-model-seine.zargo | Bin 85518 -> 0 bytes .../LICENSE.txt | 0 .../README.txt | 0 .../pom.xml | 43 +- .../ObserveRestClientDataSourceConfiguration.java | 39 + .../rest/client/ObserveRestClientService.java | 23 + .../client/ObserveRestClientServiceContext.java | 38 + .../client/ObserveRestClientServiceFactory.java | 46 + .../service/ReferentialServiceRestClient.java | 54 + .../fr.ird.observe.services.ObserveServiceFactory | 1 + .../client/service/ReferentialServiceRestTest.java | 45 + .../src/test/resources/log4j.properties | 0 .../LICENSE.txt | 0 .../README.txt | 0 .../pom.xml | 59 +- .../wm/ObserveRestWebMotionApplicationContext.java | 81 ++ .../ObserveRestWebMotionApplicationListener.java | 42 + .../rest/wm/ObserveRestWebMotionController.java | 11 + .../rest/wm/ObserveRestWebMotionFilter.java | 55 + .../rest/wm/ObserveRestWebMotionJsonHelper.java | 130 ++ .../rest/wm/ObserveRestWebMotionRender.java | 52 + .../rest/wm/service/ReferentialServiceRest.java | 66 + .../src/main/resources/mapping | 12 + .../src/main/webapp/WEB-INF/web.xml | 25 + .../services/ObserveServiceContextRest.java | 10 - .../services/ObserveServiceFactoryRest.java | 33 - .../ird/observe/services/ObserveServiceRest.java | 17 - .../rest/wm/ObserveRestApplicationContext.java | 42 + .../rest/wm/ObserveRestApplicationListener.java | 42 + .../rest/wm/ObserveRestWebMotionFilter.java | 62 + .../services/service/ReferentialServiceRest.java | 58 - .../fr.ird.observe.services.ObserveServiceFactory | 1 - observe-services-rest/src/main/resources/mapping | 28 + .../src/main/webapp/WEB-INF/web.xml | 36 + .../referential/ReferentialServiceRestTest.java | 37 - observe-services-topia/pom.xml | 35 +- .../observe/services/AbstractObserveService.java | 5 +- .../services/ObserveServiceContextTopia.java | 33 - .../ird/observe/services/ObserveServiceTopia.java | 20 - .../services/service/ReferentialDtoBuilder.java | 171 --- .../services/service/ReferentialServiceTopia.java | 220 ---- .../observe/services/topia/ObserveDtoBinders.java | 39 + .../services/topia/ObserveDtosInitializer.java | 1262 ++++++++++++++++++++ .../services/topia/ObserveServiceTopia.java | 117 ++ .../topia/ObserveTopiaDataSourceConfiguration.java | 22 + .../services/topia/ObserveTopiaServiceContext.java | 54 + .../ObserveTopiaServiceFactory.java} | 44 +- .../services/topia/builder/DtoToEntityBuilder.java | 184 +++ .../services/topia/builder/EntityToDtoBuilder.java | 198 +++ .../topia/builder/EntityToReferenceDtoBuilder.java | 49 + .../EntityToReferentialReferenceDtoBuilder.java | 49 + .../topia/service/ReferentialServiceTopia.java | 138 +++ .../ActivitySeineObservedSystemServiceTopia.java | 27 + .../service/seine/ActivitySeineServiceTopia.java | 46 + .../service/seine/FloatingObjectServiceTopia.java | 46 + .../fr.ird.observe.services.ObserveServiceFactory | 2 +- .../service/ReferentialDtoBuilderTest.java | 72 -- .../referential/ReferentialServiceTopiaTest.java | 37 - .../service/topia/ApplicationContextResource.java | 83 ++ .../services/service/topia/DataSourceResource.java | 126 ++ .../topia/service/ReferentialServiceTopiaTest.java | 232 ++++ .../topia/builder/DtoToEntityBuilderTest.java | 117 ++ .../topia/builder/EntityToDtoBuilderTest.java | 130 ++ pom.xml | 53 +- 131 files changed, 5238 insertions(+), 993 deletions(-) copy observe-services-api/src/main/java/fr/ird/observe/services/{ObserveServiceContext.java => ObserveDataSourceConfiguration.java} (55%) create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceApplicationContext.java create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/service/DataNotFoundException.java create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineEncouterService.java create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineSensorUsedService.java create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivitySeineService.java create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/service/longline/CatchLonglineService.java create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/service/longline/GearUseFeaturesLonglineService.java create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineDetailCompositionService.java create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineGlobalCompositionService.java create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineService.java create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TripLonglineService.java create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineObservedSystemService.java create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineService.java create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/service/seine/FloatingObjectService.java create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineService.java create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetCatchService.java create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleService.java create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ObjectObservedSpeciesService.java create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ObjectSchoolEstimateService.java create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/service/seine/RouteService.java create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SchoolEstimateService.java create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SetSeineService.java create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetCatchService.java create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetSampleService.java create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TransmittingBuoyOperationService.java create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java delete mode 100644 observe-services-api/src/test/java/fr/ird/observe/services/FakeObserveServiceContext.java delete mode 100644 observe-services-api/src/test/java/fr/ird/observe/services/FakeObserveServiceFactory.java delete mode 100644 observe-services-api/src/test/java/fr/ird/observe/services/ObserveServiceMainFactoryTest.java delete mode 100644 observe-services-api/src/test/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory rename observe-services-model/src/main/java/fr/ird/observe/services/{model => dto}/AbstractObserveDto.java (95%) rename observe-services-model/src/main/java/fr/ird/observe/services/{model/referential/ReferentialFormDto.java => dto/FormDto.java} (61%) create mode 100644 observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDtos.java create mode 100644 observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceDto.java create mode 100644 observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceDtos.java create mode 100644 observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDto.java create mode 100644 observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDtos.java create mode 100644 observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceValueNotFoundException.java copy observe-services-model/src/main/java/fr/ird/observe/services/{model => dto}/constants/GearType.java (96%) rename observe-services-model/src/main/java/fr/ird/observe/services/{model => dto}/constants/ReferenceStatus.java (85%) create mode 100644 observe-services-model/src/main/java/fr/ird/observe/services/dto/constants/ReferentialLocale.java create mode 100644 observe-services-model/src/main/java/fr/ird/observe/services/dto/constants/seine/NonTargetCatchComputedValueSource.java create mode 100644 observe-services-model/src/main/java/fr/ird/observe/services/dto/constants/seine/Ownership.java rename observe-services-model/src/main/java/fr/ird/observe/services/{model/constants/GearType.java => dto/constants/seine/SchoolType.java} (55%) create mode 100644 observe-services-model/src/main/java/fr/ird/observe/services/dto/constants/seine/TypeTransmittingBuoyOperation.java create mode 100644 observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceDto.java create mode 100644 observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceDtos.java delete mode 100644 observe-services-model/src/main/java/fr/ird/observe/services/model/referential/ReferentialFormDtos.java create mode 100644 observe-services-model/src/main/xmi/observe-services-dto-common.properties create mode 100644 observe-services-model/src/main/xmi/observe-services-dto-common.zargo rename observe-services-model/src/main/xmi/{observe-services-model-longline.properties => observe-services-dto-longline.properties} (71%) create mode 100644 observe-services-model/src/main/xmi/observe-services-dto-longline.zargo rename observe-services-model/src/main/xmi/{observe-services-model-seine.properties => observe-services-dto-seine.properties} (71%) create mode 100644 observe-services-model/src/main/xmi/observe-services-dto-seine.zargo delete mode 100644 observe-services-model/src/main/xmi/observe-services-model-common.properties delete mode 100644 observe-services-model/src/main/xmi/observe-services-model-common.zargo delete mode 100644 observe-services-model/src/main/xmi/observe-services-model-longline.zargo delete mode 100644 observe-services-model/src/main/xmi/observe-services-model-seine.zargo rename {observe-services-rest => observe-services-rest-client}/LICENSE.txt (100%) rename {observe-services-rest => observe-services-rest-client}/README.txt (100%) copy {observe-services-rest => observe-services-rest-client}/pom.xml (61%) create mode 100644 observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientDataSourceConfiguration.java create mode 100644 observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientService.java create mode 100644 observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientServiceContext.java create mode 100644 observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientServiceFactory.java create mode 100644 observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/service/ReferentialServiceRestClient.java create mode 100644 observe-services-rest-client/src/main/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory create mode 100644 observe-services-rest-client/src/test/java/fr/ird/observe/services/rest/client/service/ReferentialServiceRestTest.java rename {observe-services-rest => observe-services-rest-client}/src/test/resources/log4j.properties (100%) copy {observe-validation => observe-services-rest-wm}/LICENSE.txt (100%) copy {observe-validation => observe-services-rest-wm}/README.txt (100%) rename {observe-services-rest => observe-services-rest-wm}/pom.xml (67%) create mode 100644 observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionApplicationContext.java create mode 100644 observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionApplicationListener.java create mode 100644 observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionController.java create mode 100644 observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionFilter.java create mode 100644 observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionJsonHelper.java create mode 100644 observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionRender.java create mode 100644 observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/service/ReferentialServiceRest.java create mode 100644 observe-services-rest-wm/src/main/resources/mapping create mode 100644 observe-services-rest-wm/src/main/webapp/WEB-INF/web.xml delete mode 100644 observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceContextRest.java delete mode 100644 observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java delete mode 100644 observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceRest.java create mode 100644 observe-services-rest/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestApplicationContext.java create mode 100644 observe-services-rest/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestApplicationListener.java create mode 100644 observe-services-rest/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionFilter.java delete mode 100644 observe-services-rest/src/main/java/fr/ird/observe/services/service/ReferentialServiceRest.java delete mode 100644 observe-services-rest/src/main/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory create mode 100644 observe-services-rest/src/main/resources/mapping create mode 100644 observe-services-rest/src/main/webapp/WEB-INF/web.xml delete mode 100644 observe-services-rest/src/test/java/fr/ird/observe/services/service/referential/ReferentialServiceRestTest.java delete mode 100644 observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceContextTopia.java delete mode 100644 observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java delete mode 100644 observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialDtoBuilder.java delete mode 100644 observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java create mode 100644 observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveDtoBinders.java create mode 100644 observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveDtosInitializer.java create mode 100644 observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceTopia.java create mode 100644 observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaDataSourceConfiguration.java create mode 100644 observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaServiceContext.java rename observe-services-topia/src/main/java/fr/ird/observe/services/{ObserveServiceFactoryTopia.java => topia/ObserveTopiaServiceFactory.java} (64%) create mode 100644 observe-services-topia/src/main/java/fr/ird/observe/services/topia/builder/DtoToEntityBuilder.java create mode 100644 observe-services-topia/src/main/java/fr/ird/observe/services/topia/builder/EntityToDtoBuilder.java create mode 100644 observe-services-topia/src/main/java/fr/ird/observe/services/topia/builder/EntityToReferenceDtoBuilder.java create mode 100644 observe-services-topia/src/main/java/fr/ird/observe/services/topia/builder/EntityToReferentialReferenceDtoBuilder.java create mode 100644 observe-services-topia/src/main/java/fr/ird/observe/services/topia/service/ReferentialServiceTopia.java create mode 100644 observe-services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/ActivitySeineObservedSystemServiceTopia.java create mode 100644 observe-services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/ActivitySeineServiceTopia.java create mode 100644 observe-services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/FloatingObjectServiceTopia.java delete mode 100644 observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialDtoBuilderTest.java delete mode 100644 observe-services-topia/src/test/java/fr/ird/observe/services/service/referential/ReferentialServiceTopiaTest.java create mode 100644 observe-services-topia/src/test/java/fr/ird/observe/services/service/topia/ApplicationContextResource.java create mode 100644 observe-services-topia/src/test/java/fr/ird/observe/services/service/topia/DataSourceResource.java create mode 100644 observe-services-topia/src/test/java/fr/ird/observe/services/service/topia/service/ReferentialServiceTopiaTest.java create mode 100644 observe-services-topia/src/test/java/fr/ird/observe/services/topia/builder/DtoToEntityBuilderTest.java create mode 100644 observe-services-topia/src/test/java/fr/ird/observe/services/topia/builder/EntityToDtoBuilderTest.java -- 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 develop in repository observe. See http://git.codelutin.com/observe.git commit ec6bbe32b7aacf805d847afe48c776239dbf85f4 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Mon Aug 17 15:57:00 2015 +0200 Modèle Seine : remplacer les associations vers les objets du referentiel par des associations vers des objets de type referentialLabel (refs #7458). --- observe-services-model/pom.xml | 2 +- ...properties => observe-services-dto-seine.properties} | 0 .../src/main/xmi/observe-services-dto-seine.zargo | Bin 0 -> 64678 bytes .../src/main/xmi/observe-services-model-seine.zargo | Bin 85518 -> 0 bytes 4 files changed, 1 insertion(+), 1 deletion(-) diff --git a/observe-services-model/pom.xml b/observe-services-model/pom.xml index 60f548d..d4960b7 100644 --- a/observe-services-model/pom.xml +++ b/observe-services-model/pom.xml @@ -108,7 +108,7 @@ <configuration> <inputs> <input>zargo:src/main/xmi:observe-services-model-common.zargo</input> - <!--<input>zargo:src/main/xmi:observe-services-model-seine.zargo</input>--> + <!--<input>zargo:src/main/xmi:observe-services-dto-seine.zargo</input>--> <!--<input>zargo:src/main/xmi:observe-services-model-longline.zargo</input>--> </inputs> <resolver>org.nuiton.util.FasterCachedResourceResolver</resolver> diff --git a/observe-services-model/src/main/xmi/observe-services-model-seine.properties b/observe-services-model/src/main/xmi/observe-services-dto-seine.properties similarity index 100% rename from observe-services-model/src/main/xmi/observe-services-model-seine.properties rename to observe-services-model/src/main/xmi/observe-services-dto-seine.properties diff --git a/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo b/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo new file mode 100644 index 0000000..f59f983 Binary files /dev/null and b/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo differ diff --git a/observe-services-model/src/main/xmi/observe-services-model-seine.zargo b/observe-services-model/src/main/xmi/observe-services-model-seine.zargo deleted file mode 100644 index bfe6940..0000000 Binary files a/observe-services-model/src/main/xmi/observe-services-model-seine.zargo and /dev/null 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 develop in repository observe. See http://git.codelutin.com/observe.git commit 6f6346e068dca2ad0040e7d392b475dd26b1c13f Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Aug 17 16:12:45 2015 +0200 Renommage en dto + génération du modèle Longline --- .../services/service/ReferentialService.java | 6 +-- observe-services-model/pom.xml | 12 +++--- .../{model => dto}/AbstractObserveDto.java | 2 +- .../{model => dto}/constants/GearType.java | 2 +- .../{model => dto}/constants/ReferenceStatus.java | 2 +- .../referential/ReferentialFormDto.java | 2 +- .../referential/ReferentialFormDtos.java | 2 +- .../xmi/observe-services-dto-common.properties | 13 ++++++ ...mon.zargo => observe-services-dto-common.zargo} | Bin 32880 -> 32764 bytes .../xmi/observe-services-dto-longline.properties | 11 ++++++ .../main/xmi/observe-services-dto-longline.zargo | Bin 0 -> 69590 bytes .../main/xmi/observe-services-dto-seine.properties | 5 ++- .../xmi/observe-services-model-common.properties | 13 ------ .../xmi/observe-services-model-longline.properties | 7 ---- .../main/xmi/observe-services-model-longline.zargo | Bin 96124 -> 0 bytes .../services/service/ReferentialServiceRest.java | 6 +-- .../referential/ReferentialServiceRestTest.java | 4 +- .../services/service/ReferentialDtoBuilder.java | 10 ++--- .../services/service/ReferentialServiceTopia.java | 44 ++++++++++----------- .../service/ReferentialDtoBuilderTest.java | 2 +- .../referential/ReferentialServiceTopiaTest.java | 4 +- 21 files changed, 76 insertions(+), 71 deletions(-) diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java index 5225689..adf5ea2 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java @@ -1,9 +1,9 @@ package fr.ird.observe.services.service; import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.model.referential.ReferentialDto; -import fr.ird.observe.services.model.referential.ReferentialFormDto; -import fr.ird.observe.services.model.referential.ReferentialLabelSetDto; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.ReferentialFormDto; +import fr.ird.observe.services.dto.referential.ReferentialLabelSetDto; import fr.ird.observe.services.spi.Write; import java.util.Collection; diff --git a/observe-services-model/pom.xml b/observe-services-model/pom.xml index d4960b7..7d73d8d 100644 --- a/observe-services-model/pom.xml +++ b/observe-services-model/pom.xml @@ -98,18 +98,18 @@ <groupId>org.nuiton.eugene</groupId> <artifactId>eugene-maven-plugin</artifactId> <configuration> - <defaultPackage>fr.ird.observe.services.model</defaultPackage> - <fullPackagePath>fr.ird.observe.services.model</fullPackagePath> + <defaultPackage>fr.ird.observe.services.dto</defaultPackage> + <fullPackagePath>fr.ird.observe.services.dto</fullPackagePath> </configuration> <executions> <execution> <phase>generate-sources</phase> - <id>generate-services-model</id> + <id>generate-services-dto</id> <configuration> <inputs> - <input>zargo:src/main/xmi:observe-services-model-common.zargo</input> - <!--<input>zargo:src/main/xmi:observe-services-dto-seine.zargo</input>--> - <!--<input>zargo:src/main/xmi:observe-services-model-longline.zargo</input>--> + <input>zargo:src/main/xmi:observe-services-dto-common.zargo</input> + <!--<input>zargo:src/main/xmi:observe-services-model-seine.zargo</input>--> + <input>zargo:src/main/xmi:observe-services-dto-longline.zargo</input> </inputs> <resolver>org.nuiton.util.FasterCachedResourceResolver</resolver> <templates>org.nuiton.eugene.java.SimpleJavaBeanWithNoInterfaceTransformer</templates> diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/model/AbstractObserveDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/AbstractObserveDto.java similarity index 95% rename from observe-services-model/src/main/java/fr/ird/observe/services/model/AbstractObserveDto.java rename to observe-services-model/src/main/java/fr/ird/observe/services/dto/AbstractObserveDto.java index 5046273..8b1159f 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/model/AbstractObserveDto.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/AbstractObserveDto.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.model; +package fr.ird.observe.services.dto; import org.jdesktop.beans.AbstractSerializableBean; import org.nuiton.jaxx.application.bean.JavaBeanObject; diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/model/constants/GearType.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/constants/GearType.java similarity index 96% rename from observe-services-model/src/main/java/fr/ird/observe/services/model/constants/GearType.java rename to observe-services-model/src/main/java/fr/ird/observe/services/dto/constants/GearType.java index d0521ed..f32ddd8 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/model/constants/GearType.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/constants/GearType.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.model.constants; +package fr.ird.observe.services.dto.constants; /* * #%L diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/model/constants/ReferenceStatus.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/constants/ReferenceStatus.java similarity index 85% rename from observe-services-model/src/main/java/fr/ird/observe/services/model/constants/ReferenceStatus.java rename to observe-services-model/src/main/java/fr/ird/observe/services/dto/constants/ReferenceStatus.java index e64610d..a9d1396 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/model/constants/ReferenceStatus.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/constants/ReferenceStatus.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.model.constants; +package fr.ird.observe.services.dto.constants; /** * Une énumération pour caractériser les valeurs des status d'une entité du diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/model/referential/ReferentialFormDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialFormDto.java similarity index 93% rename from observe-services-model/src/main/java/fr/ird/observe/services/model/referential/ReferentialFormDto.java rename to observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialFormDto.java index d9155fb..41f4c78 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/model/referential/ReferentialFormDto.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialFormDto.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.model.referential; +package fr.ird.observe.services.dto.referential; import com.google.common.base.Preconditions; diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/model/referential/ReferentialFormDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialFormDtos.java similarity index 88% rename from observe-services-model/src/main/java/fr/ird/observe/services/model/referential/ReferentialFormDtos.java rename to observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialFormDtos.java index 015d758..edfa012 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/model/referential/ReferentialFormDtos.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialFormDtos.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.model.referential; +package fr.ird.observe.services.dto.referential; /** * Created on 17/08/15. 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 new file mode 100644 index 0000000..e52b903 --- /dev/null +++ b/observe-services-model/src/main/xmi/observe-services-dto-common.properties @@ -0,0 +1,13 @@ +model.tagvalue.version=7.0 + +model.tagvalue.simpleBeanWithNoInterfaceSuperClass=fr.ird.observe.services.dto.AbstractObserveDto +model.tagvalue.simpleBeanWithNoInterfaceDefaultsClassNameSuffix=Dtos +model.tagvalue.simpleBeanWithNoInterfaceClassNameSuffix=Dto + +package.fr.ird.observe.services.dto.stereotype=bean + +fr.ird.observe.services.dto.referential.Gear.attribute.gearCaracteristic.stereotype=unique,ordered +fr.ird.observe.services.dto.referential.GearCaracteristic.attribute.gearCaracteristicType.stereotype=unique,ordered +fr.ird.observe.services.dto.referential.Species.attribute.ocean.stereotype=unique,ordered +fr.ird.observe.services.dto.referential.SpeciesList.attribute.species.stereotype=unique,ordered +fr.ird.observe.services.dto.referential.ReferentialLabelSet.attribute.referentialLabel.stereotype=unique,ordered diff --git a/observe-services-model/src/main/xmi/observe-services-model-common.zargo b/observe-services-model/src/main/xmi/observe-services-dto-common.zargo similarity index 53% rename from observe-services-model/src/main/xmi/observe-services-model-common.zargo rename to observe-services-model/src/main/xmi/observe-services-dto-common.zargo index 1059307..6f3d041 100644 Binary files a/observe-services-model/src/main/xmi/observe-services-model-common.zargo and b/observe-services-model/src/main/xmi/observe-services-dto-common.zargo differ diff --git a/observe-services-model/src/main/xmi/observe-services-dto-longline.properties b/observe-services-model/src/main/xmi/observe-services-dto-longline.properties new file mode 100644 index 0000000..956d883 --- /dev/null +++ b/observe-services-model/src/main/xmi/observe-services-dto-longline.properties @@ -0,0 +1,11 @@ +model.tagvalue.version=7.0 + +#TODO A supprimer quand on aura finaliser le modèle +#model.stereotype=acceptBeanWithMethods + +model.tagvalue.simpleBeanWithNoInterfaceSuperClass=fr.ird.observe.services.dto.AbstractObserveDto +model.tagvalue.simpleBeanWithNoInterfaceDefaultsClassNameSuffix=Dtos +model.tagvalue.simpleBeanWithNoInterfaceClassNameSuffix=Dto + +package.fr.ird.observe.services.dto.longline.stereotype=bean +package.fr.ird.observe.services.dto.referential.longline.stereotype=bean diff --git a/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo b/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo new file mode 100644 index 0000000..29c7608 Binary files /dev/null and b/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo differ diff --git a/observe-services-model/src/main/xmi/observe-services-dto-seine.properties b/observe-services-model/src/main/xmi/observe-services-dto-seine.properties index 3736c79..91a8475 100644 --- a/observe-services-model/src/main/xmi/observe-services-dto-seine.properties +++ b/observe-services-model/src/main/xmi/observe-services-dto-seine.properties @@ -1,7 +1,8 @@ model.tagvalue.version=7.0 -model.tagvalue.simpleBeanWithNoInterfaceSuperClass=fr.ird.observe.services.model.AbstractObserveDto +model.tagvalue.simpleBeanWithNoInterfaceSuperClass=fr.ird.observe.services.dto.AbstractObserveDto model.tagvalue.simpleBeanWithNoInterfaceDefaultsClassNameSuffix=Dtos model.tagvalue.simpleBeanWithNoInterfaceClassNameSuffix=Dto -package.fr.ird.observe.services.model.stereotype=bean +package.fr.ird.observe.services.dto.referential.seine.stereotype=bean +package.fr.ird.observe.services.dto.seine.stereotype=bean diff --git a/observe-services-model/src/main/xmi/observe-services-model-common.properties b/observe-services-model/src/main/xmi/observe-services-model-common.properties deleted file mode 100644 index cbb0b5c..0000000 --- a/observe-services-model/src/main/xmi/observe-services-model-common.properties +++ /dev/null @@ -1,13 +0,0 @@ -model.tagvalue.version=7.0 - -model.tagvalue.simpleBeanWithNoInterfaceSuperClass=fr.ird.observe.services.model.AbstractObserveDto -model.tagvalue.simpleBeanWithNoInterfaceDefaultsClassNameSuffix=Dtos -model.tagvalue.simpleBeanWithNoInterfaceClassNameSuffix=Dto - -package.fr.ird.observe.services.model.stereotype=bean - -fr.ird.observe.services.model.referential.Gear.attribute.gearCaracteristic.stereotype=unique,ordered -fr.ird.observe.services.model.referential.GearCaracteristic.attribute.gearCaracteristicType.stereotype=unique,ordered -fr.ird.observe.services.model.referential.Species.attribute.ocean.stereotype=unique,ordered -fr.ird.observe.services.model.referential.SpeciesList.attribute.species.stereotype=unique,ordered -fr.ird.observe.services.model.referential.ReferentialLabelSet.attribute.referentialLabel.stereotype=unique,ordered diff --git a/observe-services-model/src/main/xmi/observe-services-model-longline.properties b/observe-services-model/src/main/xmi/observe-services-model-longline.properties deleted file mode 100644 index 3736c79..0000000 --- a/observe-services-model/src/main/xmi/observe-services-model-longline.properties +++ /dev/null @@ -1,7 +0,0 @@ -model.tagvalue.version=7.0 - -model.tagvalue.simpleBeanWithNoInterfaceSuperClass=fr.ird.observe.services.model.AbstractObserveDto -model.tagvalue.simpleBeanWithNoInterfaceDefaultsClassNameSuffix=Dtos -model.tagvalue.simpleBeanWithNoInterfaceClassNameSuffix=Dto - -package.fr.ird.observe.services.model.stereotype=bean diff --git a/observe-services-model/src/main/xmi/observe-services-model-longline.zargo b/observe-services-model/src/main/xmi/observe-services-model-longline.zargo deleted file mode 100644 index 8e1e2ab..0000000 Binary files a/observe-services-model/src/main/xmi/observe-services-model-longline.zargo and /dev/null differ diff --git a/observe-services-rest/src/main/java/fr/ird/observe/services/service/ReferentialServiceRest.java b/observe-services-rest/src/main/java/fr/ird/observe/services/service/ReferentialServiceRest.java index e00ae53..1cee057 100644 --- a/observe-services-rest/src/main/java/fr/ird/observe/services/service/ReferentialServiceRest.java +++ b/observe-services-rest/src/main/java/fr/ird/observe/services/service/ReferentialServiceRest.java @@ -2,9 +2,9 @@ package fr.ird.observe.services.service; import fr.ird.observe.services.ObserveServiceContext; import fr.ird.observe.services.ObserveServiceRest; -import fr.ird.observe.services.model.referential.ReferentialDto; -import fr.ird.observe.services.model.referential.ReferentialFormDto; -import fr.ird.observe.services.model.referential.ReferentialLabelSetDto; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.ReferentialFormDto; +import fr.ird.observe.services.dto.referential.ReferentialLabelSetDto; import java.util.Collection; diff --git a/observe-services-rest/src/test/java/fr/ird/observe/services/service/referential/ReferentialServiceRestTest.java b/observe-services-rest/src/test/java/fr/ird/observe/services/service/referential/ReferentialServiceRestTest.java index f870be7..9aa09e7 100644 --- a/observe-services-rest/src/test/java/fr/ird/observe/services/service/referential/ReferentialServiceRestTest.java +++ b/observe-services-rest/src/test/java/fr/ird/observe/services/service/referential/ReferentialServiceRestTest.java @@ -2,8 +2,8 @@ package fr.ird.observe.services.service.referential; import fr.ird.observe.services.ObserveServiceContextRest; import fr.ird.observe.services.ObserveServiceMainFactory; -import fr.ird.observe.services.model.referential.ReferentialLabelSetDto; -import fr.ird.observe.services.model.referential.SexDto; +import fr.ird.observe.services.dto.referential.ReferentialLabelSetDto; +import fr.ird.observe.services.dto.referential.SexDto; import fr.ird.observe.services.service.ReferentialService; import org.junit.Assert; import org.junit.Before; diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialDtoBuilder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialDtoBuilder.java index c95b04d..af01306 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialDtoBuilder.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialDtoBuilder.java @@ -5,9 +5,9 @@ import com.google.common.collect.ImmutableMap; import fr.ird.observe.entities.constants.GearType; import fr.ird.observe.entities.constants.ReferenceStatus; import fr.ird.observe.entities.referentiel.Program; -import fr.ird.observe.services.model.referential.ReferentialDto; -import fr.ird.observe.services.model.referential.ReferentialLabelDto; -import fr.ird.observe.services.model.referential.ReferentialLabelDtos; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.ReferentialLabelDto; +import fr.ird.observe.services.dto.referential.ReferentialLabelDtos; import org.nuiton.topia.persistence.EntityVisitor; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.util.beans.Binder; @@ -73,12 +73,12 @@ public class ReferentialDtoBuilder<M extends ReferentialDto> implements Closeabl } else if (Program.PROPERTY_GEAR_TYPE.equals(propertyName)) { GearType entityGearType = (GearType) propertyValue; - propertyValue = fr.ird.observe.services.model.constants.GearType.valueOf(entityGearType.name()); + propertyValue = fr.ird.observe.services.dto.constants.GearType.valueOf(entityGearType.name()); } else if (Program.PROPERTY_STATUS.equals(propertyName)) { ReferenceStatus entityGearType = (ReferenceStatus) propertyValue; - propertyValue = fr.ird.observe.services.model.constants.ReferenceStatus.valueOf(entityGearType.name()); + propertyValue = fr.ird.observe.services.dto.constants.ReferenceStatus.valueOf(entityGearType.name()); } 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 fd3a7f1..2be2542 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 @@ -20,28 +20,28 @@ import fr.ird.observe.entities.referentiel.Vessel; import fr.ird.observe.entities.referentiel.VesselSizeCategory; import fr.ird.observe.entities.referentiel.VesselType; import fr.ird.observe.services.ObserveServiceTopia; -import fr.ird.observe.services.model.referential.CountryDto; -import fr.ird.observe.services.model.referential.FpaZoneDto; -import fr.ird.observe.services.model.referential.GearCaracteristicDto; -import fr.ird.observe.services.model.referential.GearCaracteristicTypeDto; -import fr.ird.observe.services.model.referential.GearDto; -import fr.ird.observe.services.model.referential.HarbourDto; -import fr.ird.observe.services.model.referential.LengthWeightParameterDto; -import fr.ird.observe.services.model.referential.OceanDto; -import fr.ird.observe.services.model.referential.OrganismDto; -import fr.ird.observe.services.model.referential.PersonDto; -import fr.ird.observe.services.model.referential.ProgramDto; -import fr.ird.observe.services.model.referential.ReferentialDto; -import fr.ird.observe.services.model.referential.ReferentialFormDto; -import fr.ird.observe.services.model.referential.ReferentialFormDtos; -import fr.ird.observe.services.model.referential.ReferentialLabelSetDto; -import fr.ird.observe.services.model.referential.SexDto; -import fr.ird.observe.services.model.referential.SpeciesDto; -import fr.ird.observe.services.model.referential.SpeciesGroupDto; -import fr.ird.observe.services.model.referential.SpeciesListDto; -import fr.ird.observe.services.model.referential.VesselDto; -import fr.ird.observe.services.model.referential.VesselSizeCategoryDto; -import fr.ird.observe.services.model.referential.VesselTypeDto; +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.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.ReferentialFormDto; +import fr.ird.observe.services.dto.referential.ReferentialFormDtos; +import fr.ird.observe.services.dto.referential.ReferentialLabelSetDto; +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 org.nuiton.topia.persistence.TopiaEntity; import java.util.Collection; diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialDtoBuilderTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialDtoBuilderTest.java index 9a4d45b..fd708fa 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialDtoBuilderTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialDtoBuilderTest.java @@ -6,7 +6,7 @@ import fr.ird.observe.entities.referentiel.Organism; import fr.ird.observe.entities.referentiel.OrganismImpl; import fr.ird.observe.entities.referentiel.Program; import fr.ird.observe.entities.referentiel.ProgramImpl; -import fr.ird.observe.services.model.referential.ProgramDto; +import fr.ird.observe.services.dto.referential.ProgramDto; import org.junit.Assert; import org.junit.Test; import org.nuiton.util.DateUtil; diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/referential/ReferentialServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/referential/ReferentialServiceTopiaTest.java index 3ae5f96..4ed8565 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/referential/ReferentialServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/referential/ReferentialServiceTopiaTest.java @@ -2,8 +2,8 @@ package fr.ird.observe.services.service.referential; import fr.ird.observe.services.ObserveServiceContextTopia; import fr.ird.observe.services.ObserveServiceMainFactory; -import fr.ird.observe.services.model.referential.ReferentialLabelSetDto; -import fr.ird.observe.services.model.referential.SexDto; +import fr.ird.observe.services.dto.referential.ReferentialLabelSetDto; +import fr.ird.observe.services.dto.referential.SexDto; import fr.ird.observe.services.service.ReferentialService; import org.junit.Assert; import org.junit.Before; -- 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 develop in repository observe. See http://git.codelutin.com/observe.git commit 1a129f2c1eddabdbee342aabca9c8c96b8955aed Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Aug 19 10:27:16 2015 +0200 add school estimate service (refs #7458). --- .../service/seine/SchoolEstimateService.java | 20 ++++++++++++++++++++ .../src/main/xmi/observe-services-dto-seine.zargo | Bin 55018 -> 56087 bytes 2 files changed, 20 insertions(+) diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SchoolEstimateService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SchoolEstimateService.java new file mode 100644 index 0000000..3a9bebf --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SchoolEstimateService.java @@ -0,0 +1,20 @@ +package fr.ird.observe.services.service.seine; + +import fr.ird.observe.services.ObserveService; +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.seine.SetSeineSchoolEstimateDto; +import fr.ird.observe.services.spi.Write; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public interface SchoolEstimateService extends ObserveService { + + FormDto<SetSeineSchoolEstimateDto> loadToRead(String setSeineId); + + FormDto<SetSeineSchoolEstimateDto> loadToEdit(String setSeineId); + + @Write + String save(FormDto<SetSeineSchoolEstimateDto> form); + +} diff --git a/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo b/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo index 49052d8..addd889 100644 Binary files a/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo and b/observe-services-model/src/main/xmi/observe-services-dto-seine.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 develop in repository observe. See http://git.codelutin.com/observe.git commit 9536321da00442bd6fffac738d1cf809bb6bbe68 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 10:32:28 2015 +0200 Suppression d'une entité non voulue (booleanDto) --- .../main/xmi/observe-services-dto-longline.zargo | Bin 75830 -> 75789 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo b/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo index 05c1fec..a7dc856 100644 Binary files a/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo and b/observe-services-model/src/main/xmi/observe-services-dto-longline.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 develop in repository observe. See http://git.codelutin.com/observe.git commit a8f3901d865d49b26668c1f17eaacefa173da4d4 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 10:33:32 2015 +0200 Mise en place d'une classe pour initialiser tous les dto du modèle --- .../ird/observe/services/ObserveServiceTopia.java | 39 + .../services/dto/ObserveDtosInitializer.java | 1033 ++++++++++++++++++++ 2 files changed, 1072 insertions(+) diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java index 2b22014..bf2d0da 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java @@ -1,6 +1,14 @@ package fr.ird.observe.services; import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableBiMap; +import com.google.common.collect.ImmutableSet; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.ObserveDtosInitializer; +import fr.ird.observe.services.dto.ObserveModelInitializerRunner; +import org.nuiton.topia.persistence.TopiaEntity; + +import java.util.Map; /** * Created on 16/08/15. @@ -11,10 +19,41 @@ public class ObserveServiceTopia implements ObserveService { protected ObserveServiceContextTopia serviceContext; + protected static ImmutableBiMap<Class<?>, Class<?>> DTO_TO_ENTITY_TYPES; + + private static boolean init; + + public static synchronized void init() { + if (!init) { + ObserveModelInitializerRunner.init(new ObserveDtosInitializer()); + DTO_TO_ENTITY_TYPES = ObserveDtosInitializer.getDtoToEntityTypes(); + init = true; + } + } + + static { + init(); + } + @Override public void setServiceContext(ObserveServiceContext serviceContext) { Preconditions.checkNotNull(serviceContext, "serviceContext can't be null."); Preconditions.checkArgument(serviceContext instanceof ObserveServiceContextTopia, "serviceContext must be of type " + ObserveServiceContextTopia.class.getName()); this.serviceContext = (ObserveServiceContextTopia) serviceContext; } + + public static <D extends IdDto, E extends TopiaEntity> Class<E> getEntityType(Class<D> dtoType) { + Class<?> entityType = DTO_TO_ENTITY_TYPES.get(dtoType); + return (Class<E>) entityType; + } + + public static <E extends TopiaEntity, M extends IdDto> Class<M> getDtoType(Class<E> entityType) { + Class<?> modelType = DTO_TO_ENTITY_TYPES.inverse().get(entityType); + return (Class<M>) modelType; + } + + public static ImmutableSet<Map.Entry<Class<?>, Class<?>>> getDtoTypes() { + return DTO_TO_ENTITY_TYPES.entrySet(); + } + } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java new file mode 100644 index 0000000..7606aa7 --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java @@ -0,0 +1,1033 @@ +package fr.ird.observe.services.dto; + +import com.google.common.collect.ImmutableBiMap; +import fr.ird.observe.entities.referentiel.Country; +import fr.ird.observe.entities.referentiel.FpaZone; +import fr.ird.observe.entities.referentiel.Gear; +import fr.ird.observe.entities.referentiel.GearCaracteristic; +import fr.ird.observe.entities.referentiel.GearCaracteristicType; +import fr.ird.observe.entities.referentiel.Harbour; +import fr.ird.observe.entities.referentiel.I18nReferenceEntity; +import fr.ird.observe.entities.referentiel.LengthWeightParameter; +import fr.ird.observe.entities.referentiel.Ocean; +import fr.ird.observe.entities.referentiel.Organism; +import fr.ird.observe.entities.referentiel.Person; +import fr.ird.observe.entities.referentiel.Program; +import fr.ird.observe.entities.referentiel.Sex; +import fr.ird.observe.entities.referentiel.Species; +import fr.ird.observe.entities.referentiel.SpeciesGroup; +import fr.ird.observe.entities.referentiel.SpeciesList; +import fr.ird.observe.entities.referentiel.Vessel; +import fr.ird.observe.entities.referentiel.VesselSizeCategory; +import fr.ird.observe.entities.referentiel.VesselType; +import fr.ird.observe.entities.referentiel.longline.BaitHaulingStatus; +import fr.ird.observe.entities.referentiel.longline.BaitSettingStatus; +import fr.ird.observe.entities.referentiel.longline.BaitType; +import fr.ird.observe.entities.referentiel.longline.CatchFateLongline; +import fr.ird.observe.entities.referentiel.longline.EncounterType; +import fr.ird.observe.entities.referentiel.longline.Healthness; +import fr.ird.observe.entities.referentiel.longline.HookPosition; +import fr.ird.observe.entities.referentiel.longline.HookSize; +import fr.ird.observe.entities.referentiel.longline.HookType; +import fr.ird.observe.entities.referentiel.longline.ItemHorizontalPosition; +import fr.ird.observe.entities.referentiel.longline.ItemVerticalPosition; +import fr.ird.observe.entities.referentiel.longline.LightsticksColor; +import fr.ird.observe.entities.referentiel.longline.LightsticksType; +import fr.ird.observe.entities.referentiel.longline.LineType; +import fr.ird.observe.entities.referentiel.longline.MaturityStatus; +import fr.ird.observe.entities.referentiel.longline.MitigationType; +import fr.ird.observe.entities.referentiel.longline.SensorBrand; +import fr.ird.observe.entities.referentiel.longline.SensorDataFormat; +import fr.ird.observe.entities.referentiel.longline.SensorType; +import fr.ird.observe.entities.referentiel.longline.SettingShape; +import fr.ird.observe.entities.referentiel.longline.SizeMeasureType; +import fr.ird.observe.entities.referentiel.longline.StomacFullness; +import fr.ird.observe.entities.referentiel.longline.TripType; +import fr.ird.observe.entities.referentiel.longline.VesselActivityLongline; +import fr.ird.observe.entities.referentiel.longline.WeightMeasureType; +import fr.ird.observe.entities.referentiel.seine.DetectionMode; +import fr.ird.observe.entities.referentiel.seine.ObjectFate; +import fr.ird.observe.entities.referentiel.seine.ObjectOperation; +import fr.ird.observe.entities.referentiel.seine.ObjectType; +import fr.ird.observe.entities.referentiel.seine.ObservedSystem; +import fr.ird.observe.entities.referentiel.seine.ReasonForDiscard; +import fr.ird.observe.entities.referentiel.seine.ReasonForNoFishing; +import fr.ird.observe.entities.referentiel.seine.ReasonForNullSet; +import fr.ird.observe.entities.referentiel.seine.SpeciesFate; +import fr.ird.observe.entities.referentiel.seine.SpeciesStatus; +import fr.ird.observe.entities.referentiel.seine.SurroundingActivity; +import fr.ird.observe.entities.referentiel.seine.TransmittingBuoyOperation; +import fr.ird.observe.entities.referentiel.seine.TransmittingBuoyType; +import fr.ird.observe.entities.referentiel.seine.VesselActivitySeine; +import fr.ird.observe.entities.referentiel.seine.WeightCategory; +import fr.ird.observe.entities.referentiel.seine.Wind; +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; +import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.util.beans.BinderFactory; +import org.nuiton.util.beans.BinderModelBuilder; + +/** + * Pour initialiser tous les binders. + * + * Created on 18/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveDtosInitializer implements ObserveModelInitializer { + + protected final static String[] DEFAULT_REFERENTIAL_PROPERTIES = { + ReferentialDto.PROPERTY_CODE, + ReferentialDto.PROPERTY_URI, + ReferentialDto.PROPERTY_STATUS, + ReferentialDto.PROPERTY_NEED_COMMENT + }; + + protected final static String[] DEFAULT_REFERENTIAL_LENGTH_WEIGHT_PARAMETER_PROPERTIES = { + LengthWeightParameterDto.PROPERTY_START_DATE, + LengthWeightParameterDto.PROPERTY_END_DATE, + LengthWeightParameterDto.PROPERTY_OCEAN, + LengthWeightParameterDto.PROPERTY_SPECIES, + LengthWeightParameterDto.PROPERTY_SEX, + LengthWeightParameterDto.PROPERTY_LENGTH_WEIGHT_FORMULA, + LengthWeightParameterDto.PROPERTY_WEIGHT_LENGTH_FORMULA, + LengthWeightParameterDto.PROPERTY_COEFFICIENTS, + LengthWeightParameterDto.PROPERTY_MEAN_LENGTH, + LengthWeightParameterDto.PROPERTY_MEAN_WEIGHT + }; + + protected final static String[] DEFAULT_REFERENTIAL_I18N_PROPERTIES = { + I18nReferentialDto.PROPERTY_LABEL1, + I18nReferentialDto.PROPERTY_LABEL2, + I18nReferentialDto.PROPERTY_LABEL3, + I18nReferentialDto.PROPERTY_LABEL4, + I18nReferentialDto.PROPERTY_LABEL5, + I18nReferentialDto.PROPERTY_LABEL6, + I18nReferentialDto.PROPERTY_LABEL7, + I18nReferentialDto.PROPERTY_LABEL8 + }; + + private static final String[] DEFAULT_REFERENTIAL_REFERENCE_PROPERTIES = {ReferentialDto.PROPERTY_CODE, I18nReferentialDto.PROPERTY_LABEL1, I18nReferentialDto.PROPERTY_LABEL2, I18nReferentialDto.PROPERTY_LABEL3}; + +// { +// // Need to add by hand a speciesList binder +// // see https://forge.codelutin.com/issues/6963 +// BinderModelBuilder<SpeciesListDto, SpeciesList> builderModel = newBinderBuilder(SpeciesListDto.class, SpeciesList.class); +// registerDtoBinder(builderModel, "Observe"); + + // } + + protected static ImmutableBiMap.Builder<Class<?>, Class<?>> DTO_TO_ENTITY_TYPE_BUILDER; + + protected static ImmutableBiMap<Class<?>, Class<?>> DTO_TO_ENTITY_TYPES; + + public static ImmutableBiMap<Class<?>, Class<?>> getDtoToEntityTypes() { + return DTO_TO_ENTITY_TYPES; + } + + @Override + public void start() { + DTO_TO_ENTITY_TYPE_BUILDER = new ImmutableBiMap.Builder<>(); + } + + @Override + public void end() { + DTO_TO_ENTITY_TYPES = DTO_TO_ENTITY_TYPE_BUILDER.build(); + } + + @Override + public void initFormDto() { + // Rien à faire + } + + @Override + public void initIdDto() { + // Rien à faire + } + + @Override + public void initReferenceDto() { + // Rien à faire + } + + @Override + public void initReferenceSetDto() { + // Rien à faire + } + + @Override + public void initActivityLonglineDto() { + + } + + @Override + public void initBaitsCompositionDto() { + + } + + @Override + public void initBasketDto() { + + } + + @Override + public void initBranchlineDto() { + + } + + @Override + public void initBranchlinesCompositionDto() { + + } + + @Override + public void initCatchLonglineDto() { + + } + + @Override + public void initEncounterDto() { + + } + + @Override + public void initFloatlinesCompositionDto() { + + } + + @Override + public void initGearUseFeaturesLonglineDto() { + + } + + @Override + public void initGearUseFeaturesMeasurementLonglineDto() { + + } + + @Override + public void initHooksCompositionDto() { + + } + + @Override + public void initSectionDto() { + + } + + @Override + public void initSensorUsedDto() { + + } + + @Override + public void initSetLonglineDto() { + + } + + @Override + public void initSizeMeasureDto() { + + } + + @Override + public void initTdrDto() { + + } + + @Override + public void initTdrRecordDto() { + + } + + @Override + public void initTripLonglineDto() { + + } + + @Override + public void initWeightMeasureDto() { + + } + + @Override + public void initCountryDto() { + registerDtoType(CountryDto.class, Country.class); + registerReferentialDtoBinder(CountryDto.class, Country.class, CountryDto.PROPERTY_ISO2_CODE, CountryDto.PROPERTY_ISO3_CODE); + registerReferentialReferenceDtoBinder(CountryDto.class, Country.class); + } + + + @Override + public void initFpaZoneDto() { + registerDtoType(FpaZoneDto.class, FpaZone.class); + registerReferentialDtoBinder(FpaZoneDto.class, FpaZone.class, FpaZoneDto.PROPERTY_START_DATE, FpaZoneDto.PROPERTY_END_DATE); + registerReferentialReferenceDtoBinder(FpaZoneDto.class, FpaZone.class); + } + + @Override + public void initGearCaracteristicDto() { + registerDtoType(GearCaracteristicDto.class, GearCaracteristic.class); + registerReferentialDtoBinder(GearCaracteristicDto.class, GearCaracteristic.class, GearCaracteristicDto.PROPERTY_GEAR_CARACTERISTIC_TYPE, GearCaracteristicDto.PROPERTY_UNIT); + registerReferentialReferenceDtoBinder(GearCaracteristicDto.class, GearCaracteristic.class); + } + + @Override + public void initGearCaracteristicTypeDto() { + registerDtoType(GearCaracteristicTypeDto.class, GearCaracteristicType.class); + registerReferentialDtoBinder(GearCaracteristicTypeDto.class, GearCaracteristicType.class); + registerReferentialReferenceDtoBinder(GearCaracteristicTypeDto.class, GearCaracteristicType.class); + } + + @Override + public void initGearDto() { + registerDtoType(GearDto.class, Gear.class); + registerReferentialDtoBinder(GearDto.class, Gear.class, GearDto.PROPERTY_GEAR_CARACTERISTIC); + registerReferentialReferenceDtoBinder(GearDto.class, Gear.class); + } + + @Override + public void initHarbourDto() { + registerDtoType(HarbourDto.class, Harbour.class); + registerReferentialDtoBinder(HarbourDto.class, Harbour.class, + HarbourDto.PROPERTY_NAME, + HarbourDto.PROPERTY_COUNTRY, + HarbourDto.PROPERTY_LOCODE, + HarbourDto.PROPERTY_LATITUDE, + HarbourDto.PROPERTY_LONGITUDE, + HarbourDto.PROPERTY_QUADRANT); + registerReferentialReferenceDtoBinder(HarbourDto.class, Harbour.class, + false, + ReferentialDto.PROPERTY_CODE, + HarbourDto.PROPERTY_NAME, + HarbourDto.PROPERTY_LOCODE); + } + + @Override + public void initI18nReferentialDto() { + + } + + @Override + public void initLengthWeightParameterDto() { + registerDtoType(LengthWeightParameterDto.class, LengthWeightParameter.class); + registerReferentialDtoBinder(LengthWeightParameterDto.class, LengthWeightParameter.class, + LengthWeightParameterDto.PROPERTY_SEX, + LengthWeightParameterDto.PROPERTY_OCEAN, + LengthWeightParameterDto.PROPERTY_SPECIES, + LengthWeightParameterDto.PROPERTY_START_DATE); + + // FIXME A revoir car on veut en fait ocean/libelle et species/scientificLabel + registerReferentialReferenceDtoBinder(LengthWeightParameterDto.class, LengthWeightParameter.class, + false, + LengthWeightParameterDto.PROPERTY_SEX, + LengthWeightParameterDto.PROPERTY_OCEAN, + LengthWeightParameterDto.PROPERTY_SPECIES, + LengthWeightParameterDto.PROPERTY_LENGTH_WEIGHT_FORMULA, + LengthWeightParameterDto.PROPERTY_WEIGHT_LENGTH_FORMULA); + } + + @Override + public void initOceanDto() { + registerDtoType(OceanDto.class, Ocean.class); + registerReferentialDtoBinder(OceanDto.class, Ocean.class); + registerReferentialReferenceDtoBinder(OceanDto.class, Ocean.class); + } + + @Override + public void initOrganismDto() { + registerDtoType(OrganismDto.class, Organism.class); + registerReferentialDtoBinder(OrganismDto.class, Organism.class, + OrganismDto.PROPERTY_COUNTRY, OrganismDto.PROPERTY_DESCRIPTION); + registerReferentialReferenceDtoBinder(OrganismDto.class, Organism.class); + } + + @Override + public void initPersonDto() { + registerDtoType(PersonDto.class, Person.class); + registerReferentialDtoBinder(PersonDto.class, Person.class, + PersonDto.PROPERTY_CODE, + PersonDto.PROPERTY_LAST_NAME, + PersonDto.PROPERTY_FIRST_NAME, + PersonDto.PROPERTY_CAPTAIN, + PersonDto.PROPERTY_OBSERVER, + PersonDto.PROPERTY_DATA_ENTRY_OPERATOR, + PersonDto.PROPERTY_COUNTRY); + registerReferentialReferenceDtoBinder(PersonDto.class, Person.class, false, + PersonDto.PROPERTY_FIRST_NAME, PersonDto.PROPERTY_LAST_NAME); + } + + @Override + public void initProgramDto() { + +// { +// +// BinderModelBuilder<ProgramDto, Program> builder = newBinderBuilder( +// ProgramDto.class, +// Program.class, +// ProgramDto.PROPERTY_LABEL1, +// ProgramDto.PROPERTY_LABEL2, +// ProgramDto.PROPERTY_LABEL3, +// ProgramDto.PROPERTY_LABEL4, +// ProgramDto.PROPERTY_LABEL5, +// ProgramDto.PROPERTY_LABEL6, +// ProgramDto.PROPERTY_LABEL7, +// ProgramDto.PROPERTY_LABEL8 +// ); +// +// registerDtoBinder(builder); +// +// } + +// { +// +// BinderModelBuilder<ProgramDto, Program> builder = newBinderBuilder( +// ProgramDto.class, +// Program.class, +// ProgramDto.PROPERTY_LABEL1, +// ProgramDto.PROPERTY_LABEL2, +// ProgramDto.PROPERTY_LABEL3, +// ProgramDto.PROPERTY_LABEL4, +// ProgramDto.PROPERTY_LABEL5, +// ProgramDto.PROPERTY_LABEL6, +// ProgramDto.PROPERTY_LABEL7, +// ProgramDto.PROPERTY_LABEL8); +// +// registerTopiaBinder(Program.class, builder, DISPLAY_LIST); +// +// } + registerDtoType(ProgramDto.class, Program.class); + registerReferentialDtoBinder(ProgramDto.class, Program.class, + ProgramDto.PROPERTY_ORGANISM, + ProgramDto.PROPERTY_START_DATE, + ProgramDto.PROPERTY_END_DATE, + ProgramDto.PROPERTY_DETAILLED_ACTIVITIES_OBSERVATION, + ProgramDto.PROPERTY_NON_TARGET_OBSERVATION, + ProgramDto.PROPERTY_BAIT_OBSERVATION, + ProgramDto.PROPERTY_MAMMALS_OBSERVATION, + ProgramDto.PROPERTY_SAMPLES_OBSERVATION, + ProgramDto.PROPERTY_OBJECTS_OBSERVATION, + ProgramDto.PROPERTY_BIRDS_OBSERVATION, + ProgramDto.PROPERTY_TARGET_DISCARDS_OBSERVATION, + ProgramDto.PROPERTY_GEAR_TYPE); + registerReferentialReferenceDtoBinder(ProgramDto.class, Program.class); + } + + @Override + public void initReferentialDto() { + // Rien à faire + } + + @Override + public void initReferentialReferenceDto() { + // Rien à faire + } + + @Override + public void initSexDto() { + registerDtoType(SexDto.class, Sex.class); + registerReferentialDtoBinder(SexDto.class, Sex.class); + registerReferentialReferenceDtoBinder(SexDto.class, Sex.class); + } + + + @Override + public void initSpeciesDto() { + registerDtoType(SpeciesDto.class, Species.class); + registerReferentialDtoBinder(SpeciesDto.class, Species.class, SpeciesDto.PROPERTY_SPECIES_GROUP, + SpeciesDto.PROPERTY_OCEAN, + SpeciesDto.PROPERTY_LENGTH_MEASURE_TYPE, + SpeciesDto.PROPERTY_MIN_LENGTH, + SpeciesDto.PROPERTY_MAX_LENGTH, + SpeciesDto.PROPERTY_MIN_WEIGHT, + SpeciesDto.PROPERTY_MAX_WEIGHT, + SpeciesDto.PROPERTY_HOME_ID, + SpeciesDto.PROPERTY_FAO_CODE, + SpeciesDto.PROPERTY_WORMS_ID, + SpeciesDto.PROPERTY_SCIENTIFIC_LABEL); + registerReferentialReferenceDtoBinder(SpeciesDto.class, Species.class, + SpeciesDto.PROPERTY_FAO_CODE, + SpeciesDto.PROPERTY_SCIENTIFIC_LABEL, + SpeciesDto.PROPERTY_HOME_ID); + } + + @Override + public void initSpeciesGroupDto() { + registerDtoType(SpeciesGroupDto.class, SpeciesGroup.class); + registerReferentialDtoBinder(SpeciesGroupDto.class, SpeciesGroup.class); + registerReferentialReferenceDtoBinder(SpeciesGroupDto.class, SpeciesGroup.class); + } + + @Override + public void initSpeciesListDto() { + registerDtoType(SpeciesListDto.class, SpeciesList.class); + registerReferentialDtoBinder(SpeciesListDto.class, SpeciesList.class, SpeciesListDto.PROPERTY_SPECIES); + registerReferentialReferenceDtoBinder(SpeciesListDto.class, SpeciesList.class); + } + + @Override + public void initVesselSizeCategoryDto() { + registerDtoType(VesselSizeCategoryDto.class, VesselSizeCategory.class); + registerReferentialDtoBinder(VesselSizeCategoryDto.class, VesselSizeCategory.class, + VesselSizeCategoryDto.PROPERTY_GAUGE_LABEL, + VesselSizeCategoryDto.PROPERTY_CAPACITY_LABEL); + registerReferentialReferenceDtoBinder(VesselSizeCategoryDto.class, VesselSizeCategory.class, + false, + ReferentialDto.PROPERTY_CODE, + VesselSizeCategoryDto.PROPERTY_GAUGE_LABEL, + VesselSizeCategoryDto.PROPERTY_CAPACITY_LABEL); + } + + @Override + public void initVesselDto() { + registerDtoType(VesselDto.class, Vessel.class); + registerReferentialDtoBinder(VesselDto.class, Vessel.class, + VesselDto.PROPERTY_VESSEL_TYPE, + VesselDto.PROPERTY_VESSEL_SIZE_CATEGORY, + VesselDto.PROPERTY_FLAG_COUNTRY, + VesselDto.PROPERTY_KEEL_CODE, + VesselDto.PROPERTY_FLEET_COUNTRY, + VesselDto.PROPERTY_YEAR_SERVICE, + VesselDto.PROPERTY_LENGTH, + VesselDto.PROPERTY_CAPACITY, + VesselDto.PROPERTY_POWER, + VesselDto.PROPERTY_SEARCH_MAXIMUM, + VesselDto.PROPERTY_CHANGE_DATE); + registerReferentialReferenceDtoBinder(VesselDto.class, Vessel.class); + } + + @Override + public void initVesselTypeDto() { + registerDtoType(VesselTypeDto.class, VesselType.class); + registerReferentialDtoBinder(VesselTypeDto.class, VesselType.class); + registerReferentialReferenceDtoBinder(VesselTypeDto.class, VesselType.class); + } + + @Override + public void initDetectionModeDto() { + registerDtoType(DetectionModeDto.class, DetectionMode.class); + registerReferentialDtoBinder(DetectionModeDto.class, DetectionMode.class); + registerReferentialReferenceDtoBinder(DetectionModeDto.class, DetectionMode.class); + } + + @Override + public void initObjectFateDto() { + registerDtoType(ObjectFateDto.class, ObjectFate.class); + registerReferentialDtoBinder(ObjectFateDto.class, ObjectFate.class); + registerReferentialReferenceDtoBinder(ObjectFateDto.class, ObjectFate.class); + } + + @Override + public void initObjectOperationDto() { + registerDtoType(ObjectOperationDto.class, ObjectOperation.class); + registerReferentialDtoBinder(ObjectOperationDto.class, ObjectOperation.class); + registerReferentialReferenceDtoBinder(ObjectOperationDto.class, ObjectOperation.class); + } + + @Override + public void initObjectTypeDto() { + registerDtoType(ObjectTypeDto.class, ObjectType.class); + registerReferentialDtoBinder(ObjectTypeDto.class, ObjectType.class); + registerReferentialReferenceDtoBinder(ObjectTypeDto.class, ObjectType.class); + } + + @Override + public void initObservedSystemDto() { + registerDtoType(ObservedSystemDto.class, ObservedSystem.class); + registerReferentialDtoBinder(ObservedSystemDto.class, ObservedSystem.class, + ObservedSystemDto.PROPERTY_SCHOOL_TYPE); + registerReferentialReferenceDtoBinder(ObservedSystemDto.class, ObservedSystem.class); + } + + @Override + public void initReasonForDiscardDto() { + registerDtoType(ReasonForDiscardDto.class, ReasonForDiscard.class); + registerReferentialDtoBinder(ReasonForDiscardDto.class, ReasonForDiscard.class); + registerReferentialReferenceDtoBinder(ReasonForDiscardDto.class, ReasonForDiscard.class); + } + + @Override + public void initReasonForNoFishingDto() { + registerDtoType(ReasonForNoFishingDto.class, ReasonForNoFishing.class); + registerReferentialDtoBinder(ReasonForNoFishingDto.class, ReasonForNoFishing.class); + registerReferentialReferenceDtoBinder(ReasonForNoFishingDto.class, ReasonForNoFishing.class); + } + + @Override + public void initReasonForNullSetDto() { + registerDtoType(ReasonForNullSetDto.class, ReasonForNullSet.class); + registerReferentialDtoBinder(ReasonForNullSetDto.class, ReasonForNullSet.class); + registerReferentialReferenceDtoBinder(ReasonForNullSetDto.class, ReasonForNullSet.class); + } + + @Override + public void initSpeciesFateDto() { + registerDtoType(SpeciesFateDto.class, SpeciesFate.class); + registerReferentialDtoBinder(SpeciesFateDto.class, SpeciesFate.class); + registerReferentialReferenceDtoBinder(SpeciesFateDto.class, SpeciesFate.class); + } + + @Override + public void initSpeciesStatusDto() { + registerDtoType(SpeciesStatusDto.class, SpeciesStatus.class); + registerReferentialDtoBinder(SpeciesStatusDto.class, SpeciesStatus.class); + registerReferentialReferenceDtoBinder(SpeciesStatusDto.class, SpeciesStatus.class); + } + + @Override + public void initSurroundingActivityDto() { + registerDtoType(SurroundingActivityDto.class, SurroundingActivity.class); + registerReferentialDtoBinder(SurroundingActivityDto.class, SurroundingActivity.class); + registerReferentialReferenceDtoBinder(SurroundingActivityDto.class, SurroundingActivity.class); + } + + @Override + public void initTransmittingBuoyOperationDto() { + registerDtoType(TransmittingBuoyOperationDto.class, TransmittingBuoyOperation.class); + registerReferentialDtoBinder(TransmittingBuoyOperationDto.class, TransmittingBuoyOperation.class); + registerReferentialReferenceDtoBinder(TransmittingBuoyOperationDto.class, TransmittingBuoyOperation.class); + } + + @Override + public void initTransmittingBuoyTypeDto() { + registerDtoType(TransmittingBuoyTypeDto.class, TransmittingBuoyType.class); + registerReferentialDtoBinder(TransmittingBuoyTypeDto.class, TransmittingBuoyType.class); + registerReferentialReferenceDtoBinder(TransmittingBuoyTypeDto.class, TransmittingBuoyType.class); + } + + @Override + public void initVesselActivitySeineDto() { + registerDtoType(VesselActivitySeineDto.class, VesselActivitySeine.class); + registerReferentialDtoBinder(VesselActivitySeineDto.class, VesselActivitySeine.class); + registerReferentialReferenceDtoBinder(VesselActivitySeineDto.class, VesselActivitySeine.class); + } + + @Override + public void initWeightCategoryDto() { + registerDtoType(WeightCategoryDto.class, WeightCategory.class); + registerReferentialDtoBinder(WeightCategoryDto.class, WeightCategory.class, + WeightCategoryDto.PROPERTY_CODE, WeightCategoryDto.PROPERTY_SPECIES); + registerReferentialReferenceDtoBinder(WeightCategoryDto.class, WeightCategory.class); + } + + @Override + public void initWindDto() { + + + registerDtoType(WindDto.class, Wind.class); + registerReferentialDtoBinder(WindDto.class, Wind.class, + WindDto.PROPERTY_SPEED_RANGE, WindDto.PROPERTY_WAVE_HEIGHT); + + registerReferentialReferenceDtoBinder(WindDto.class, Wind.class, + ReferentialDto.PROPERTY_CODE, + I18nReferentialDto.PROPERTY_LABEL1, + I18nReferentialDto.PROPERTY_LABEL2, + I18nReferentialDto.PROPERTY_LABEL3, + WindDto.PROPERTY_SPEED_RANGE); + } + + @Override + public void initActivitySeineDto() { + + } + + @Override + public void initActivitySeineObservedSystemDto() { + + } + + @Override + public void initFloatingObjectDto() { + + } + + @Override + public void initGearUseFeaturesMeasurementSeineDto() { + + } + + @Override + public void initGearUseFeaturesSeineDto() { + + } + + @Override + public void initNonTargetCatchDto() { + + } + + @Override + public void initNonTargetLengthDto() { + + } + + @Override + public void initNonTargetSampleDto() { + + } + + @Override + public void initObjectObservedSpeciesDto() { + + } + + @Override + public void initObjectSchoolEstimateDto() { + + } + + @Override + public void initRouteDto() { + + } + + @Override + public void initSchoolEstimateDto() { + + } + + @Override + public void initSetSeineDto() { + + } + + @Override + public void initTargetCatchDto() { + + } + + @Override + public void initTargetLengthDto() { + + } + + @Override + public void initTargetSampleDto() { + + } + + @Override + public void initTransmittingBuoyDto() { + + } + + @Override + public void initTripSeineDto() { + + } + + @Override + public void initBaitHaulingStatusDto() { + registerDtoType(BaitHaulingStatusDto.class, BaitHaulingStatus.class); + registerReferentialDtoBinder(BaitHaulingStatusDto.class, BaitHaulingStatus.class); + registerReferentialReferenceDtoBinder(BaitHaulingStatusDto.class, BaitHaulingStatus.class); + } + + @Override + public void initBaitSettingStatusDto() { + registerDtoType(BaitSettingStatusDto.class, BaitSettingStatus.class); + registerReferentialDtoBinder(BaitSettingStatusDto.class, BaitSettingStatus.class); + registerReferentialReferenceDtoBinder(BaitSettingStatusDto.class, BaitSettingStatus.class); + } + + @Override + public void initBaitTypeDto() { + registerDtoType(BaitTypeDto.class, BaitType.class); + registerReferentialDtoBinder(BaitTypeDto.class, BaitType.class); + registerReferentialReferenceDtoBinder(BaitTypeDto.class, BaitType.class); + } + + @Override + public void initCatchFateLonglineDto() { + registerDtoType(CatchFateLonglineDto.class, CatchFateLongline.class); + registerReferentialDtoBinder(CatchFateLonglineDto.class, CatchFateLongline.class); + registerReferentialReferenceDtoBinder(CatchFateLonglineDto.class, CatchFateLongline.class); + } + + @Override + public void initEncounterTypeDto() { + registerDtoType(EncounterTypeDto.class, EncounterType.class); + registerReferentialDtoBinder(EncounterTypeDto.class, EncounterType.class); + registerReferentialReferenceDtoBinder(EncounterTypeDto.class, EncounterType.class); + } + + @Override + public void initHealthnessDto() { + registerDtoType(HealthnessDto.class, Healthness.class); + registerReferentialDtoBinder(HealthnessDto.class, Healthness.class); + registerReferentialReferenceDtoBinder(HealthnessDto.class, Healthness.class); + } + + @Override + public void initHookPositionDto() { + registerDtoType(HookPositionDto.class, HookPosition.class); + registerReferentialDtoBinder(HookPositionDto.class, HookPosition.class); + registerReferentialReferenceDtoBinder(HookPositionDto.class, HookPosition.class); + } + + @Override + public void initHookSizeDto() { + registerDtoType(HookSizeDto.class, HookSize.class); + registerReferentialDtoBinder(HookSizeDto.class, HookSize.class); + registerReferentialReferenceDtoBinder(HookSizeDto.class, HookSize.class); + } + + @Override + public void initHookTypeDto() { + registerDtoType(HookTypeDto.class, HookType.class); + registerReferentialDtoBinder(HookTypeDto.class, HookType.class); + registerReferentialReferenceDtoBinder(HookTypeDto.class, HookType.class); + } + + @Override + public void initItemHorizontalPositionDto() { + registerDtoType(ItemHorizontalPositionDto.class, ItemHorizontalPosition.class); + registerReferentialDtoBinder(ItemHorizontalPositionDto.class, ItemHorizontalPosition.class); + registerReferentialReferenceDtoBinder(ItemHorizontalPositionDto.class, ItemHorizontalPosition.class); + } + + @Override + public void initItemVerticalPositionDto() { + registerDtoType(ItemVerticalPositionDto.class, ItemVerticalPosition.class); + registerReferentialDtoBinder(ItemVerticalPositionDto.class, ItemVerticalPosition.class); + registerReferentialReferenceDtoBinder(ItemVerticalPositionDto.class, ItemVerticalPosition.class); + } + + @Override + public void initLightsticksColorDto() { + registerDtoType(LightsticksColorDto.class, LightsticksColor.class); + registerReferentialDtoBinder(LightsticksColorDto.class, LightsticksColor.class); + registerReferentialReferenceDtoBinder(LightsticksColorDto.class, LightsticksColor.class); + } + + @Override + public void initLightsticksTypeDto() { + registerDtoType(LightsticksTypeDto.class, LightsticksType.class); + registerReferentialDtoBinder(LightsticksTypeDto.class, LightsticksType.class); + registerReferentialReferenceDtoBinder(LightsticksTypeDto.class, LightsticksType.class); + } + + @Override + public void initLineTypeDto() { + registerDtoType(LineTypeDto.class, LineType.class); + registerReferentialDtoBinder(LineTypeDto.class, LineType.class); + registerReferentialReferenceDtoBinder(LineTypeDto.class, LineType.class); + } + + @Override + public void initMaturityStatusDto() { + registerDtoType(MaturityStatusDto.class, MaturityStatus.class); + registerReferentialDtoBinder(MaturityStatusDto.class, MaturityStatus.class, + MaturityStatusDto.PROPERTY_LOWER_VALUE, + MaturityStatusDto.PROPERTY_UPPER_VALUE); + registerReferentialReferenceDtoBinder(MaturityStatusDto.class, MaturityStatus.class); + } + + @Override + public void initMitigationTypeDto() { + registerDtoType(MitigationTypeDto.class, MitigationType.class); + registerReferentialDtoBinder(MitigationTypeDto.class, MitigationType.class); + registerReferentialReferenceDtoBinder(MitigationTypeDto.class, MitigationType.class); + } + + @Override + public void initSensorBrandDto() { + registerDtoType(SensorBrandDto.class, SensorBrand.class); + registerReferentialDtoBinder(SensorBrandDto.class, SensorBrand.class, SensorBrandDto.PROPERTY_BRAND_NAME); + registerReferentialReferenceDtoBinder(SensorBrandDto.class, SensorBrand.class, + false, + ReferentialDto.PROPERTY_CODE, SensorBrandDto.PROPERTY_BRAND_NAME); + } + + @Override + public void initSensorDataFormatDto() { + registerDtoType(SensorDataFormatDto.class, SensorDataFormat.class); + registerReferentialDtoBinder(SensorDataFormatDto.class, SensorDataFormat.class); + registerReferentialReferenceDtoBinder(SensorDataFormatDto.class, SensorDataFormat.class); + } + + @Override + public void initSensorTypeDto() { + registerDtoType(SensorTypeDto.class, SensorType.class); + registerReferentialDtoBinder(SensorTypeDto.class, SensorType.class); + registerReferentialReferenceDtoBinder(SensorTypeDto.class, SensorType.class); + } + + @Override + public void initSettingShapeDto() { + registerDtoType(SettingShapeDto.class, SettingShape.class); + registerReferentialDtoBinder(SettingShapeDto.class, SettingShape.class); + registerReferentialReferenceDtoBinder(SettingShapeDto.class, SettingShape.class); + } + + @Override + public void initSizeMeasureTypeDto() { + registerDtoType(SizeMeasureTypeDto.class, SizeMeasureType.class); + registerReferentialDtoBinder(SizeMeasureTypeDto.class, SizeMeasureType.class); + registerReferentialReferenceDtoBinder(SizeMeasureTypeDto.class, SizeMeasureType.class); + } + + @Override + public void initStomacFullnessDto() { + registerDtoType(StomacFullnessDto.class, StomacFullness.class); + registerReferentialDtoBinder(StomacFullnessDto.class, StomacFullness.class); + registerReferentialReferenceDtoBinder(StomacFullnessDto.class, StomacFullness.class); + } + + @Override + public void initTripTypeDto() { + registerDtoType(TripTypeDto.class, TripType.class); + registerReferentialDtoBinder(TripTypeDto.class, TripType.class); + registerReferentialReferenceDtoBinder(TripTypeDto.class, TripType.class); + } + + @Override + public void initVesselActivityLonglineDto() { + registerDtoType(VesselActivityLonglineDto.class, VesselActivityLongline.class); + registerReferentialDtoBinder(VesselActivityLonglineDto.class, VesselActivityLongline.class); + registerReferentialReferenceDtoBinder(VesselActivityLonglineDto.class, VesselActivityLongline.class); + } + + @Override + public void initWeightMeasureTypeDto() { + registerDtoType(WeightMeasureTypeDto.class, WeightMeasureType.class); + registerReferentialDtoBinder(WeightMeasureTypeDto.class, WeightMeasureType.class); + registerReferentialReferenceDtoBinder(WeightMeasureTypeDto.class, WeightMeasureType.class); + } + + protected <R extends IdDto, E extends TopiaEntity> void registerDtoType(Class<R> dtoType, Class<E> entityType) { + DTO_TO_ENTITY_TYPE_BUILDER.put(dtoType, entityType); + } + + protected <R extends ReferentialDto, E extends TopiaEntity> void registerReferentialDtoBinder(Class<R> dtoType, Class<E> entityType, String... extraProperties) { + + BinderModelBuilder<R, E> dtoToEntityBuilder = newBinderBuilder(dtoType, entityType) + .canTypeMismatch(true) + .addSimpleProperties(DEFAULT_REFERENTIAL_PROPERTIES); + + if (I18nReferenceEntity.class.isAssignableFrom(entityType)) { + dtoToEntityBuilder.addSimpleProperties(DEFAULT_REFERENTIAL_I18N_PROPERTIES); + } + if (LengthWeightParameter.class.isAssignableFrom(entityType)) { + dtoToEntityBuilder.addSimpleProperties(DEFAULT_REFERENTIAL_LENGTH_WEIGHT_PARAMETER_PROPERTIES); + } + + if (extraProperties.length > 0) { + dtoToEntityBuilder.addSimpleProperties(extraProperties); + } + + registerDtoBinder(dtoToEntityBuilder); + + } + + protected static <R extends ReferentialDto, E extends TopiaEntity> void registerReferentialReferenceDtoBinder(Class<R> dtoType, Class<E> entityType, String... extraProperties) { + + registerReferentialReferenceDtoBinder(dtoType, entityType, true, extraProperties); + + } + + protected static <R extends ReferentialDto, E extends TopiaEntity> void registerReferentialReferenceDtoBinder(Class<R> dtoType, Class<E> entityType, boolean useDefault, String... extraProperties) { + + BinderModelBuilder<R, E> dtoToReferenceBuilder = + newBinderBuilder(dtoType, entityType) + .canTypeMismatch(true); + + if (useDefault) { + dtoToReferenceBuilder.addSimpleProperties(DEFAULT_REFERENTIAL_REFERENCE_PROPERTIES); + } + + if (extraProperties.length > 0) { + dtoToReferenceBuilder.addSimpleProperties(extraProperties); + } + + registerReferenceBinder(dtoToReferenceBuilder); + + } + + protected static <R extends IdDto, E extends TopiaEntity> void registerDtoBinder(BinderModelBuilder<R, E> dtoToEntityBuilder) { + + dtoToEntityBuilder.addProperty(IdDto.PROPERTY_ID, TopiaEntity.TOPIA_ID); + + BinderModelBuilder<E, R> entityToDtoToBuilder = dtoToEntityBuilder.buildInverseModelBuilder(); + BinderFactory.registerBinderModel(dtoToEntityBuilder, ObserveDtoBinders.DTO_TO_ENTITY); + BinderFactory.registerBinderModel(entityToDtoToBuilder, ObserveDtoBinders.ENTITY_TO_DTO); + + } + + protected static <R extends ReferentialDto, E extends TopiaEntity> void registerReferenceBinder(BinderModelBuilder<R, E> dtoToReferenceBuilder) { + + dtoToReferenceBuilder.addProperty(IdDto.PROPERTY_ID, TopiaEntity.TOPIA_ID); + + BinderModelBuilder<E, R> entityToReferenceBuilder = dtoToReferenceBuilder.buildInverseModelBuilder(); + + BinderFactory.registerBinderModel(dtoToReferenceBuilder, ObserveDtoBinders.DTO_TO_REFERENCE); + BinderFactory.registerBinderModel(entityToReferenceBuilder, ObserveDtoBinders.ENTITY_TO_REFERENCE); + + } + + protected static <Source, Target> BinderModelBuilder<Source, Target> newBinderBuilder(Class<Source> source, Class<Target> target, String... properties) { + BinderModelBuilder<Source, Target> builder = BinderModelBuilder.newEmptyBuilder(source, target); + builder.addSimpleProperties(properties); + return builder; + } + +} -- 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 develop in repository observe. See http://git.codelutin.com/observe.git commit 92c92c9ab2a7406f1e4752a2ca4bd198ef78683a Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 10:33:56 2015 +0200 Utilisation des binders pour effectuer les créations de dto --- .../services/service/ReferentialService.java | 2 +- .../fr/ird/observe/services/dto/ReferenceDto.java | 6 +- .../fr/ird/observe/services/dto/ReferenceDtos.java | 23 +- .../dto/referential/ReferentialReferenceDto.java | 2 +- .../dto/referential/ReferentialReferenceDtos.java | 136 +---------- .../services/service/ReferentialServiceRest.java | 4 +- .../observe/services/dto/EntityToDtoBuilder.java | 202 +++++++++++++++ .../services/dto/EntityToReferenceDtoBuilder.java | 61 +++++ .../observe/services/dto/ObserveDtoBinders.java | 38 +++ .../services/service/ReferentialDtoBuilder.java | 209 ---------------- .../services/service/ReferentialServiceTopia.java | 270 +++------------------ .../service/ApplicationContextResource.java | 3 + .../service/ReferentialServiceTopiaTest.java | 18 +- .../EntityToDtoBuilderTest.java} | 21 +- 14 files changed, 372 insertions(+), 623 deletions(-) diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java index 5d26659..6aaf414 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java @@ -15,7 +15,7 @@ import java.util.Collection; */ public interface ReferentialService extends ObserveService { - <R extends ReferentialDto> ReferenceSetDto getReferentialReferenceSet(Class<R> type); + <R extends ReferentialDto> ReferenceSetDto<R> getReferentialReferenceSet(Class<R> type); <R extends ReferentialDto> FormDto<R> loadToRead(Class<R> type, String id) throws DataNotFoundException; 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 d4bac9c..b043935 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 @@ -15,10 +15,10 @@ public class ReferenceDto<D extends IdDto> extends AbstractReferenceDto { protected Serializable[] labelPropertyValues; - protected void init(Class<D> type, ImmutableList<String> labelPropertyNames) { + protected void init(Class<D> type, Iterable<String> labelPropertyNames) { this.type = type; - this.labelPropertyNames = labelPropertyNames; - this.labelPropertyValues = new Serializable[labelPropertyNames.size()]; + this.labelPropertyNames = ImmutableList.copyOf(labelPropertyNames); + this.labelPropertyValues = new Serializable[this.labelPropertyNames.size()]; } public Serializable getPropertyValue(String propertyName) { diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceDtos.java index 1012a40..99c8d91 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceDtos.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceDtos.java @@ -1,28 +1,11 @@ package fr.ird.observe.services.dto; -import com.google.common.collect.ImmutableList; -import org.nuiton.util.beans.Binder; -import org.nuiton.util.beans.BinderFactory; - -import java.io.Serializable; -import java.util.Map; - public class ReferenceDtos extends AbstractReferenceDtos { - public static <R extends IdDto> ReferenceDto<R> newReferenceDto(Class<R> type, Object source) { - + public static <R extends IdDto> ReferenceDto<R> newReferenceDto(Class<R> type, Iterable<String> propertyNames) { ReferenceDto<R> dto = new ReferenceDto<>(); - - dto.init(type, ImmutableList.of("TODO")); - Binder binder = BinderFactory.newBinder(source.getClass()); - - String[] propertyNames = null; - Map<String, Object> properties = binder.obtainProperties(source, propertyNames); - for (Map.Entry<String, Object> entry : properties.entrySet()) { - String propertyName = entry.getKey(); - Object propertyValue = entry.getValue(); - dto.setPropertyValue(propertyName, (Serializable) propertyValue); - } + dto.init(type, propertyNames); return dto; } + } 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 60b43be..8d9bbe9 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 @@ -43,7 +43,7 @@ public class ReferentialReferenceDto<D extends ReferentialDto> extends AbstractR } } - protected void init(Class<D> type, ReferentialLocale referentialLocale, String... labelPropertyNames) { + protected void init(Class<D> type, ReferentialLocale referentialLocale, Iterable<String> labelPropertyNames) { this.type = type; String libelle = referentialLocale.getLibelle(); diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceDtos.java index 9702e7d..5e4dfb8 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceDtos.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceDtos.java @@ -1,149 +1,17 @@ package fr.ird.observe.services.dto.referential; -import com.google.common.collect.ImmutableMap; import fr.ird.observe.services.dto.constants.ReferentialLocale; -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; -import org.nuiton.util.beans.Binder; -import org.nuiton.util.beans.BinderFactory; -import java.io.Serializable; -import java.util.Map; +import java.util.Set; public class ReferentialReferenceDtos extends AbstractReferentialReferenceDtos { - /** - * Les noms des propriétés à utiliser dans le label par type de référentiel. - */ - protected static final ImmutableMap<Class<?>, String[]> LABEL_PROPERTY_NAMES_MAPPING; - - static { - - String[] DEFAULT_PROPERTY_NAMES = {ReferentialDto.PROPERTY_CODE, I18nReferentialDto.PROPERTY_LABEL1, I18nReferentialDto.PROPERTY_LABEL2, I18nReferentialDto.PROPERTY_LABEL3}; - - LABEL_PROPERTY_NAMES_MAPPING = ImmutableMap.<Class<?>, String[]>builder() - - .put(CountryDto.class, DEFAULT_PROPERTY_NAMES) - .put(FpaZoneDto.class, DEFAULT_PROPERTY_NAMES) - .put(GearCaracteristicDto.class, DEFAULT_PROPERTY_NAMES) - .put(GearCaracteristicTypeDto.class, DEFAULT_PROPERTY_NAMES) - .put(GearDto.class, DEFAULT_PROPERTY_NAMES) - .put(HarbourDto.class, new String[]{ReferentialDto.PROPERTY_CODE, HarbourDto.PROPERTY_NAME, HarbourDto.PROPERTY_LOCODE}) - // FIXME A revoir car on veut en fait ocean/libelle et species/scientificLabel - .put(LengthWeightParameterDto.class, new String[]{LengthWeightParameterDto.PROPERTY_SEX, LengthWeightParameterDto.PROPERTY_OCEAN, LengthWeightParameterDto.PROPERTY_SPECIES, LengthWeightParameterDto.PROPERTY_LENGTH_WEIGHT_FORMULA, LengthWeightParameterDto.PROPERTY_WEIGHT_LENGTH_FORMULA}) - .put(OceanDto.class, DEFAULT_PROPERTY_NAMES) - .put(OrganismDto.class, DEFAULT_PROPERTY_NAMES) - .put(PersonDto.class, new String[]{PersonDto.PROPERTY_FIRST_NAME, PersonDto.PROPERTY_LAST_NAME}) - .put(ProgramDto.class, new String[]{I18nReferentialDto.PROPERTY_LABEL1, I18nReferentialDto.PROPERTY_LABEL2, I18nReferentialDto.PROPERTY_LABEL3}) - .put(SexDto.class, DEFAULT_PROPERTY_NAMES) - .put(SpeciesDto.class, new String[]{SpeciesDto.PROPERTY_FAO_CODE, SpeciesDto.PROPERTY_SCIENTIFIC_LABEL, SpeciesDto.PROPERTY_HOME_ID}) - .put(SpeciesGroupDto.class, DEFAULT_PROPERTY_NAMES) - .put(SpeciesListDto.class, DEFAULT_PROPERTY_NAMES) - .put(VesselDto.class, DEFAULT_PROPERTY_NAMES) - .put(VesselSizeCategoryDto.class, new String[]{ReferentialDto.PROPERTY_CODE, VesselSizeCategoryDto.PROPERTY_GAUGE_LABEL, VesselSizeCategoryDto.PROPERTY_CAPACITY_LABEL}) - .put(VesselTypeDto.class, DEFAULT_PROPERTY_NAMES) - - .put(DetectionModeDto.class, DEFAULT_PROPERTY_NAMES) - .put(ObjectFateDto.class, DEFAULT_PROPERTY_NAMES) - .put(ObjectOperationDto.class, DEFAULT_PROPERTY_NAMES) - .put(ObjectTypeDto.class, DEFAULT_PROPERTY_NAMES) - .put(ObservedSystemDto.class, DEFAULT_PROPERTY_NAMES) - .put(ReasonForDiscardDto.class, DEFAULT_PROPERTY_NAMES) - .put(ReasonForNoFishingDto.class, DEFAULT_PROPERTY_NAMES) - .put(ReasonForNullSetDto.class, DEFAULT_PROPERTY_NAMES) - .put(SpeciesFateDto.class, DEFAULT_PROPERTY_NAMES) - .put(SpeciesStatusDto.class, DEFAULT_PROPERTY_NAMES) - .put(SurroundingActivityDto.class, DEFAULT_PROPERTY_NAMES) - .put(TransmittingBuoyOperationDto.class, DEFAULT_PROPERTY_NAMES) - .put(TransmittingBuoyTypeDto.class, DEFAULT_PROPERTY_NAMES) - .put(VesselActivitySeineDto.class, DEFAULT_PROPERTY_NAMES) - .put(WeightCategoryDto.class, DEFAULT_PROPERTY_NAMES) - .put(WindDto.class, new String[]{ReferentialDto.PROPERTY_CODE, I18nReferentialDto.PROPERTY_LABEL1, I18nReferentialDto.PROPERTY_LABEL2, I18nReferentialDto.PROPERTY_LABEL3, WindDto.PROPERTY_SPEED_RANGE}) - - .put(BaitHaulingStatusDto.class, DEFAULT_PROPERTY_NAMES) - .put(BaitSettingStatusDto.class, DEFAULT_PROPERTY_NAMES) - .put(BaitTypeDto.class, DEFAULT_PROPERTY_NAMES) - .put(CatchFateLonglineDto.class, DEFAULT_PROPERTY_NAMES) - .put(EncounterTypeDto.class, DEFAULT_PROPERTY_NAMES) - .put(HealthnessDto.class, DEFAULT_PROPERTY_NAMES) - .put(HookPositionDto.class, DEFAULT_PROPERTY_NAMES) - .put(HookSizeDto.class, DEFAULT_PROPERTY_NAMES) - .put(HookTypeDto.class, DEFAULT_PROPERTY_NAMES) - .put(ItemHorizontalPositionDto.class, DEFAULT_PROPERTY_NAMES) - .put(ItemVerticalPositionDto.class, DEFAULT_PROPERTY_NAMES) - .put(LightsticksColorDto.class, DEFAULT_PROPERTY_NAMES) - .put(LightsticksTypeDto.class, DEFAULT_PROPERTY_NAMES) - .put(LineTypeDto.class, DEFAULT_PROPERTY_NAMES) - .put(MaturityStatusDto.class, DEFAULT_PROPERTY_NAMES) - .put(MitigationTypeDto.class, DEFAULT_PROPERTY_NAMES) - .put(SensorBrandDto.class, new String[]{ReferentialDto.PROPERTY_CODE, SensorBrandDto.PROPERTY_BRAND_NAME}) - .put(SensorDataFormatDto.class, DEFAULT_PROPERTY_NAMES) - .put(SensorTypeDto.class, DEFAULT_PROPERTY_NAMES) - .put(SettingShapeDto.class, DEFAULT_PROPERTY_NAMES) - .put(SizeMeasureTypeDto.class, DEFAULT_PROPERTY_NAMES) - .put(StomacFullnessDto.class, DEFAULT_PROPERTY_NAMES) - .put(TripTypeDto.class, DEFAULT_PROPERTY_NAMES) - .put(VesselActivityLonglineDto.class, DEFAULT_PROPERTY_NAMES) - .put(WeightMeasureTypeDto.class, DEFAULT_PROPERTY_NAMES) - - .build(); - - } - public static <R extends ReferentialDto> ReferentialReferenceDto<R> newReferentialReferenceDto(Class<R> type, ReferentialLocale referentialLocale, - Object source) { - String[] propertyNames = LABEL_PROPERTY_NAMES_MAPPING.get(type); + Set<String> propertyNames) { ReferentialReferenceDto<R> dto = new ReferentialReferenceDto<>(); dto.init(type, referentialLocale, propertyNames); - - Binder binder = BinderFactory.newBinder(source.getClass()); - Map<String, Object> properties = binder.obtainProperties(source, propertyNames); - for (Map.Entry<String, Object> entry : properties.entrySet()) { - String propertyName = entry.getKey(); - Object propertyValue = entry.getValue(); - dto.setPropertyValue(referentialLocale, propertyName, (Serializable) propertyValue); - } return dto; } diff --git a/observe-services-rest/src/main/java/fr/ird/observe/services/service/ReferentialServiceRest.java b/observe-services-rest/src/main/java/fr/ird/observe/services/service/ReferentialServiceRest.java index 679c212..fa73b4a 100644 --- a/observe-services-rest/src/main/java/fr/ird/observe/services/service/ReferentialServiceRest.java +++ b/observe-services-rest/src/main/java/fr/ird/observe/services/service/ReferentialServiceRest.java @@ -16,9 +16,9 @@ import java.util.Collection; public class ReferentialServiceRest extends ObserveServiceRest implements ReferentialService { @Override - public <R extends ReferentialDto> ReferenceSetDto getReferentialReferenceSet(Class<R> type) { + public <R extends ReferentialDto> ReferenceSetDto<R> getReferentialReferenceSet(Class<R> type) { - return new ReferenceSetDto(type); + return new ReferenceSetDto<>(type); } @Override diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/EntityToDtoBuilder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/EntityToDtoBuilder.java new file mode 100644 index 0000000..7f7d2d2 --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/EntityToDtoBuilder.java @@ -0,0 +1,202 @@ +package fr.ird.observe.services.dto; + +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Iterables; +import fr.ird.observe.ObserveEntityEnum; +import fr.ird.observe.entities.Set; +import fr.ird.observe.entities.constants.GearType; +import fr.ird.observe.entities.constants.ReferenceStatus; +import fr.ird.observe.entities.constants.seine.NonTargetCatchComputedValueSource; +import fr.ird.observe.entities.constants.seine.Ownership; +import fr.ird.observe.entities.constants.seine.SchoolType; +import fr.ird.observe.entities.constants.seine.TypeTransmittingBuoyOperation; +import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.dto.constants.ReferentialLocale; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.util.beans.Binder; + +import java.io.Closeable; +import java.util.Collection; +import java.util.LinkedHashSet; +import java.util.LinkedList; +import java.util.Map; + +/** + * Created on 18/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class EntityToDtoBuilder<E extends TopiaEntity, D extends IdDto> implements Closeable { + + private final D result; + + private final Binder<E, D> binder; + + private ImmutableSet<Class<? extends IdDto>> referencesTypes; + + public EntityToDtoBuilder(D result, Binder<E, D> binder) { + this.result = result; + this.binder = binder; + } + + public static <E extends TopiaEntity, D extends ReferentialDto> EntityToDtoBuilder<E, D> create(Class<E> entityType, Class<D> dtoType) { + + Preconditions.checkNotNull(entityType, "entityType can't be null."); + Preconditions.checkNotNull(dtoType, "dtoType can't be null."); + D result; + try { + result = dtoType.newInstance(); + } catch (InstantiationException | IllegalAccessException e) { + throw new IllegalStateException("Could not instanciate dto of type: " + dtoType.getName()); + } + + Binder<E, D> binder = ObserveDtoBinders.newEntityToDtoBinder(entityType, dtoType); + EntityToDtoBuilder<E, D> builder = new EntityToDtoBuilder<>(result, binder); + return builder; + } + + public D build(ReferentialLocale referentialLocale, E entity) { + + ImmutableSet.Builder<Class<? extends IdDto>> referenceTypesBuilder = new ImmutableSet.Builder<>(); + + Map<String, Object> entityProperties = binder.obtainProperties(entity, false); + + ImmutableMap.Builder<String, Object> dtoPropertiesBuilder = new ImmutableMap.Builder<>(); + + for (Map.Entry<String, Object> entry : entityProperties.entrySet()) { + String propertyName = entry.getKey(); + Object propertyValue = entry.getValue(); + + Collection<Object> propertyValueCollection = null; + if (propertyValue instanceof Set) { + + propertyValueCollection = new LinkedHashSet<>(); + } + if (propertyValue instanceof Collection) { + propertyValueCollection = new LinkedList<>(); + } + + if (propertyValueCollection != null) { + + Collection collection = (Collection) propertyValue; + if (collection.isEmpty()) { + continue; + } + Object valueToAdd = collection; + + Object o1 = Iterables.get(collection, 0); + + if (o1 instanceof TopiaEntity) { + + Class<? extends TopiaEntity> entityType = ObserveEntityEnum.valueOf((TopiaEntity)o1).getContract(); + + Class dtoType = ObserveServiceTopia.getDtoType(entityType); + + Collection<? extends TopiaEntity> topiaEntities = (Collection<? extends TopiaEntity>) collection; + LinkedHashSet<ReferenceDto> references = new LinkedHashSet<>(topiaEntities.size()); + for (TopiaEntity entityValue : topiaEntities) { + + references.add(entityToRef(referentialLocale, dtoType, entityValue, referenceTypesBuilder)); + } + valueToAdd = references; + + } + + addProperty(propertyName, valueToAdd, dtoPropertiesBuilder); + + continue; + } + + if (propertyValue instanceof TopiaEntity) { + + TopiaEntity entityValue = (TopiaEntity) propertyValue; + + Class<? extends TopiaEntity> entityType = ObserveEntityEnum.valueOf(entityValue).getContract(); + Class dtoType = ObserveServiceTopia.getDtoType(entityType); + propertyValue = entityToRef(referentialLocale, dtoType, entityValue, referenceTypesBuilder); + + } + + addProperty(propertyName, propertyValue, dtoPropertiesBuilder); + + } + + ImmutableMap<String, Object> properties = dtoPropertiesBuilder.build(); + binder.injectProperties(properties, result); + + referencesTypes = referenceTypesBuilder.build(); + + return result; + + } + + private void addProperty(String propertyName, Object propertyValue, ImmutableMap.Builder<String, Object> dtoPropertiesBuilder) { + + if (TopiaEntity.TOPIA_ID.equals(propertyName)) { + propertyName = ReferentialDto.PROPERTY_ID; + } else if (propertyValue instanceof GearType) { + + GearType entityGearType = (GearType) propertyValue; + propertyValue = fr.ird.observe.services.dto.constants.GearType.valueOf(entityGearType.name()); + + } else if (propertyValue instanceof ReferenceStatus) { + + ReferenceStatus referenceStatus = (ReferenceStatus) propertyValue; + propertyValue = fr.ird.observe.services.dto.constants.ReferenceStatus.valueOf(referenceStatus.name()); + + } else if (propertyValue instanceof Ownership) { + + Ownership ownership = (Ownership) propertyValue; + propertyValue = fr.ird.observe.services.dto.constants.seine.Ownership.valueOf(ownership.name()); + + } else if (propertyValue instanceof SchoolType) { + + SchoolType schoolType = (SchoolType) propertyValue; + propertyValue = fr.ird.observe.services.dto.constants.seine.SchoolType.valueOf(schoolType.name()); + + } else if (propertyValue instanceof TypeTransmittingBuoyOperation) { + + TypeTransmittingBuoyOperation typeTransmittingBuoyOperation = (TypeTransmittingBuoyOperation) propertyValue; + propertyValue = fr.ird.observe.services.dto.constants.seine.TypeTransmittingBuoyOperation.valueOf(typeTransmittingBuoyOperation.name()); + + } else if (propertyValue instanceof NonTargetCatchComputedValueSource) { + + NonTargetCatchComputedValueSource nonTargetCatchComputedValueSource = (NonTargetCatchComputedValueSource) propertyValue; + propertyValue = fr.ird.observe.services.dto.constants.seine.NonTargetCatchComputedValueSource.valueOf(nonTargetCatchComputedValueSource.name()); + + } + + dtoPropertiesBuilder.put(propertyName, propertyValue); + + } + + protected <R extends IdDto> ReferenceDto<R> entityToRef(ReferentialLocale referentialLocale, Class<R> dtoType, TopiaEntity entityValue, ImmutableSet.Builder<Class<? extends IdDto>> referenceTypesBuilder) { + + referenceTypesBuilder.add(dtoType); + + ReferenceDto<R> label; + if (ReferentialDto.class.isAssignableFrom(dtoType)) { + + label = EntityToReferenceDtoBuilder.buildReferential((Class) dtoType, referentialLocale, entityValue); + + } else { + label = EntityToReferenceDtoBuilder.build(dtoType, entityValue); + } + + label.setId(entityValue.getTopiaId()); + return label; + + } + + @Override + public void close() { + + } + + public ImmutableSet<Class<? extends IdDto>> getReferenceTypes() { + return referencesTypes; + } +} diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/EntityToReferenceDtoBuilder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/EntityToReferenceDtoBuilder.java new file mode 100644 index 0000000..0c8d288 --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/EntityToReferenceDtoBuilder.java @@ -0,0 +1,61 @@ +package fr.ird.observe.services.dto; + +import fr.ird.observe.ObserveEntityEnum; +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 org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.util.beans.Binder; + +import java.io.Serializable; +import java.util.Map; +import java.util.Set; + +/** + * Created on 19/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class EntityToReferenceDtoBuilder<E extends TopiaEntity, D extends IdDto> { + + public static <E extends TopiaEntity, D extends IdDto> ReferenceDto<D> build(Class<D> dtoType, E entity) { + + Class<E> entityType = (Class<E>) ObserveEntityEnum.valueOf(entity).getContract(); + Binder<E, E> binder = ObserveDtoBinders.newEntityToReferenceBinder(entityType); + + Map<String, Object> entityProperties = binder.obtainProperties(entity); + Set<String> propertyNames = entityProperties.keySet(); + + ReferenceDto<D> result = ReferenceDtos.newReferenceDto(dtoType, propertyNames); + + for (Map.Entry<String, Object> entry : entityProperties.entrySet()) { + String propertyName = entry.getKey(); + Object propertyValue = entry.getValue(); + result.setPropertyValue(propertyName, (Serializable) propertyValue); + } + return result; + + } + + public static <E extends TopiaEntity, D extends ReferentialDto> ReferentialReferenceDto<D> buildReferential(Class<D> dtoType, ReferentialLocale referentialLocale, E entity) { + + Class<E> entityType = (Class<E>) ObserveEntityEnum.valueOf(entity).getContract(); + Binder<E, E> binder = ObserveDtoBinders.newEntityToReferenceBinder(entityType); + + Map<String, Object> entityProperties = binder.obtainProperties(entity); + Set<String> propertyNames = entityProperties.keySet(); + + ReferentialReferenceDto<D> result = ReferentialReferenceDtos.newReferentialReferenceDto(dtoType, referentialLocale, propertyNames); + + for (Map.Entry<String, Object> entry : entityProperties.entrySet()) { + String propertyName = entry.getKey(); + Object propertyValue = entry.getValue(); + result.setPropertyValue(referentialLocale, propertyName, (Serializable) propertyValue); + } + + return result; + + } + +} diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtoBinders.java b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtoBinders.java new file mode 100644 index 0000000..fc11b56 --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtoBinders.java @@ -0,0 +1,38 @@ +package fr.ird.observe.services.dto; + +import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.util.beans.Binder; +import org.nuiton.util.beans.BinderFactory; + +/** + * Created on 18/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveDtoBinders { + + public static final String DTO_TO_ENTITY = "dtoToEntity"; + + public static final String DTO_TO_REFERENCE = "dtoToReference"; + + public static final String ENTITY_TO_REFERENCE = "entityToReference"; + + public static final String ENTITY_TO_DTO = "entityToDto"; + + public static <R extends IdDto, E extends TopiaEntity> Binder<R, E> newDtoToEntityBinder(Class<R> dtoType, Class<E> entityType) { + return BinderFactory.newBinder(dtoType, entityType, DTO_TO_ENTITY); + } + + public static <E extends TopiaEntity, R extends IdDto> Binder<E, R> newEntityToDtoBinder(Class<E> entityType, Class<R> dtoType) { + return BinderFactory.newBinder(entityType, dtoType, ENTITY_TO_DTO); + } + + public static <R extends IdDto> Binder<R, R> newDtoToReferenceBinder(Class<R> dtoType) { + return BinderFactory.newBinder(dtoType, DTO_TO_ENTITY); + } + + public static <E extends TopiaEntity> Binder<E, E> newEntityToReferenceBinder(Class<E> entityType) { + return BinderFactory.newBinder(entityType, DTO_TO_ENTITY); + } + +} diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialDtoBuilder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialDtoBuilder.java deleted file mode 100644 index 1f24107..0000000 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialDtoBuilder.java +++ /dev/null @@ -1,209 +0,0 @@ -package fr.ird.observe.services.service; - -import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; -import fr.ird.observe.entities.constants.GearType; -import fr.ird.observe.entities.constants.ReferenceStatus; -import fr.ird.observe.entities.constants.seine.NonTargetCatchComputedValueSource; -import fr.ird.observe.entities.constants.seine.Ownership; -import fr.ird.observe.entities.constants.seine.SchoolType; -import fr.ird.observe.entities.constants.seine.TypeTransmittingBuoyOperation; -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 org.nuiton.topia.persistence.EntityVisitor; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.util.beans.Binder; -import org.nuiton.util.beans.BinderFactory; - -import java.io.Closeable; -import java.util.Collection; -import java.util.LinkedHashSet; - -/** - * Created on 16/08/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ReferentialDtoBuilder<M extends ReferentialDto> implements Closeable { - - private M result; - - private final ReferentialLocale referentialLocale; - - private ImmutableMap.Builder<String, Object> valuesBuilder; - - private Binder<M, M> binder; - - private final EntityVisitor visitor; - - private ImmutableSet.Builder<Class<? extends ReferentialDto>> referentialDtoTypesBuilder; - - public static <M extends ReferentialDto> ReferentialDtoBuilder<M> create(Class<M> dtoType, ReferentialLocale referentialLocale) { - - Preconditions.checkNotNull(dtoType, "dtoType can't be null."); - M result; - try { - result = dtoType.newInstance(); - } catch (InstantiationException | IllegalAccessException e) { - throw new IllegalStateException("Could not instanciate dto of type: " + dtoType.getName()); - } - ReferentialDtoBuilder<M> visitor = new ReferentialDtoBuilder<>(result, referentialLocale); - return visitor; - } - - public ReferentialDtoBuilder<M> copyEntity(TopiaEntity entity) { - entity.accept(visitor); - return this; - } - - public M build() { - - ImmutableMap<String, Object> properties = valuesBuilder.build(); - binder.injectProperties(properties, result); - return result; - - } - - public ImmutableSet<Class<? extends ReferentialDto>> getReferentialDtoTypes() { - return referentialDtoTypesBuilder.build(); - } - - protected ReferentialDtoBuilder(M result, ReferentialLocale referentialLocale) { - this.result = result; - this.referentialLocale = referentialLocale; - this.binder = (Binder<M, M>) BinderFactory.newBinder(result.getClass()); - this.valuesBuilder = new ImmutableMap.Builder<>(); - this.visitor = new ToModelVisitor(); - this.referentialDtoTypesBuilder = new ImmutableSet.Builder<>(); - } - - protected void putPropertyValue(String propertyName, Object propertyValue) { - - if (TopiaEntity.TOPIA_ID.equals(propertyName)) { - propertyName = ReferentialDto.PROPERTY_ID; - } else if (propertyValue instanceof GearType) { - - GearType entityGearType = (GearType) propertyValue; - propertyValue = fr.ird.observe.services.dto.constants.GearType.valueOf(entityGearType.name()); - - } else if (propertyValue instanceof ReferenceStatus) { - - ReferenceStatus referenceStatus = (ReferenceStatus) propertyValue; - propertyValue = fr.ird.observe.services.dto.constants.ReferenceStatus.valueOf(referenceStatus.name()); - - } else if (propertyValue instanceof Ownership) { - - Ownership ownership = (Ownership) propertyValue; - propertyValue = fr.ird.observe.services.dto.constants.seine.Ownership.valueOf(ownership.name()); - - } else if (propertyValue instanceof SchoolType) { - - SchoolType schoolType = (SchoolType) propertyValue; - propertyValue = fr.ird.observe.services.dto.constants.seine.SchoolType.valueOf(schoolType.name()); - - } else if (propertyValue instanceof TypeTransmittingBuoyOperation) { - - TypeTransmittingBuoyOperation typeTransmittingBuoyOperation = (TypeTransmittingBuoyOperation) propertyValue; - propertyValue = fr.ird.observe.services.dto.constants.seine.TypeTransmittingBuoyOperation.valueOf(typeTransmittingBuoyOperation.name()); - - } else if (propertyValue instanceof NonTargetCatchComputedValueSource) { - - NonTargetCatchComputedValueSource nonTargetCatchComputedValueSource = (NonTargetCatchComputedValueSource) propertyValue; - propertyValue = fr.ird.observe.services.dto.constants.seine.NonTargetCatchComputedValueSource.valueOf(nonTargetCatchComputedValueSource.name()); - - } - - valuesBuilder.put(propertyName, propertyValue); - - } - - protected <R extends ReferentialDto> ReferentialReferenceDto<R> entityToRef(Class<R> dtoType, TopiaEntity entityValue) { - - referentialDtoTypesBuilder.add(dtoType); - ReferentialReferenceDto<R> label = ReferentialReferenceDtos.newReferentialReferenceDto(dtoType, referentialLocale, entityValue); - label.setId(entityValue.getTopiaId()); - return label; - - } - - @Override - public void close() { - valuesBuilder = null; - result = null; - binder = null; - visitor.clear(); - } - - protected class ToModelVisitor implements EntityVisitor { - - @Override - public void start(TopiaEntity entity) { - visit(entity, TopiaEntity.TOPIA_ID, String.class, entity.getTopiaId()); - //visit(entity, TopiaEntity.TOPIA_VERSION, long.class, entity.getTopiaVersion()); - //visit(entity, TopiaEntity.TOPIA_CREATE_DATE, Date.class, entity.getTopiaCreateDate()); - } - - @Override - public void end(TopiaEntity entity) { - } - - @Override - public void visit(TopiaEntity entity, String propertyName, Class<?> type, Object value) { - - if (value != null) { - - Object valueToAdd = value; - if (value instanceof TopiaEntity) { - - TopiaEntity entityValue = (TopiaEntity) value; - - Class dtoType = ReferentialServiceTopia.entityToModelTypeCache.get(type); - valueToAdd = entityToRef(dtoType, entityValue); - - } - - putPropertyValue(propertyName, valueToAdd); - - } - - } - - @Override - public void visit(TopiaEntity entity, String propertyName, Class<?> collectionType, Class<?> type, Object value) { - - if (value != null) { - - Object valueToAdd = value; - if (TopiaEntity.class.isAssignableFrom(type)) { - - Class dtoType = ReferentialServiceTopia.entityToModelTypeCache.get(type); - - Collection<? extends TopiaEntity> topiaEntities = (Collection<? extends TopiaEntity>) value; - LinkedHashSet<ReferentialReferenceDto> models = new LinkedHashSet<>(topiaEntities.size()); - for (TopiaEntity entityValue : topiaEntities) { - - models.add(entityToRef(dtoType, entityValue)); - } - valueToAdd = models; - - } - - putPropertyValue(propertyName, valueToAdd); - - } - - } - - @Override - public void visit(TopiaEntity entity, String propertyName, Class<?> collectionType, Class<?> type, int index, Object value) { - } - - @Override - public void clear() { - - } - } -} 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 6983bdd..393cd4a 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 @@ -1,134 +1,17 @@ package fr.ird.observe.services.service; -import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import fr.ird.observe.ObserveDAOHelper; -import fr.ird.observe.entities.referentiel.Country; -import fr.ird.observe.entities.referentiel.FpaZone; -import fr.ird.observe.entities.referentiel.Gear; -import fr.ird.observe.entities.referentiel.GearCaracteristic; -import fr.ird.observe.entities.referentiel.GearCaracteristicType; -import fr.ird.observe.entities.referentiel.Harbour; -import fr.ird.observe.entities.referentiel.LengthWeightParameter; -import fr.ird.observe.entities.referentiel.Ocean; -import fr.ird.observe.entities.referentiel.Organism; -import fr.ird.observe.entities.referentiel.Person; -import fr.ird.observe.entities.referentiel.Program; -import fr.ird.observe.entities.referentiel.Sex; -import fr.ird.observe.entities.referentiel.Species; -import fr.ird.observe.entities.referentiel.SpeciesGroup; -import fr.ird.observe.entities.referentiel.SpeciesList; -import fr.ird.observe.entities.referentiel.Vessel; -import fr.ird.observe.entities.referentiel.VesselSizeCategory; -import fr.ird.observe.entities.referentiel.VesselType; -import fr.ird.observe.entities.referentiel.longline.BaitHaulingStatus; -import fr.ird.observe.entities.referentiel.longline.BaitSettingStatus; -import fr.ird.observe.entities.referentiel.longline.BaitType; -import fr.ird.observe.entities.referentiel.longline.CatchFateLongline; -import fr.ird.observe.entities.referentiel.longline.EncounterType; -import fr.ird.observe.entities.referentiel.longline.Healthness; -import fr.ird.observe.entities.referentiel.longline.HookPosition; -import fr.ird.observe.entities.referentiel.longline.HookSize; -import fr.ird.observe.entities.referentiel.longline.HookType; -import fr.ird.observe.entities.referentiel.longline.ItemHorizontalPosition; -import fr.ird.observe.entities.referentiel.longline.ItemVerticalPosition; -import fr.ird.observe.entities.referentiel.longline.LightsticksColor; -import fr.ird.observe.entities.referentiel.longline.LightsticksType; -import fr.ird.observe.entities.referentiel.longline.LineType; -import fr.ird.observe.entities.referentiel.longline.MaturityStatus; -import fr.ird.observe.entities.referentiel.longline.MitigationType; -import fr.ird.observe.entities.referentiel.longline.SensorBrand; -import fr.ird.observe.entities.referentiel.longline.SensorDataFormat; -import fr.ird.observe.entities.referentiel.longline.SensorType; -import fr.ird.observe.entities.referentiel.longline.SettingShape; -import fr.ird.observe.entities.referentiel.longline.SizeMeasureType; -import fr.ird.observe.entities.referentiel.longline.StomacFullness; -import fr.ird.observe.entities.referentiel.longline.TripType; -import fr.ird.observe.entities.referentiel.longline.VesselActivityLongline; -import fr.ird.observe.entities.referentiel.longline.WeightMeasureType; -import fr.ird.observe.entities.referentiel.seine.DetectionMode; -import fr.ird.observe.entities.referentiel.seine.ObjectFate; -import fr.ird.observe.entities.referentiel.seine.ObjectOperation; -import fr.ird.observe.entities.referentiel.seine.ObjectType; -import fr.ird.observe.entities.referentiel.seine.ObservedSystem; -import fr.ird.observe.entities.referentiel.seine.ReasonForDiscard; -import fr.ird.observe.entities.referentiel.seine.ReasonForNoFishing; -import fr.ird.observe.entities.referentiel.seine.ReasonForNullSet; -import fr.ird.observe.entities.referentiel.seine.SpeciesFate; -import fr.ird.observe.entities.referentiel.seine.SpeciesStatus; -import fr.ird.observe.entities.referentiel.seine.SurroundingActivity; -import fr.ird.observe.entities.referentiel.seine.TransmittingBuoyOperation; -import fr.ird.observe.entities.referentiel.seine.TransmittingBuoyType; -import fr.ird.observe.entities.referentiel.seine.VesselActivitySeine; -import fr.ird.observe.entities.referentiel.seine.WeightCategory; -import fr.ird.observe.entities.referentiel.seine.Wind; import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.dto.EntityToDtoBuilder; +import fr.ird.observe.services.dto.EntityToReferenceDtoBuilder; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.FormDtos; +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.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.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.ReferentialReferenceDto; -import fr.ird.observe.services.dto.referential.ReferentialReferenceDtos; -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; import org.nuiton.topia.TopiaContext; import org.nuiton.topia.persistence.TopiaDAO; import org.nuiton.topia.persistence.TopiaEntity; @@ -137,7 +20,6 @@ import java.util.Collection; import java.util.Collections; import java.util.LinkedHashSet; import java.util.List; -import java.util.Map; /** * Created on 16/08/15. @@ -146,130 +28,44 @@ import java.util.Map; */ public class ReferentialServiceTopia extends ObserveServiceTopia implements ReferentialService { - protected static final ImmutableMap<Class<?>, Class<?>> entityToModelTypeCache = new ImmutableMap.Builder<Class<?>, Class<?>>() - - .put(Country.class, CountryDto.class) - .put(FpaZone.class, FpaZoneDto.class) - .put(GearCaracteristic.class, GearCaracteristicDto.class) - .put(GearCaracteristicType.class, GearCaracteristicTypeDto.class) - .put(Gear.class, GearDto.class) - .put(Harbour.class, HarbourDto.class) - .put(LengthWeightParameter.class, LengthWeightParameterDto.class) - .put(Ocean.class, OceanDto.class) - .put(Organism.class, OrganismDto.class) - .put(Person.class, PersonDto.class) - .put(Program.class, ProgramDto.class) - .put(Sex.class, SexDto.class) - .put(Species.class, SpeciesDto.class) - .put(SpeciesGroup.class, SpeciesGroupDto.class) - .put(SpeciesList.class, SpeciesListDto.class) - .put(Vessel.class, VesselDto.class) - .put(VesselSizeCategory.class, VesselSizeCategoryDto.class) - .put(VesselType.class, VesselTypeDto.class) - - .put(DetectionMode.class, DetectionModeDto.class) - .put(ObjectFate.class, ObjectFateDto.class) - .put(ObjectOperation.class, ObjectOperationDto.class) - .put(ObjectType.class, ObjectTypeDto.class) - .put(ObservedSystem.class, ObservedSystemDto.class) - .put(ReasonForDiscard.class, ReasonForDiscardDto.class) - .put(ReasonForNoFishing.class, ReasonForNoFishingDto.class) - .put(ReasonForNullSet.class, ReasonForNullSetDto.class) - .put(SpeciesFate.class, SpeciesFateDto.class) - .put(SpeciesStatus.class, SpeciesStatusDto.class) - .put(SurroundingActivity.class, SurroundingActivityDto.class) - .put(TransmittingBuoyOperation.class, TransmittingBuoyOperationDto.class) - .put(TransmittingBuoyType.class, TransmittingBuoyTypeDto.class) - .put(VesselActivitySeine.class, VesselActivitySeineDto.class) - .put(WeightCategory.class, WeightCategoryDto.class) - .put(Wind.class, WindDto.class) - - .put(BaitHaulingStatus.class, BaitHaulingStatusDto.class) - .put(BaitSettingStatus.class, BaitSettingStatusDto.class) - .put(BaitType.class, BaitTypeDto.class) - .put(CatchFateLongline.class, CatchFateLonglineDto.class) - .put(EncounterType.class, EncounterTypeDto.class) - .put(Healthness.class, HealthnessDto.class) - .put(HookPosition.class, HookPositionDto.class) - .put(HookSize.class, HookSizeDto.class) - .put(HookType.class, HookTypeDto.class) - .put(ItemHorizontalPosition.class, ItemHorizontalPositionDto.class) - .put(ItemVerticalPosition.class, ItemVerticalPositionDto.class) - .put(LightsticksColor.class, LightsticksColorDto.class) - .put(LightsticksType.class, LightsticksTypeDto.class) - .put(LineType.class, LineTypeDto.class) - .put(MaturityStatus.class, MaturityStatusDto.class) - .put(MitigationType.class, MitigationTypeDto.class) - .put(SensorBrand.class, SensorBrandDto.class) - .put(SensorDataFormat.class, SensorDataFormatDto.class) - .put(SensorType.class, SensorTypeDto.class) - .put(SettingShape.class, SettingShapeDto.class) - .put(SizeMeasureType.class, SizeMeasureTypeDto.class) - .put(StomacFullness.class, StomacFullnessDto.class) - .put(TripType.class, TripTypeDto.class) - .put(VesselActivityLongline.class, VesselActivityLonglineDto.class) - .put(WeightMeasureType.class, WeightMeasureTypeDto.class) - - .build(); - - protected static final ImmutableMap<Class<?>, Class<?>> modelToEntityTypeCache; - - static { - - // FIXME Voir si y'a pas une api guava pour ça - ImmutableMap.Builder<Class<?>, Class<?>> builder = new ImmutableMap.Builder<>(); - for (Map.Entry<Class<?>, Class<?>> entry : entityToModelTypeCache.entrySet()) { - builder.put(entry.getValue(), entry.getKey()); - } - modelToEntityTypeCache = builder.build(); - - } - @Override - public <D extends ReferentialDto> ReferenceSetDto getReferentialReferenceSet(Class<D> dtoType) { + public <D extends ReferentialDto> ReferenceSetDto<D> getReferentialReferenceSet(Class<D> dtoType) { Class<TopiaEntity> entityType = getEntityType(dtoType); List<TopiaEntity> entities = loadEntities(entityType); LinkedHashSet<ReferentialReferenceDto<D>> labels = new LinkedHashSet<>(); for (TopiaEntity entity : entities) { - ReferentialReferenceDto<D> dto = ReferentialReferenceDtos.newReferentialReferenceDto(dtoType, serviceContext.getReferentialLocale(), entity); + + ReferentialReferenceDto<D> dto = EntityToReferenceDtoBuilder.buildReferential(dtoType, serviceContext.getReferentialLocale(), entity); labels.add(dto); - } - ReferenceSetDto labelSetDto = ReferenceSetDtos.newReferenceSetDto(dtoType, labels); - return labelSetDto; - } - public <D extends ReferentialDto> ReferenceSetDto getReferentialLabelSet(Class<D> dtoType, String id) { - Class<TopiaEntity> entityType = getEntityType(dtoType); - TopiaEntity entity = loadEntity(dtoType, entityType, id); - LinkedHashSet<ReferentialReferenceDto<D>> labels = new LinkedHashSet<>(1); - ReferentialReferenceDto<D> dto = ReferentialReferenceDtos.newReferentialReferenceDto(dtoType, serviceContext.getReferentialLocale(), entity); - labels.add(dto); + } ReferenceSetDto labelSetDto = ReferenceSetDtos.newReferenceSetDto(dtoType, labels); return labelSetDto; } @Override public <D extends ReferentialDto> FormDto<D> loadToRead(Class<D> dtoType, String id) { - Class<? extends TopiaEntity> entityType = getEntityType(dtoType); + Class<TopiaEntity> entityType = getEntityType(dtoType); TopiaEntity entity = loadEntity(dtoType, entityType, id); - FormDto<D> form = entityToReadReferentialFormDto(dtoType, entity); + FormDto<D> form = entityToReadReferentialFormDto(dtoType, entityType, entity); return form; } + @Override public <D extends ReferentialDto> FormDto<D> loadToEdit(Class<D> dtoType, String id) { - Class<? extends TopiaEntity> entityType = getEntityType(dtoType); + Class<TopiaEntity> entityType = getEntityType(dtoType); TopiaEntity entity = loadEntity(dtoType, entityType, id); - FormDto<D> form = entityToEditReferentialFormDto(dtoType, entity); + FormDto<D> form = entityToEditReferentialFormDto(dtoType, entityType, entity); return form; } @Override public <D extends ReferentialDto> FormDto<D> preCreate(Class<D> dtoType) { - Class<? extends TopiaEntity> entityType = getEntityType(dtoType); + Class<TopiaEntity> entityType = getEntityType(dtoType); TopiaEntity entity = newEntity(entityType); //TODO Voir selon le type d'entité si il y a des valeurs par défaut à utiliser - FormDto<D> form = entityToEditReferentialFormDto(dtoType, entity); + FormDto<D> form = entityToEditReferentialFormDto(dtoType, entityType, entity); return form; } @@ -278,7 +74,7 @@ public class ReferentialServiceTopia extends ObserveServiceTopia implements Refe TopiaEntity entity = referentialDtoToEntity(form.getForm()); Class<TopiaEntity> entityType = getEntityType(dtoType); entity = saveEntity(entityType, entity); - FormDto<D> model = entityToEditReferentialFormDto(dtoType, entity); + FormDto<D> model = entityToEditReferentialFormDto(dtoType, entityType, entity); return model.getForm().getId(); } @@ -337,19 +133,18 @@ public class ReferentialServiceTopia extends ObserveServiceTopia implements Refe } } - protected <D extends ReferentialDto> FormDto<D> entityToEditReferentialFormDto(Class<D> dtoType, TopiaEntity entity) { - try (ReferentialDtoBuilder<D> dtoBuilder = ReferentialDtoBuilder.create(dtoType, serviceContext.getReferentialLocale())) { + protected <E extends TopiaEntity, D extends ReferentialDto> FormDto<D> entityToEditReferentialFormDto(Class<D> dtoType, Class<E> entityType, E entity) { + try (EntityToDtoBuilder<E, D> dtoBuilder = EntityToDtoBuilder.create(entityType, dtoType)) { // copy entity - dtoBuilder.copyEntity(entity); - D dto = dtoBuilder.build(); + D dto = dtoBuilder.build(serviceContext.getReferentialLocale(), entity); // build label sets detected while copy - ImmutableSet<Class<? extends ReferentialDto>> referentialDtoTypes = dtoBuilder.getReferentialDtoTypes(); + ImmutableSet<Class<? extends IdDto>> referentialDtoTypes = dtoBuilder.getReferenceTypes(); ImmutableSet.Builder<ReferenceSetDto> labels = new ImmutableSet.Builder<>(); - for (Class<? extends ReferentialDto> referenceDtoType : referentialDtoTypes) { - ReferenceSetDto referentialLabelSet = getReferentialReferenceSet(referenceDtoType); - labels.add(referentialLabelSet); + for (Class<? extends IdDto> referenceDtoType : referentialDtoTypes) { + ReferenceSetDto referenceSet = getReferentialReferenceSet((Class<ReferentialDto>) referenceDtoType); + labels.add(referenceSet); } FormDto<D> form = FormDtos.newFormDto(dtoType, dto, labels.build()); return form; @@ -357,17 +152,16 @@ public class ReferentialServiceTopia extends ObserveServiceTopia implements Refe } } - protected <D extends ReferentialDto> FormDto<D> entityToReadReferentialFormDto(Class<D> dtoType, TopiaEntity entity) { - try (ReferentialDtoBuilder<D> dtoBuilder = ReferentialDtoBuilder.create(dtoType, serviceContext.getReferentialLocale())) { + protected <E extends TopiaEntity, D extends ReferentialDto> FormDto<D> entityToReadReferentialFormDto(Class<D> dtoType, Class<E> entityType, E entity) { + try (EntityToDtoBuilder<E, D> dtoBuilder = EntityToDtoBuilder.create(entityType, dtoType)) { // copy entity - dtoBuilder.copyEntity(entity); - D dto = dtoBuilder.build(); + D dto = dtoBuilder.build(serviceContext.getReferentialLocale(), entity); // build label sets detected while copy (keep the reference for each label, or nothing if value not set) - ImmutableSet<Class<? extends ReferentialDto>> referentialDtoTypes = dtoBuilder.getReferentialDtoTypes(); + ImmutableSet<Class<? extends IdDto>> referentialDtoTypes = dtoBuilder.getReferenceTypes(); ImmutableSet.Builder<ReferenceSetDto> labels = new ImmutableSet.Builder<>(); - for (Class<? extends ReferentialDto> referentialDtoType : referentialDtoTypes) { + for (Class<? extends IdDto> referentialDtoType : referentialDtoTypes) { ReferenceSetDto referentialLabelSet = ReferenceSetDtos.newEmptyReferenceSetDto(referentialDtoType); labels.add(referentialLabelSet); @@ -386,14 +180,4 @@ public class ReferentialServiceTopia extends ObserveServiceTopia implements Refe return null; } - protected <D extends ReferentialDto, E extends TopiaEntity> Class<E> getEntityType(Class<D> dtoType) { - Class<?> entityType = modelToEntityTypeCache.get(dtoType); - return (Class<E>) entityType; - } - - protected <E extends TopiaEntity, M extends ReferentialDto> Class<M> getDtoType(Class<E> entityType) { - Class<?> modelType = entityToModelTypeCache.get(entityType); - return (Class<M>) modelType; - } - } diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ApplicationContextResource.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/ApplicationContextResource.java index 8b4cbcb..4ebd5e1 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ApplicationContextResource.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/ApplicationContextResource.java @@ -3,6 +3,7 @@ package fr.ird.observe.services.service; import fr.ird.observe.IObserveConfig; import fr.ird.observe.ObserveApplicationContext; import fr.ird.observe.ObserveServiceHelper; +import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.test.TestHelper; import fr.ird.observe.util.Scripts; import org.apache.commons.logging.Log; @@ -62,6 +63,8 @@ public class ApplicationContextResource implements TestRule { TestHelper.createApplicationContext(); TestHelper.setConfig(IObserveConfig.DB_VERSION, databaseVersion.toString()); + ObserveServiceTopia.init(); + } protected void after(Description description) { diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java index 0424d0e..d0909ec 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java @@ -12,6 +12,7 @@ import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.LengthWeightParameterDto; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.ReferenceSetDto; +import fr.ird.observe.services.dto.referential.ReferentialDto; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Assert; @@ -62,8 +63,11 @@ public class ReferentialServiceTopiaTest { TopiaContext tx = dataSourceResource.newTransaction("testGetReferentialLabelSet"); - for (Map.Entry<Class<?>, Class<?>> entry : ReferentialServiceTopia.modelToEntityTypeCache.entrySet()) { + for (Map.Entry<Class<?>, Class<?>> entry : ReferentialServiceTopia.getDtoTypes()) { Class dtoType = entry.getKey(); + if (!ReferentialDto.class.isAssignableFrom(dtoType)) { + continue; + } Class entityType = entry.getValue(); TopiaDAO dao = dataSourceResource.getDataSource().getDAO(tx, entityType); @@ -86,9 +90,12 @@ public class ReferentialServiceTopiaTest { TopiaContext tx = dataSourceResource.newTransaction("testLoadToRead"); - for (Map.Entry<Class<?>, Class<?>> entry : ReferentialServiceTopia.modelToEntityTypeCache.entrySet()) { + for (Map.Entry<Class<?>, Class<?>> entry : ReferentialServiceTopia.getDtoTypes()) { Class dtoType = entry.getKey(); + if (!ReferentialDto.class.isAssignableFrom(dtoType)) { + continue; + } Class entityType = entry.getValue(); loadToRead(tx, dtoType, entityType); @@ -101,10 +108,13 @@ public class ReferentialServiceTopiaTest { TopiaContext tx = dataSourceResource.newTransaction("testLoadToEdit"); - for (Map.Entry<Class<?>, Class<?>> entry : ReferentialServiceTopia.modelToEntityTypeCache.entrySet()) { + for (Map.Entry<Class<?>, Class<?>> entry : ReferentialServiceTopia.getDtoTypes()) { Class dtoType = entry.getKey(); Class entityType = entry.getValue(); + if (!ReferentialDto.class.isAssignableFrom(dtoType)) { + continue; + } loadToEdit(tx, dtoType, entityType); } @@ -175,7 +185,7 @@ public class ReferentialServiceTopiaTest { for (ReferenceSetDto labelSetDto : formDto.getLabels()) { - Class refEntityType = ReferentialServiceTopia.modelToEntityTypeCache.get(labelSetDto.getType()); + Class refEntityType = ReferentialServiceTopia.getEntityType(labelSetDto.getType()); long refExpected = dataSourceResource.getDataSource().getDAO(tx, refEntityType).count(); Assert.assertEquals(refExpected, labelSetDto.sizeReference()); diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialDtoBuilderTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/dto/EntityToDtoBuilderTest.java similarity index 88% rename from observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialDtoBuilderTest.java rename to observe-services-topia/src/test/java/fr/ird/observe/services/service/dto/EntityToDtoBuilderTest.java index 94667cd..c587a10 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialDtoBuilderTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/dto/EntityToDtoBuilderTest.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.service; +package fr.ird.observe.services.service.dto; import com.google.common.collect.ImmutableSet; import fr.ird.observe.entities.constants.GearType; @@ -7,6 +7,9 @@ import fr.ird.observe.entities.referentiel.Organism; import fr.ird.observe.entities.referentiel.OrganismImpl; import fr.ird.observe.entities.referentiel.Program; import fr.ird.observe.entities.referentiel.ProgramImpl; +import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.dto.EntityToDtoBuilder; +import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.ReferenceValueNotFoundException; import fr.ird.observe.services.dto.constants.ReferentialLocale; @@ -16,6 +19,7 @@ import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; import org.junit.Assert; +import org.junit.BeforeClass; import org.junit.Test; import org.nuiton.util.DateUtil; @@ -24,7 +28,12 @@ import org.nuiton.util.DateUtil; * * @author Tony Chemit - chemit@codelutin.com */ -public class ReferentialDtoBuilderTest { +public class EntityToDtoBuilderTest { + + @BeforeClass + public static void setUp() throws Exception { + ObserveServiceTopia.init(); + } @Test public void testCopy() { @@ -59,10 +68,10 @@ public class ReferentialDtoBuilderTest { organism.setCode("organismCode"); program.setOrganism(organism); - ReferentialDtoBuilder<ProgramDto> builder = ReferentialDtoBuilder.create(ProgramDto.class, ReferentialLocale.FR); - builder.copyEntity(program); - ProgramDto programDto = builder.build(); - ImmutableSet<Class<? extends ReferentialDto>> referentialDtoTypes = builder.getReferentialDtoTypes(); + EntityToDtoBuilder<Program, ProgramDto> builder = EntityToDtoBuilder.create(Program.class, ProgramDto.class); + ProgramDto programDto = builder.build(ReferentialLocale.FR, program); + + ImmutableSet<Class<? extends IdDto>> referentialDtoTypes = builder.getReferenceTypes(); // On verifie les types de listes de labels détectées Assert.assertNotNull(referentialDtoTypes); -- 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 develop in repository observe. See http://git.codelutin.com/observe.git commit 72ad572dafd1f5184f10c24a3e5ed2f42a10ad76 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 10:48:18 2015 +0200 Réorganisation ordre des méthodes --- .../services/dto/ObserveDtosInitializer.java | 408 ++++++++++++--------- 1 file changed, 229 insertions(+), 179 deletions(-) diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java index 7606aa7..e9289c3 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java @@ -194,6 +194,15 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { DTO_TO_ENTITY_TYPES = DTO_TO_ENTITY_TYPE_BUILDER.build(); } + // -------------------------------------------------------------------------------------------------------------- // + // -- DATA COMMON ----------------------------------------------------------------------------------------------- // + // -------------------------------------------------------------------------------------------------------------- // + + @Override + public void initCommentableDto() { + // Rien à faire + } + @Override public void initFormDto() { // Rien à faire @@ -214,6 +223,10 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { // Rien à faire } + // -------------------------------------------------------------------------------------------------------------- // + // -- DATA LONGLINE --------------------------------------------------------------------------------------------- // + // -------------------------------------------------------------------------------------------------------------- // + @Override public void initActivityLonglineDto() { @@ -309,6 +322,11 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { } + // -------------------------------------------------------------------------------------------------------------- // + // -- REFERENTIAL COMMON ---------------------------------------------------------------------------------------- // + // -------------------------------------------------------------------------------------------------------------- // + + @Override public void initCountryDto() { registerDtoType(CountryDto.class, Country.class); @@ -364,7 +382,7 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { @Override public void initI18nReferentialDto() { - + // Rien à faire } @Override @@ -562,6 +580,193 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { registerReferentialReferenceDtoBinder(VesselTypeDto.class, VesselType.class); } + // -------------------------------------------------------------------------------------------------------------- // + // -- REFERENTIAL LONGLINE -------------------------------------------------------------------------------------- // + // -------------------------------------------------------------------------------------------------------------- // + + @Override + public void initBaitHaulingStatusDto() { + registerDtoType(BaitHaulingStatusDto.class, BaitHaulingStatus.class); + registerReferentialDtoBinder(BaitHaulingStatusDto.class, BaitHaulingStatus.class); + registerReferentialReferenceDtoBinder(BaitHaulingStatusDto.class, BaitHaulingStatus.class); + } + + @Override + public void initBaitSettingStatusDto() { + registerDtoType(BaitSettingStatusDto.class, BaitSettingStatus.class); + registerReferentialDtoBinder(BaitSettingStatusDto.class, BaitSettingStatus.class); + registerReferentialReferenceDtoBinder(BaitSettingStatusDto.class, BaitSettingStatus.class); + } + + @Override + public void initBaitTypeDto() { + registerDtoType(BaitTypeDto.class, BaitType.class); + registerReferentialDtoBinder(BaitTypeDto.class, BaitType.class); + registerReferentialReferenceDtoBinder(BaitTypeDto.class, BaitType.class); + } + + @Override + public void initCatchFateLonglineDto() { + registerDtoType(CatchFateLonglineDto.class, CatchFateLongline.class); + registerReferentialDtoBinder(CatchFateLonglineDto.class, CatchFateLongline.class); + registerReferentialReferenceDtoBinder(CatchFateLonglineDto.class, CatchFateLongline.class); + } + + @Override + public void initEncounterTypeDto() { + registerDtoType(EncounterTypeDto.class, EncounterType.class); + registerReferentialDtoBinder(EncounterTypeDto.class, EncounterType.class); + registerReferentialReferenceDtoBinder(EncounterTypeDto.class, EncounterType.class); + } + + @Override + public void initHealthnessDto() { + registerDtoType(HealthnessDto.class, Healthness.class); + registerReferentialDtoBinder(HealthnessDto.class, Healthness.class); + registerReferentialReferenceDtoBinder(HealthnessDto.class, Healthness.class); + } + + @Override + public void initHookPositionDto() { + registerDtoType(HookPositionDto.class, HookPosition.class); + registerReferentialDtoBinder(HookPositionDto.class, HookPosition.class); + registerReferentialReferenceDtoBinder(HookPositionDto.class, HookPosition.class); + } + + @Override + public void initHookSizeDto() { + registerDtoType(HookSizeDto.class, HookSize.class); + registerReferentialDtoBinder(HookSizeDto.class, HookSize.class); + registerReferentialReferenceDtoBinder(HookSizeDto.class, HookSize.class); + } + + @Override + public void initHookTypeDto() { + registerDtoType(HookTypeDto.class, HookType.class); + registerReferentialDtoBinder(HookTypeDto.class, HookType.class); + registerReferentialReferenceDtoBinder(HookTypeDto.class, HookType.class); + } + + @Override + public void initItemHorizontalPositionDto() { + registerDtoType(ItemHorizontalPositionDto.class, ItemHorizontalPosition.class); + registerReferentialDtoBinder(ItemHorizontalPositionDto.class, ItemHorizontalPosition.class); + registerReferentialReferenceDtoBinder(ItemHorizontalPositionDto.class, ItemHorizontalPosition.class); + } + + @Override + public void initItemVerticalPositionDto() { + registerDtoType(ItemVerticalPositionDto.class, ItemVerticalPosition.class); + registerReferentialDtoBinder(ItemVerticalPositionDto.class, ItemVerticalPosition.class); + registerReferentialReferenceDtoBinder(ItemVerticalPositionDto.class, ItemVerticalPosition.class); + } + + @Override + public void initLightsticksColorDto() { + registerDtoType(LightsticksColorDto.class, LightsticksColor.class); + registerReferentialDtoBinder(LightsticksColorDto.class, LightsticksColor.class); + registerReferentialReferenceDtoBinder(LightsticksColorDto.class, LightsticksColor.class); + } + + @Override + public void initLightsticksTypeDto() { + registerDtoType(LightsticksTypeDto.class, LightsticksType.class); + registerReferentialDtoBinder(LightsticksTypeDto.class, LightsticksType.class); + registerReferentialReferenceDtoBinder(LightsticksTypeDto.class, LightsticksType.class); + } + + @Override + public void initLineTypeDto() { + registerDtoType(LineTypeDto.class, LineType.class); + registerReferentialDtoBinder(LineTypeDto.class, LineType.class); + registerReferentialReferenceDtoBinder(LineTypeDto.class, LineType.class); + } + + @Override + public void initMaturityStatusDto() { + registerDtoType(MaturityStatusDto.class, MaturityStatus.class); + registerReferentialDtoBinder(MaturityStatusDto.class, MaturityStatus.class, + MaturityStatusDto.PROPERTY_LOWER_VALUE, + MaturityStatusDto.PROPERTY_UPPER_VALUE); + registerReferentialReferenceDtoBinder(MaturityStatusDto.class, MaturityStatus.class); + } + + @Override + public void initMitigationTypeDto() { + registerDtoType(MitigationTypeDto.class, MitigationType.class); + registerReferentialDtoBinder(MitigationTypeDto.class, MitigationType.class); + registerReferentialReferenceDtoBinder(MitigationTypeDto.class, MitigationType.class); + } + + @Override + public void initSensorBrandDto() { + registerDtoType(SensorBrandDto.class, SensorBrand.class); + registerReferentialDtoBinder(SensorBrandDto.class, SensorBrand.class, SensorBrandDto.PROPERTY_BRAND_NAME); + registerReferentialReferenceDtoBinder(SensorBrandDto.class, SensorBrand.class, + false, + ReferentialDto.PROPERTY_CODE, SensorBrandDto.PROPERTY_BRAND_NAME); + } + + @Override + public void initSensorDataFormatDto() { + registerDtoType(SensorDataFormatDto.class, SensorDataFormat.class); + registerReferentialDtoBinder(SensorDataFormatDto.class, SensorDataFormat.class); + registerReferentialReferenceDtoBinder(SensorDataFormatDto.class, SensorDataFormat.class); + } + + @Override + public void initSensorTypeDto() { + registerDtoType(SensorTypeDto.class, SensorType.class); + registerReferentialDtoBinder(SensorTypeDto.class, SensorType.class); + registerReferentialReferenceDtoBinder(SensorTypeDto.class, SensorType.class); + } + + @Override + public void initSettingShapeDto() { + registerDtoType(SettingShapeDto.class, SettingShape.class); + registerReferentialDtoBinder(SettingShapeDto.class, SettingShape.class); + registerReferentialReferenceDtoBinder(SettingShapeDto.class, SettingShape.class); + } + + @Override + public void initSizeMeasureTypeDto() { + registerDtoType(SizeMeasureTypeDto.class, SizeMeasureType.class); + registerReferentialDtoBinder(SizeMeasureTypeDto.class, SizeMeasureType.class); + registerReferentialReferenceDtoBinder(SizeMeasureTypeDto.class, SizeMeasureType.class); + } + + @Override + public void initStomacFullnessDto() { + registerDtoType(StomacFullnessDto.class, StomacFullness.class); + registerReferentialDtoBinder(StomacFullnessDto.class, StomacFullness.class); + registerReferentialReferenceDtoBinder(StomacFullnessDto.class, StomacFullness.class); + } + + @Override + public void initTripTypeDto() { + registerDtoType(TripTypeDto.class, TripType.class); + registerReferentialDtoBinder(TripTypeDto.class, TripType.class); + registerReferentialReferenceDtoBinder(TripTypeDto.class, TripType.class); + } + + @Override + public void initVesselActivityLonglineDto() { + registerDtoType(VesselActivityLonglineDto.class, VesselActivityLongline.class); + registerReferentialDtoBinder(VesselActivityLonglineDto.class, VesselActivityLongline.class); + registerReferentialReferenceDtoBinder(VesselActivityLonglineDto.class, VesselActivityLongline.class); + } + + @Override + public void initWeightMeasureTypeDto() { + registerDtoType(WeightMeasureTypeDto.class, WeightMeasureType.class); + registerReferentialDtoBinder(WeightMeasureTypeDto.class, WeightMeasureType.class); + registerReferentialReferenceDtoBinder(WeightMeasureTypeDto.class, WeightMeasureType.class); + } + + // -------------------------------------------------------------------------------------------------------------- // + // -- REFERENTIAL SEINE ----------------------------------------------------------------------------------------- // + // -------------------------------------------------------------------------------------------------------------- // + @Override public void initDetectionModeDto() { registerDtoType(DetectionModeDto.class, DetectionMode.class); @@ -685,6 +890,10 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { WindDto.PROPERTY_SPEED_RANGE); } + // -------------------------------------------------------------------------------------------------------------- // + // -- DATA SEINE ------------------------------------------------------------------------------------------------ // + // -------------------------------------------------------------------------------------------------------------- // + @Override public void initActivitySeineDto() { @@ -701,257 +910,98 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { } @Override - public void initGearUseFeaturesMeasurementSeineDto() { + public void initFloatingObjectObservedSpeciesDto() { } @Override - public void initGearUseFeaturesSeineDto() { - - } - - @Override - public void initNonTargetCatchDto() { - - } - - @Override - public void initNonTargetLengthDto() { - - } - - @Override - public void initNonTargetSampleDto() { - - } - - @Override - public void initObjectObservedSpeciesDto() { - - } - - @Override - public void initObjectSchoolEstimateDto() { - - } - - @Override - public void initRouteDto() { - - } - - @Override - public void initSchoolEstimateDto() { + public void initFloatingObjectSchoolEstimateDto() { } @Override - public void initSetSeineDto() { - - } - - @Override - public void initTargetCatchDto() { + public void initFloatingObjectTransmittingBuoyDto() { } @Override - public void initTargetLengthDto() { + public void initGearUseFeaturesMeasurementSeineDto() { } @Override - public void initTargetSampleDto() { + public void initGearUseFeaturesSeineDto() { } @Override - public void initTransmittingBuoyDto() { + public void initNonTargetCatchDto() { } @Override - public void initTripSeineDto() { - - } + public void initNonTargetLengthDto() { - @Override - public void initBaitHaulingStatusDto() { - registerDtoType(BaitHaulingStatusDto.class, BaitHaulingStatus.class); - registerReferentialDtoBinder(BaitHaulingStatusDto.class, BaitHaulingStatus.class); - registerReferentialReferenceDtoBinder(BaitHaulingStatusDto.class, BaitHaulingStatus.class); } @Override - public void initBaitSettingStatusDto() { - registerDtoType(BaitSettingStatusDto.class, BaitSettingStatus.class); - registerReferentialDtoBinder(BaitSettingStatusDto.class, BaitSettingStatus.class); - registerReferentialReferenceDtoBinder(BaitSettingStatusDto.class, BaitSettingStatus.class); - } + public void initNonTargetSampleDto() { - @Override - public void initBaitTypeDto() { - registerDtoType(BaitTypeDto.class, BaitType.class); - registerReferentialDtoBinder(BaitTypeDto.class, BaitType.class); - registerReferentialReferenceDtoBinder(BaitTypeDto.class, BaitType.class); } @Override - public void initCatchFateLonglineDto() { - registerDtoType(CatchFateLonglineDto.class, CatchFateLongline.class); - registerReferentialDtoBinder(CatchFateLonglineDto.class, CatchFateLongline.class); - registerReferentialReferenceDtoBinder(CatchFateLonglineDto.class, CatchFateLongline.class); - } + public void initObjectObservedSpeciesDto() { - @Override - public void initEncounterTypeDto() { - registerDtoType(EncounterTypeDto.class, EncounterType.class); - registerReferentialDtoBinder(EncounterTypeDto.class, EncounterType.class); - registerReferentialReferenceDtoBinder(EncounterTypeDto.class, EncounterType.class); } @Override - public void initHealthnessDto() { - registerDtoType(HealthnessDto.class, Healthness.class); - registerReferentialDtoBinder(HealthnessDto.class, Healthness.class); - registerReferentialReferenceDtoBinder(HealthnessDto.class, Healthness.class); - } + public void initObjectSchoolEstimateDto() { - @Override - public void initHookPositionDto() { - registerDtoType(HookPositionDto.class, HookPosition.class); - registerReferentialDtoBinder(HookPositionDto.class, HookPosition.class); - registerReferentialReferenceDtoBinder(HookPositionDto.class, HookPosition.class); } @Override - public void initHookSizeDto() { - registerDtoType(HookSizeDto.class, HookSize.class); - registerReferentialDtoBinder(HookSizeDto.class, HookSize.class); - registerReferentialReferenceDtoBinder(HookSizeDto.class, HookSize.class); - } + public void initRouteDto() { - @Override - public void initHookTypeDto() { - registerDtoType(HookTypeDto.class, HookType.class); - registerReferentialDtoBinder(HookTypeDto.class, HookType.class); - registerReferentialReferenceDtoBinder(HookTypeDto.class, HookType.class); } @Override - public void initItemHorizontalPositionDto() { - registerDtoType(ItemHorizontalPositionDto.class, ItemHorizontalPosition.class); - registerReferentialDtoBinder(ItemHorizontalPositionDto.class, ItemHorizontalPosition.class); - registerReferentialReferenceDtoBinder(ItemHorizontalPositionDto.class, ItemHorizontalPosition.class); - } + public void initSchoolEstimateDto() { - @Override - public void initItemVerticalPositionDto() { - registerDtoType(ItemVerticalPositionDto.class, ItemVerticalPosition.class); - registerReferentialDtoBinder(ItemVerticalPositionDto.class, ItemVerticalPosition.class); - registerReferentialReferenceDtoBinder(ItemVerticalPositionDto.class, ItemVerticalPosition.class); } @Override - public void initLightsticksColorDto() { - registerDtoType(LightsticksColorDto.class, LightsticksColor.class); - registerReferentialDtoBinder(LightsticksColorDto.class, LightsticksColor.class); - registerReferentialReferenceDtoBinder(LightsticksColorDto.class, LightsticksColor.class); - } + public void initSetSeineDto() { - @Override - public void initLightsticksTypeDto() { - registerDtoType(LightsticksTypeDto.class, LightsticksType.class); - registerReferentialDtoBinder(LightsticksTypeDto.class, LightsticksType.class); - registerReferentialReferenceDtoBinder(LightsticksTypeDto.class, LightsticksType.class); } @Override - public void initLineTypeDto() { - registerDtoType(LineTypeDto.class, LineType.class); - registerReferentialDtoBinder(LineTypeDto.class, LineType.class); - registerReferentialReferenceDtoBinder(LineTypeDto.class, LineType.class); - } + public void initSetSeineSchoolEstimateDto() { - @Override - public void initMaturityStatusDto() { - registerDtoType(MaturityStatusDto.class, MaturityStatus.class); - registerReferentialDtoBinder(MaturityStatusDto.class, MaturityStatus.class, - MaturityStatusDto.PROPERTY_LOWER_VALUE, - MaturityStatusDto.PROPERTY_UPPER_VALUE); - registerReferentialReferenceDtoBinder(MaturityStatusDto.class, MaturityStatus.class); } @Override - public void initMitigationTypeDto() { - registerDtoType(MitigationTypeDto.class, MitigationType.class); - registerReferentialDtoBinder(MitigationTypeDto.class, MitigationType.class); - registerReferentialReferenceDtoBinder(MitigationTypeDto.class, MitigationType.class); - } + public void initTargetCatchDto() { - @Override - public void initSensorBrandDto() { - registerDtoType(SensorBrandDto.class, SensorBrand.class); - registerReferentialDtoBinder(SensorBrandDto.class, SensorBrand.class, SensorBrandDto.PROPERTY_BRAND_NAME); - registerReferentialReferenceDtoBinder(SensorBrandDto.class, SensorBrand.class, - false, - ReferentialDto.PROPERTY_CODE, SensorBrandDto.PROPERTY_BRAND_NAME); } @Override - public void initSensorDataFormatDto() { - registerDtoType(SensorDataFormatDto.class, SensorDataFormat.class); - registerReferentialDtoBinder(SensorDataFormatDto.class, SensorDataFormat.class); - registerReferentialReferenceDtoBinder(SensorDataFormatDto.class, SensorDataFormat.class); - } + public void initTargetLengthDto() { - @Override - public void initSensorTypeDto() { - registerDtoType(SensorTypeDto.class, SensorType.class); - registerReferentialDtoBinder(SensorTypeDto.class, SensorType.class); - registerReferentialReferenceDtoBinder(SensorTypeDto.class, SensorType.class); } @Override - public void initSettingShapeDto() { - registerDtoType(SettingShapeDto.class, SettingShape.class); - registerReferentialDtoBinder(SettingShapeDto.class, SettingShape.class); - registerReferentialReferenceDtoBinder(SettingShapeDto.class, SettingShape.class); - } + public void initTargetSampleDto() { - @Override - public void initSizeMeasureTypeDto() { - registerDtoType(SizeMeasureTypeDto.class, SizeMeasureType.class); - registerReferentialDtoBinder(SizeMeasureTypeDto.class, SizeMeasureType.class); - registerReferentialReferenceDtoBinder(SizeMeasureTypeDto.class, SizeMeasureType.class); } @Override - public void initStomacFullnessDto() { - registerDtoType(StomacFullnessDto.class, StomacFullness.class); - registerReferentialDtoBinder(StomacFullnessDto.class, StomacFullness.class); - registerReferentialReferenceDtoBinder(StomacFullnessDto.class, StomacFullness.class); - } + public void initTransmittingBuoyDto() { - @Override - public void initTripTypeDto() { - registerDtoType(TripTypeDto.class, TripType.class); - registerReferentialDtoBinder(TripTypeDto.class, TripType.class); - registerReferentialReferenceDtoBinder(TripTypeDto.class, TripType.class); } @Override - public void initVesselActivityLonglineDto() { - registerDtoType(VesselActivityLonglineDto.class, VesselActivityLongline.class); - registerReferentialDtoBinder(VesselActivityLonglineDto.class, VesselActivityLongline.class); - registerReferentialReferenceDtoBinder(VesselActivityLonglineDto.class, VesselActivityLongline.class); - } + public void initTripSeineDto() { - @Override - public void initWeightMeasureTypeDto() { - registerDtoType(WeightMeasureTypeDto.class, WeightMeasureType.class); - registerReferentialDtoBinder(WeightMeasureTypeDto.class, WeightMeasureType.class); - registerReferentialReferenceDtoBinder(WeightMeasureTypeDto.class, WeightMeasureType.class); } protected <R extends IdDto, E extends TopiaEntity> void registerDtoType(Class<R> dtoType, Class<E> entityType) { -- 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 develop in repository observe. See http://git.codelutin.com/observe.git commit 655d35cbcf0eabd62e55a3a31dca53306a4bcc69 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Aug 19 10:52:26 2015 +0200 add target catch service (refs #7458). --- .../services/service/seine/TargetCatchService.java | 19 +++++++++++++++++++ .../src/main/xmi/observe-services-dto-seine.zargo | Bin 56087 -> 56651 bytes 2 files changed, 19 insertions(+) diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetCatchService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetCatchService.java new file mode 100644 index 0000000..5dffbfe --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetCatchService.java @@ -0,0 +1,19 @@ +package fr.ird.observe.services.service.seine; + +import fr.ird.observe.services.ObserveService; +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.seine.SetSeineTargetCatchDto; +import fr.ird.observe.services.spi.Write; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public interface TargetCatchService extends ObserveService { + + FormDto<SetSeineTargetCatchDto> loadToRead(String setSeineId); + + FormDto<SetSeineTargetCatchDto> loadToEdit(String setSeineId); + + @Write + String save(FormDto<SetSeineTargetCatchDto> form); +} diff --git a/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo b/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo index addd889..1b5f796 100644 Binary files a/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo and b/observe-services-model/src/main/xmi/observe-services-dto-seine.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 develop in repository observe. See http://git.codelutin.com/observe.git commit aedcaa30783bb84631a8874e6be8580bbee60f1c Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Aug 19 11:21:43 2015 +0200 add non target catch service (refs #7458). --- .../service/seine/NonTargetCatchService.java | 19 +++++++++++++++++++ .../src/main/xmi/observe-services-dto-seine.zargo | Bin 56651 -> 57070 bytes .../services/dto/ObserveDtosInitializer.java | 10 ++++++++++ 3 files changed, 29 insertions(+) diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetCatchService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetCatchService.java new file mode 100644 index 0000000..d6f943c --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetCatchService.java @@ -0,0 +1,19 @@ +package fr.ird.observe.services.service.seine; + +import fr.ird.observe.services.ObserveService; +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.seine.SetSeineNonTargetCatchDto; +import fr.ird.observe.services.spi.Write; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public interface NonTargetCatchService extends ObserveService { + + FormDto<SetSeineNonTargetCatchDto> loadToRead(String setSeineId); + + FormDto<SetSeineNonTargetCatchDto> loadToEdit(String setSeineId); + + @Write + String save(FormDto<SetSeineNonTargetCatchDto> form); +} diff --git a/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo b/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo index 1b5f796..ffe5113 100644 Binary files a/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo and b/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo differ diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java index e9289c3..5d63620 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java @@ -975,11 +975,21 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { } @Override + public void initSetSeineNonTargetCatchDto() { + + } + + @Override public void initSetSeineSchoolEstimateDto() { } @Override + public void initSetSeineTargetCatchDto() { + + } + + @Override public void initTargetCatchDto() { } -- 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 develop in repository observe. See http://git.codelutin.com/observe.git commit f27603058c768fb368d6ce571e3a6dcc697b851f Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Aug 19 12:16:01 2015 +0200 add taget and non target sample service (refs #7458). --- .../service/seine/NonTargetSampleService.java | 19 +++++++++++++++++++ .../services/service/seine/TargetSampleService.java | 20 ++++++++++++++++++++ .../src/main/xmi/observe-services-dto-seine.zargo | Bin 57070 -> 57438 bytes 3 files changed, 39 insertions(+) diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleService.java new file mode 100644 index 0000000..eebe81b --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleService.java @@ -0,0 +1,19 @@ +package fr.ird.observe.services.service.seine; + +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.seine.NonTargetSampleDto; +import fr.ird.observe.services.spi.Write; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public interface NonTargetSampleService { + + FormDto<NonTargetSampleDto> loadToRead(String setSeineId); + + FormDto<NonTargetSampleDto> loadToEdit(String setSeineId); + + @Write + String save(FormDto<NonTargetSampleDto> form); + +} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetSampleService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetSampleService.java new file mode 100644 index 0000000..51a1f90 --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetSampleService.java @@ -0,0 +1,20 @@ +package fr.ird.observe.services.service.seine; + +import fr.ird.observe.services.ObserveService; +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.seine.TargetSampleDto; +import fr.ird.observe.services.spi.Write; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public interface TargetSampleService extends ObserveService { + + FormDto<TargetSampleDto> loadToRead(String setSeineId, boolean discarded); + + FormDto<TargetSampleDto> loadToEdit(String setSeineId, boolean discarded); + + @Write + String save(FormDto<TargetSampleDto> form); + +} diff --git a/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo b/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo index ffe5113..b5fbd15 100644 Binary files a/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo and b/observe-services-model/src/main/xmi/observe-services-dto-seine.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 develop in repository observe. See http://git.codelutin.com/observe.git commit 7f8a9fc43a95be3b88b90da78c92827fec28fcde Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Aug 19 13:42:00 2015 +0200 add route service (refs #7458). --- .../services/service/seine/RouteService.java | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/RouteService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/RouteService.java new file mode 100644 index 0000000..e1e595c --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/RouteService.java @@ -0,0 +1,30 @@ +package fr.ird.observe.services.service.seine; + +import fr.ird.observe.services.ObserveService; +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.seine.RouteDto; +import fr.ird.observe.services.spi.Write; + +import java.util.List; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public interface RouteService extends ObserveService { + + FormDto<RouteDto> loadToRead(String routeId); + + List<ReferenceDto<RouteDto>> getRouteByTripSeine(String tripSeineId); + + FormDto<RouteDto> loadToEdit(String routeId); + + FormDto<RouteDto> preCreate(String tripSeineId); + + @Write + String save(FormDto<RouteDto> form); + + @Write + void delete(String tripSeineId, String routeId); + +} -- 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 develop in repository observe. See http://git.codelutin.com/observe.git commit 983991baaf9f300841899eb6d327739abd967a5d Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 14:02:09 2015 +0200 Correction to context to binder --- .../main/java/fr/ird/observe/services/dto/ObserveDtoBinders.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtoBinders.java b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtoBinders.java index fc11b56..a153321 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtoBinders.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtoBinders.java @@ -28,11 +28,11 @@ public class ObserveDtoBinders { } public static <R extends IdDto> Binder<R, R> newDtoToReferenceBinder(Class<R> dtoType) { - return BinderFactory.newBinder(dtoType, DTO_TO_ENTITY); + return BinderFactory.newBinder(dtoType, DTO_TO_REFERENCE); } - public static <E extends TopiaEntity> Binder<E, E> newEntityToReferenceBinder(Class<E> entityType) { - return BinderFactory.newBinder(entityType, DTO_TO_ENTITY); + public static <E extends TopiaEntity, R extends IdDto> Binder<E, R> newEntityToReferenceBinder(Class<E> entityType, Class<R> dtoType) { + return BinderFactory.newBinder(entityType,dtoType, ENTITY_TO_REFERENCE); } } -- 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 develop in repository observe. See http://git.codelutin.com/observe.git commit 1068bbd0eb79acf93ef121598cdf2a6aabbd9403 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 14:03:14 2015 +0200 Ajout du type sur une référence --- .../src/main/java/fr/ird/observe/services/dto/ReferenceDto.java | 4 ++++ .../ird/observe/services/dto/referential/ReferentialReferenceDto.java | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) 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 b043935..a9431ea 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 @@ -15,6 +15,10 @@ public class ReferenceDto<D extends IdDto> extends AbstractReferenceDto { protected Serializable[] labelPropertyValues; + public Class<D> getType() { + return type; + } + protected void init(Class<D> type, Iterable<String> labelPropertyNames) { this.type = type; this.labelPropertyNames = ImmutableList.copyOf(labelPropertyNames); 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 8d9bbe9..d8fe8c9 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 @@ -24,8 +24,9 @@ public class ReferentialReferenceDto<D extends ReferentialDto> extends AbstractR I18nReferentialDto.PROPERTY_LABEL8 ); + @Override public Class<D> getType() { - return type; + return super.getType(); } public void setPropertyValue(ReferentialLocale referentialLocale, String propertyName, Serializable propertyValue) { -- 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 develop in repository observe. See http://git.codelutin.com/observe.git commit bd5b868e25ff6701fda79304400ca9b168bfcd59 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 14:04:15 2015 +0200 Création d'un paquetage builder pour y mettre tous les types de builders --- .../services/builder/DtoToEntityBuilder.java | 222 +++++++++++++++++++++ .../{dto => builder}/EntityToDtoBuilder.java | 109 ++++++---- .../builder/EntityToReferenceDtoBuilder.java | 49 +++++ .../EntityToReferentialReferenceDtoBuilder.java} | 32 +-- .../services/builder/DtoToEntityBuilderTest.java | 117 +++++++++++ .../dto => builder}/EntityToDtoBuilderTest.java | 3 +- 6 files changed, 469 insertions(+), 63 deletions(-) diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/DtoToEntityBuilder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/builder/DtoToEntityBuilder.java new file mode 100644 index 0000000..b6a04b4 --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/builder/DtoToEntityBuilder.java @@ -0,0 +1,222 @@ +package fr.ird.observe.services.builder; + +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Iterables; +import fr.ird.observe.entities.Set; +import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.ObserveDtoBinders; +import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.constants.GearType; +import fr.ird.observe.services.dto.constants.ReferenceStatus; +import fr.ird.observe.services.dto.constants.seine.NonTargetCatchComputedValueSource; +import fr.ird.observe.services.dto.constants.seine.Ownership; +import fr.ird.observe.services.dto.constants.seine.SchoolType; +import fr.ird.observe.services.dto.constants.seine.TypeTransmittingBuoyOperation; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.util.beans.Binder; + +import java.io.Closeable; +import java.util.ArrayList; +import java.util.Collection; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; + +/** + * Created on 19/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class DtoToEntityBuilder<D extends IdDto, E extends TopiaEntity> implements Closeable { + + protected final Binder<D, E> binder; + + private final ObserveServiceTopia serviceTopia; + + public static <E extends TopiaEntity, D extends IdDto> DtoToEntityBuilder<D, E> create(Class<D> dtoType, Class<E> entityType, ObserveServiceTopia serviceTopia) { + + Preconditions.checkNotNull(dtoType, "'dtoType' can't be null."); + Preconditions.checkNotNull(entityType, "'entityType' can't be null."); + Preconditions.checkNotNull(serviceTopia, "'serviceTopia' can't be null."); + + Binder<D, E> binder = ObserveDtoBinders.newDtoToEntityBinder(dtoType, entityType); + + Preconditions.checkNotNull(binder, "DtoToEntityBinder<" + dtoType.getName() + ", " + entityType.getName() + "> not found."); + + DtoToEntityBuilder<D, E> builder = new DtoToEntityBuilder<>(binder, serviceTopia); + return builder; + + } + + public void build(D dto, E entity) { + + Preconditions.checkNotNull(dto, "'dto' can't be null."); + Preconditions.checkNotNull(entity, "'entity' can't be null."); + + Map<String, Object> dtoProperties = binder.obtainProperties(dto); + + ImmutableMap.Builder<String, Object> entityProperties = new ImmutableMap.Builder<>(); + + for (Map.Entry<String, Object> entry : dtoProperties.entrySet()) { + + String propertyName = entry.getKey(); + Object propertyValue = entry.getValue(); + + if (isCollectionProperty(propertyValue)) { + + Class<?> collectionType = binder.getTargetPropertyType(propertyName); + + Collection<Object> entityCollection = newCollection(collectionType); + + Collection collection = (Collection) propertyValue; + + if (!collection.isEmpty()) { + + Object o1 = Iterables.get(collection, 0); + + if (o1 instanceof ReferenceDto) { + + Collection<ReferenceDto> referenceDtos = (Collection<ReferenceDto>) collection; + + for (ReferenceDto referenceDto : referenceDtos) { + + TopiaEntity propertyEntity = toEntity(referenceDto); + entityCollection.add(propertyEntity); + } + + } else if (o1 instanceof IdDto) { + + Collection<IdDto> idDtos = (Collection<IdDto>) collection; + + for (IdDto idDto : idDtos) { + + TopiaEntity propertyEntity = toEntity(idDto); + entityCollection.add(propertyEntity); + } + + } else { + + entityCollection.addAll(collection); + + } + + } + + entityProperties.put(propertyName, entityCollection); + continue; + + } + + if (propertyValue instanceof ReferenceDto) { + + propertyValue = toEntity((ReferenceDto) propertyValue); + entityProperties.put(propertyName, propertyValue); + continue; + + } + + if (propertyValue instanceof IdDto) { + + propertyValue = toEntity((IdDto) propertyValue); + entityProperties.put(propertyName, propertyValue); + continue; + + } + + // simple property + addProperty(propertyName, propertyValue, entityProperties); + + } + + binder.injectProperties(entityProperties.build(), entity); + + } + + protected TopiaEntity toEntity(ReferenceDto referenceDto) { + return serviceTopia.getEntityFromReference(referenceDto); + } + + protected TopiaEntity toEntity(IdDto idDto) { + + Class<IdDto> aClass = (Class<IdDto>) idDto.getClass(); + Class<TopiaEntity> entityType = ObserveServiceTopia.getEntityType(aClass); + TopiaEntity entity = serviceTopia.newEntity(entityType); + + DtoToEntityBuilder<IdDto, TopiaEntity> builder = create(aClass, entityType, serviceTopia); + builder.build(idDto, entity); + + return entity; + } + + @Override + public void close() { + + } + + protected DtoToEntityBuilder(Binder<D, E> binder, ObserveServiceTopia serviceTopia) { + this.binder = binder; + this.serviceTopia = serviceTopia; + } + + protected boolean isCollectionProperty(Object propertyValue) { + return propertyValue instanceof Collection; + } + + protected Collection<Object> newCollection(Object propertyValue) { + + Collection<Object> propertyValueCollection = null; + if (propertyValue instanceof Set) { + propertyValueCollection = new LinkedHashSet<>(); + } else + if (propertyValue instanceof Collection) { + propertyValueCollection = new LinkedHashSet<>(); + } + if (propertyValue instanceof List) { + propertyValueCollection = new ArrayList<>(); + } + return propertyValueCollection; + } + + protected void addProperty(String propertyName, Object propertyValue, ImmutableMap.Builder<String, Object> entitiesPropertiesBuilder) { + + if (ReferentialDto.PROPERTY_ID.equals(propertyName)) { + propertyName = TopiaEntity.TOPIA_ID; + } else if (propertyValue instanceof GearType) { + + GearType entityGearType = (GearType) propertyValue; + propertyValue = fr.ird.observe.entities.constants.GearType.valueOf(entityGearType.name()); + + } else if (propertyValue instanceof ReferenceStatus) { + + ReferenceStatus referenceStatus = (ReferenceStatus) propertyValue; + propertyValue = fr.ird.observe.entities.constants.ReferenceStatus.valueOf(referenceStatus.name()); + + } else if (propertyValue instanceof Ownership) { + + Ownership ownership = (Ownership) propertyValue; + propertyValue = Ownership.valueOf(ownership.name()); + + } else if (propertyValue instanceof SchoolType) { + + SchoolType schoolType = (SchoolType) propertyValue; + propertyValue = fr.ird.observe.entities.constants.seine.SchoolType.valueOf(schoolType.name()); + + } else if (propertyValue instanceof TypeTransmittingBuoyOperation) { + + TypeTransmittingBuoyOperation typeTransmittingBuoyOperation = (TypeTransmittingBuoyOperation) propertyValue; + propertyValue = fr.ird.observe.entities.constants.seine.TypeTransmittingBuoyOperation.valueOf(typeTransmittingBuoyOperation.name()); + + } else if (propertyValue instanceof NonTargetCatchComputedValueSource) { + + NonTargetCatchComputedValueSource nonTargetCatchComputedValueSource = (NonTargetCatchComputedValueSource) propertyValue; + propertyValue = fr.ird.observe.entities.constants.seine.NonTargetCatchComputedValueSource.valueOf(nonTargetCatchComputedValueSource.name()); + + } + + entitiesPropertiesBuilder.put(propertyName, propertyValue); + + } +} diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/EntityToDtoBuilder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToDtoBuilder.java similarity index 67% rename from observe-services-topia/src/main/java/fr/ird/observe/services/dto/EntityToDtoBuilder.java rename to observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToDtoBuilder.java index 7f7d2d2..8ce3a8e 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/EntityToDtoBuilder.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToDtoBuilder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.dto; +package fr.ird.observe.services.builder; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; @@ -13,15 +13,19 @@ import fr.ird.observe.entities.constants.seine.Ownership; import fr.ird.observe.entities.constants.seine.SchoolType; import fr.ird.observe.entities.constants.seine.TypeTransmittingBuoyOperation; import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.ObserveDtoBinders; +import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialDto; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.util.beans.Binder; import java.io.Closeable; +import java.util.ArrayList; import java.util.Collection; +import java.util.HashSet; import java.util.LinkedHashSet; -import java.util.LinkedList; import java.util.Map; /** @@ -37,15 +41,11 @@ public class EntityToDtoBuilder<E extends TopiaEntity, D extends IdDto> implemen private ImmutableSet<Class<? extends IdDto>> referencesTypes; - public EntityToDtoBuilder(D result, Binder<E, D> binder) { - this.result = result; - this.binder = binder; - } - public static <E extends TopiaEntity, D extends ReferentialDto> EntityToDtoBuilder<E, D> create(Class<E> entityType, Class<D> dtoType) { - Preconditions.checkNotNull(entityType, "entityType can't be null."); - Preconditions.checkNotNull(dtoType, "dtoType can't be null."); + Preconditions.checkNotNull(entityType, "'entityType' can't be null."); + Preconditions.checkNotNull(dtoType, "'dtoType' can't be null."); + D result; try { result = dtoType.newInstance(); @@ -54,12 +54,19 @@ public class EntityToDtoBuilder<E extends TopiaEntity, D extends IdDto> implemen } Binder<E, D> binder = ObserveDtoBinders.newEntityToDtoBinder(entityType, dtoType); + + Preconditions.checkNotNull(binder, "EntityToDtoBinder<" + entityType.getName() + ", " + dtoType.getName() + "> not found."); + EntityToDtoBuilder<E, D> builder = new EntityToDtoBuilder<>(result, binder); return builder; + } public D build(ReferentialLocale referentialLocale, E entity) { + Preconditions.checkNotNull(referentialLocale, "'referentialLocale' can't be null."); + Preconditions.checkNotNull(entity, "'entity' can't be null."); + ImmutableSet.Builder<Class<? extends IdDto>> referenceTypesBuilder = new ImmutableSet.Builder<>(); Map<String, Object> entityProperties = binder.obtainProperties(entity, false); @@ -67,47 +74,46 @@ public class EntityToDtoBuilder<E extends TopiaEntity, D extends IdDto> implemen ImmutableMap.Builder<String, Object> dtoPropertiesBuilder = new ImmutableMap.Builder<>(); for (Map.Entry<String, Object> entry : entityProperties.entrySet()) { + String propertyName = entry.getKey(); Object propertyValue = entry.getValue(); - Collection<Object> propertyValueCollection = null; - if (propertyValue instanceof Set) { + if (isCollectionProperty(propertyValue)) { - propertyValueCollection = new LinkedHashSet<>(); - } - if (propertyValue instanceof Collection) { - propertyValueCollection = new LinkedList<>(); - } + Collection collection = (Collection) propertyValue; - if (propertyValueCollection != null) { + Class<?> collectionType = binder.getTargetPropertyType(propertyName); - Collection collection = (Collection) propertyValue; - if (collection.isEmpty()) { - continue; - } - Object valueToAdd = collection; + Collection<Object> dtoCollection = newCollection(collectionType); + + if (!collection.isEmpty()) { - Object o1 = Iterables.get(collection, 0); + Object o1 = Iterables.get(collection, 0); - if (o1 instanceof TopiaEntity) { + if (o1 instanceof TopiaEntity) { - Class<? extends TopiaEntity> entityType = ObserveEntityEnum.valueOf((TopiaEntity)o1).getContract(); + Class<? extends TopiaEntity> entityType = ObserveEntityEnum.valueOf((TopiaEntity) o1).getContract(); - Class dtoType = ObserveServiceTopia.getDtoType(entityType); + Class dtoType = ObserveServiceTopia.getDtoType(entityType); - Collection<? extends TopiaEntity> topiaEntities = (Collection<? extends TopiaEntity>) collection; - LinkedHashSet<ReferenceDto> references = new LinkedHashSet<>(topiaEntities.size()); - for (TopiaEntity entityValue : topiaEntities) { + Collection<? extends TopiaEntity> topiaEntities = (Collection<? extends TopiaEntity>) collection; + + for (TopiaEntity entityValue : topiaEntities) { + + dtoCollection.add(entityToRef(referentialLocale, dtoType, entityValue, referenceTypesBuilder)); + } + + } else { + + dtoCollection.addAll(collection); - references.add(entityToRef(referentialLocale, dtoType, entityValue, referenceTypesBuilder)); } - valueToAdd = references; } - addProperty(propertyName, valueToAdd, dtoPropertiesBuilder); - + addProperty(propertyName, dtoCollection, dtoPropertiesBuilder); continue; + } if (propertyValue instanceof TopiaEntity) { @@ -117,9 +123,12 @@ public class EntityToDtoBuilder<E extends TopiaEntity, D extends IdDto> implemen Class<? extends TopiaEntity> entityType = ObserveEntityEnum.valueOf(entityValue).getContract(); Class dtoType = ObserveServiceTopia.getDtoType(entityType); propertyValue = entityToRef(referentialLocale, dtoType, entityValue, referenceTypesBuilder); + addProperty(propertyName, propertyValue, dtoPropertiesBuilder); + continue; } + // simple property addProperty(propertyName, propertyValue, dtoPropertiesBuilder); } @@ -133,7 +142,33 @@ public class EntityToDtoBuilder<E extends TopiaEntity, D extends IdDto> implemen } - private void addProperty(String propertyName, Object propertyValue, ImmutableMap.Builder<String, Object> dtoPropertiesBuilder) { + public ImmutableSet<Class<? extends IdDto>> getReferenceTypes() { + return referencesTypes; + } + + protected EntityToDtoBuilder(D result, Binder<E, D> binder) { + this.result = result; + this.binder = binder; + } + + protected boolean isCollectionProperty(Object propertyValue) { + return propertyValue instanceof Collection; + } + + protected Collection<Object> newCollection(Class<?> collectionType) { + + Collection<Object> propertyValueCollection = null; + if (LinkedHashSet.class.isAssignableFrom(collectionType)) { + propertyValueCollection = new LinkedHashSet<>(); + } else if (Set.class.isAssignableFrom(collectionType)) { + propertyValueCollection = new HashSet<>(); + } else if (Collection.class.isAssignableFrom(collectionType)) { + propertyValueCollection = new ArrayList<>(); + } + return propertyValueCollection; + } + + protected void addProperty(String propertyName, Object propertyValue, ImmutableMap.Builder<String, Object> dtoPropertiesBuilder) { if (TopiaEntity.TOPIA_ID.equals(propertyName)) { propertyName = ReferentialDto.PROPERTY_ID; @@ -180,7 +215,7 @@ public class EntityToDtoBuilder<E extends TopiaEntity, D extends IdDto> implemen ReferenceDto<R> label; if (ReferentialDto.class.isAssignableFrom(dtoType)) { - label = EntityToReferenceDtoBuilder.buildReferential((Class) dtoType, referentialLocale, entityValue); + label = EntityToReferentialReferenceDtoBuilder.build((Class) dtoType, referentialLocale, entityValue); } else { label = EntityToReferenceDtoBuilder.build(dtoType, entityValue); @@ -195,8 +230,4 @@ public class EntityToDtoBuilder<E extends TopiaEntity, D extends IdDto> implemen public void close() { } - - public ImmutableSet<Class<? extends IdDto>> getReferenceTypes() { - return referencesTypes; - } } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToReferenceDtoBuilder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToReferenceDtoBuilder.java new file mode 100644 index 0000000..a9e9cc2 --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToReferenceDtoBuilder.java @@ -0,0 +1,49 @@ +package fr.ird.observe.services.builder; + +import com.google.common.base.Preconditions; +import fr.ird.observe.ObserveEntityEnum; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.ObserveDtoBinders; +import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.ReferenceDtos; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.util.beans.Binder; + +import java.io.Serializable; +import java.util.Map; +import java.util.Set; + +/** + * Created on 19/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class EntityToReferenceDtoBuilder<E extends TopiaEntity, D extends IdDto> { + + public static <E extends TopiaEntity, D extends IdDto> ReferenceDto<D> build(Class<D> dtoType, E entity) { + + Preconditions.checkNotNull(dtoType, "'dtoType' can't be null"); + Preconditions.checkArgument(ReferentialDto.class.isAssignableFrom(dtoType), "'dtoType' can't be of type ReferentialDto, use the method buildReferential insteadnull"); + Preconditions.checkNotNull(entity, "'entity' can't be null"); + + Class<E> entityType = (Class<E>) ObserveEntityEnum.valueOf(entity).getContract(); + Binder<E, D> binder = ObserveDtoBinders.newEntityToReferenceBinder(entityType, dtoType); + + Preconditions.checkNotNull(binder, "EntityToReferenceBinder<" + entityType.getName() + ", " + dtoType.getName() + "> not found."); + + Map<String, Object> entityProperties = binder.obtainProperties(entity); + Set<String> propertyNames = entityProperties.keySet(); + + ReferenceDto<D> result = ReferenceDtos.newReferenceDto(dtoType, propertyNames); + + for (Map.Entry<String, Object> entry : entityProperties.entrySet()) { + String propertyName = entry.getKey(); + Object propertyValue = entry.getValue(); + result.setPropertyValue(propertyName, (Serializable) propertyValue); + } + return result; + + } + +} diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/EntityToReferenceDtoBuilder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToReferentialReferenceDtoBuilder.java similarity index 53% rename from observe-services-topia/src/main/java/fr/ird/observe/services/dto/EntityToReferenceDtoBuilder.java rename to observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToReferentialReferenceDtoBuilder.java index 0c8d288..4b9d625 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/EntityToReferenceDtoBuilder.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToReferentialReferenceDtoBuilder.java @@ -1,6 +1,8 @@ -package fr.ird.observe.services.dto; +package fr.ird.observe.services.builder; +import com.google.common.base.Preconditions; import fr.ird.observe.ObserveEntityEnum; +import fr.ird.observe.services.dto.ObserveDtoBinders; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; @@ -17,31 +19,17 @@ import java.util.Set; * * @author Tony Chemit - chemit@codelutin.com */ -public class EntityToReferenceDtoBuilder<E extends TopiaEntity, D extends IdDto> { +public class EntityToReferentialReferenceDtoBuilder<E extends TopiaEntity, D extends ReferentialDto> { - public static <E extends TopiaEntity, D extends IdDto> ReferenceDto<D> build(Class<D> dtoType, E entity) { + public static <E extends TopiaEntity, D extends ReferentialDto> ReferentialReferenceDto<D> build(Class<D> dtoType, ReferentialLocale referentialLocale, E entity) { - Class<E> entityType = (Class<E>) ObserveEntityEnum.valueOf(entity).getContract(); - Binder<E, E> binder = ObserveDtoBinders.newEntityToReferenceBinder(entityType); - - Map<String, Object> entityProperties = binder.obtainProperties(entity); - Set<String> propertyNames = entityProperties.keySet(); - - ReferenceDto<D> result = ReferenceDtos.newReferenceDto(dtoType, propertyNames); - - for (Map.Entry<String, Object> entry : entityProperties.entrySet()) { - String propertyName = entry.getKey(); - Object propertyValue = entry.getValue(); - result.setPropertyValue(propertyName, (Serializable) propertyValue); - } - return result; - - } - - public static <E extends TopiaEntity, D extends ReferentialDto> ReferentialReferenceDto<D> buildReferential(Class<D> dtoType, ReferentialLocale referentialLocale, E entity) { + Preconditions.checkNotNull(dtoType, "'dtoType' can't be null"); + Preconditions.checkNotNull(referentialLocale, "'referentialLocale' can't be null"); + Preconditions.checkNotNull(entity, "'entity' can't be null"); Class<E> entityType = (Class<E>) ObserveEntityEnum.valueOf(entity).getContract(); - Binder<E, E> binder = ObserveDtoBinders.newEntityToReferenceBinder(entityType); + Binder<E, D> binder = ObserveDtoBinders.newEntityToReferenceBinder(entityType, dtoType); + Preconditions.checkNotNull(binder, "EntityToReferenceBinder<" + entityType.getName() + ", " + dtoType.getName() + "> not found."); Map<String, Object> entityProperties = binder.obtainProperties(entity); Set<String> propertyNames = entityProperties.keySet(); diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/builder/DtoToEntityBuilderTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/builder/DtoToEntityBuilderTest.java new file mode 100644 index 0000000..72ca1a0 --- /dev/null +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/builder/DtoToEntityBuilderTest.java @@ -0,0 +1,117 @@ +package fr.ird.observe.services.builder; + +import com.google.common.collect.ImmutableSet; +import fr.ird.observe.ObserveEntityEnum; +import fr.ird.observe.entities.referentiel.Organism; +import fr.ird.observe.entities.referentiel.Program; +import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.dto.constants.GearType; +import fr.ird.observe.services.dto.constants.ReferenceStatus; +import fr.ird.observe.services.dto.constants.ReferentialLocale; +import fr.ird.observe.services.dto.referential.I18nReferentialDto; +import fr.ird.observe.services.dto.referential.OrganismDto; +import fr.ird.observe.services.dto.referential.ProgramDto; +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 org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; +import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.util.DateUtil; + +/** + * Created on 19/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class DtoToEntityBuilderTest { + + @BeforeClass + public static void setUp() throws Exception { + ObserveServiceTopia.init(); + } + + @Test + public void testCopy() { + + ObserveServiceTopia service = new ObserveServiceTopia() { + + @Override + protected <D extends ReferentialDto, E extends TopiaEntity> E loadEntity(Class<D> dtoType, Class<E> entityType, String id) { + E e = newEntity(entityType); + e.setTopiaId(id); + return e; + } + + @Override + public <E extends TopiaEntity> E newEntity(Class<E> entityType) { + + try { + return (E) ObserveEntityEnum.valueOf(entityType).getImplementation().newInstance(); + } catch (InstantiationException | IllegalAccessException e) { + throw new IllegalStateException("could not create instance of " + entityType.getName()); + } + } + }; + + ProgramDto programDto = new ProgramDto(); + programDto.setCode("code"); + programDto.setNeedComment(true); + programDto.setStatus(ReferenceStatus.enabled); + programDto.setLabel1("label1"); + programDto.setLabel2("label2"); + programDto.setLabel3("label3"); + programDto.setLabel4("label4"); + programDto.setLabel5("label5"); + programDto.setLabel6("label6"); + programDto.setLabel7("label7"); + programDto.setLabel8("label8"); + programDto.setId("Program1"); + programDto.setStartDate(DateUtil.createDate(1, 1, 1)); + programDto.setEndDate(DateUtil.createDate(1, 1, 2)); + programDto.setGearType(GearType.seine); + programDto.setTargetDiscardsObservation(1); + + ReferentialReferenceDto organismDto = ReferentialReferenceDtos.newReferentialReferenceDto(OrganismDto.class, ReferentialLocale.FR, + ImmutableSet.of( + I18nReferentialDto.PROPERTY_LABEL2, + I18nReferentialDto.PROPERTY_CODE + )); + organismDto.setId("Organism1"); + organismDto.setPropertyValue(ReferentialLocale.FR, I18nReferentialDto.PROPERTY_LABEL2, "organism2"); + organismDto.setPropertyValue(I18nReferentialDto.PROPERTY_CODE, "organismCode"); + programDto.setOrganism(organismDto); + + DtoToEntityBuilder<ProgramDto, Program> builder = DtoToEntityBuilder.create(ProgramDto.class, Program.class, service); + + Program program = service.newEntity(Program.class); + builder.build(programDto, program); + + // On vérife que le program a bien été copié + Assert.assertEquals(programDto.getCode(), program.getCode()); + Assert.assertEquals(programDto.isNeedComment(), program.isNeedComment()); + Assert.assertNotNull(program.getStatus()); + Assert.assertEquals(programDto.getStatus().name(), program.getStatus().name()); + + Assert.assertEquals(programDto.getLabel1(), program.getLabel1()); + Assert.assertEquals(programDto.getLabel2(), program.getLabel2()); + Assert.assertEquals(programDto.getLabel3(), program.getLabel3()); + Assert.assertEquals(programDto.getLabel4(), program.getLabel4()); + Assert.assertEquals(programDto.getLabel5(), program.getLabel5()); + Assert.assertEquals(programDto.getLabel6(), program.getLabel6()); + Assert.assertEquals(programDto.getLabel7(), program.getLabel7()); + Assert.assertEquals(programDto.getLabel8(), program.getLabel8()); + Assert.assertEquals(programDto.getId(), program.getTopiaId()); + Assert.assertNotNull(program.getGearType()); + Assert.assertEquals(programDto.getGearType().name(), program.getGearType().name()); + Assert.assertEquals(programDto.getTargetDiscardsObservation(), program.getTargetDiscardsObservation()); + + // On vérife que la référence sur l'organisme a bien été trouvée + Organism organism = program.getOrganism(); + Assert.assertNotNull(organism); + Assert.assertEquals(organismDto.getId(), organism.getTopiaId()); + + } + +} \ No newline at end of file diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/dto/EntityToDtoBuilderTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/builder/EntityToDtoBuilderTest.java similarity index 98% rename from observe-services-topia/src/test/java/fr/ird/observe/services/service/dto/EntityToDtoBuilderTest.java rename to observe-services-topia/src/test/java/fr/ird/observe/services/builder/EntityToDtoBuilderTest.java index c587a10..1005eef 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/dto/EntityToDtoBuilderTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/builder/EntityToDtoBuilderTest.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.service.dto; +package fr.ird.observe.services.builder; import com.google.common.collect.ImmutableSet; import fr.ird.observe.entities.constants.GearType; @@ -8,7 +8,6 @@ import fr.ird.observe.entities.referentiel.OrganismImpl; import fr.ird.observe.entities.referentiel.Program; import fr.ird.observe.entities.referentiel.ProgramImpl; import fr.ird.observe.services.ObserveServiceTopia; -import fr.ird.observe.services.dto.EntityToDtoBuilder; import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.ReferenceValueNotFoundException; -- 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 develop in repository observe. See http://git.codelutin.com/observe.git commit ebf58daf77949cafa19b3d75218277d58a9f6f4a Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 14:05:04 2015 +0200 Deplacement de code réutilisable dans le service de base + mise en place de la transformation dto vers entite (à finir) --- .../ird/observe/services/ObserveServiceTopia.java | 57 ++++++++++++++++++++++ .../services/service/ReferentialServiceTopia.java | 52 ++------------------ 2 files changed, 60 insertions(+), 49 deletions(-) diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java index bf2d0da..b0836f7 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java @@ -3,11 +3,18 @@ package fr.ird.observe.services; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableBiMap; import com.google.common.collect.ImmutableSet; +import fr.ird.observe.ObserveDAOHelper; import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.ObserveDtosInitializer; import fr.ird.observe.services.dto.ObserveModelInitializerRunner; +import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.service.DataNotFoundException; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.persistence.TopiaDAO; import org.nuiton.topia.persistence.TopiaEntity; +import java.util.List; import java.util.Map; /** @@ -56,4 +63,54 @@ public class ObserveServiceTopia implements ObserveService { return DTO_TO_ENTITY_TYPES.entrySet(); } + public TopiaEntity getEntityFromReference(ReferenceDto referenceDto) { + Preconditions.checkNotNull(referenceDto,"'referenceDto' can't be null"); + String id = referenceDto.getId(); + Class entityType = getEntityType(referenceDto.getType()); + TopiaEntity entity = loadEntity(referenceDto.getType(), entityType, id); + return entity; + } + + protected <E extends TopiaEntity> List<E> loadEntities(Class<E> entityType) { + TopiaContext transaction = serviceContext.getTransaction(); + TopiaDAO<E> dao = ObserveDAOHelper.getDAO(transaction, entityType); + List<E> entities = dao.findAll(); + return entities; + } + + protected <D extends ReferentialDto, E extends TopiaEntity> E loadEntity(Class<D> dtoType, Class<E> entityType, String id) { + TopiaContext transaction = serviceContext.getTransaction(); + TopiaDAO<E> dao = ObserveDAOHelper.getDAO(transaction, entityType); + E entity = dao.findByTopiaId(id); + if (entity == null) { + throw new DataNotFoundException(dtoType, id); + } + return entity; + } + + public <E extends TopiaEntity> E newEntity(Class<E> entityType) { + TopiaContext transaction = serviceContext.getTransaction(); + TopiaDAO<E> dao = ObserveDAOHelper.getDAO(transaction, entityType); + E entity = dao.newInstance(); + return entity; + } + + protected <E extends TopiaEntity> E saveEntity(Class<E> entityType, E entity) { + TopiaContext transaction = serviceContext.getTransaction(); + TopiaDAO<E> dao = ObserveDAOHelper.getDAO(transaction, entityType); + entity = dao.update(entity); + return entity; + } + + protected <D extends ReferentialDto, E extends TopiaEntity> void deleteEntity(Class<D> dtoType, Class<E> entityType, Iterable<String> ids) { + TopiaContext transaction = serviceContext.getTransaction(); + TopiaDAO<E> dao = ObserveDAOHelper.getDAO(transaction, entityType); + for (String id : ids) { + E entity = dao.findByTopiaId(id); + if (entity == null) { + throw new DataNotFoundException(dtoType, id); + } + dao.delete(entity); + } + } } 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 393cd4a..402947f 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 @@ -1,10 +1,9 @@ package fr.ird.observe.services.service; import com.google.common.collect.ImmutableSet; -import fr.ird.observe.ObserveDAOHelper; import fr.ird.observe.services.ObserveServiceTopia; -import fr.ird.observe.services.dto.EntityToDtoBuilder; -import fr.ird.observe.services.dto.EntityToReferenceDtoBuilder; +import fr.ird.observe.services.builder.EntityToDtoBuilder; +import fr.ird.observe.services.builder.EntityToReferentialReferenceDtoBuilder; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.FormDtos; import fr.ird.observe.services.dto.IdDto; @@ -12,8 +11,6 @@ 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 org.nuiton.topia.TopiaContext; -import org.nuiton.topia.persistence.TopiaDAO; import org.nuiton.topia.persistence.TopiaEntity; import java.util.Collection; @@ -35,7 +32,7 @@ public class ReferentialServiceTopia extends ObserveServiceTopia implements Refe LinkedHashSet<ReferentialReferenceDto<D>> labels = new LinkedHashSet<>(); for (TopiaEntity entity : entities) { - ReferentialReferenceDto<D> dto = EntityToReferenceDtoBuilder.buildReferential(dtoType, serviceContext.getReferentialLocale(), entity); + ReferentialReferenceDto<D> dto = EntityToReferentialReferenceDtoBuilder.build(dtoType, serviceContext.getReferentialLocale(), entity); labels.add(dto); } @@ -90,49 +87,6 @@ public class ReferentialServiceTopia extends ObserveServiceTopia implements Refe deleteEntity(dtoType, entityType, ids); } - protected <E extends TopiaEntity> List<E> loadEntities(Class<E> entityType) { - TopiaContext transaction = serviceContext.getTransaction(); - TopiaDAO<E> dao = ObserveDAOHelper.getDAO(transaction, entityType); - List<E> entities = dao.findAll(); - return entities; - } - - protected <D extends ReferentialDto, E extends TopiaEntity> E loadEntity(Class<D> dtoType, Class<E> entityType, String id) { - TopiaContext transaction = serviceContext.getTransaction(); - TopiaDAO<E> dao = ObserveDAOHelper.getDAO(transaction, entityType); - E entity = dao.findByTopiaId(id); - if (entity == null) { - throw new DataNotFoundException(dtoType, id); - } - return entity; - } - - protected <E extends TopiaEntity> E newEntity(Class<E> entityType) { - TopiaContext transaction = serviceContext.getTransaction(); - TopiaDAO<E> dao = ObserveDAOHelper.getDAO(transaction, entityType); - E entity = dao.newInstance(); - return entity; - } - - protected <E extends TopiaEntity> E saveEntity(Class<E> entityType, E entity) { - TopiaContext transaction = serviceContext.getTransaction(); - TopiaDAO<E> dao = ObserveDAOHelper.getDAO(transaction, entityType); - entity = dao.update(entity); - return entity; - } - - protected <D extends ReferentialDto, E extends TopiaEntity> void deleteEntity(Class<D> dtoType, Class<E> entityType, Iterable<String> ids) { - TopiaContext transaction = serviceContext.getTransaction(); - TopiaDAO<E> dao = ObserveDAOHelper.getDAO(transaction, entityType); - for (String id : ids) { - E entity = dao.findByTopiaId(id); - if (entity == null) { - throw new DataNotFoundException(dtoType, id); - } - dao.delete(entity); - } - } - protected <E extends TopiaEntity, D extends ReferentialDto> FormDto<D> entityToEditReferentialFormDto(Class<D> dtoType, Class<E> entityType, E entity) { try (EntityToDtoBuilder<E, D> dtoBuilder = EntityToDtoBuilder.create(entityType, dtoType)) { -- 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 develop in repository observe. See http://git.codelutin.com/observe.git commit 65741bea8d0b85c598b59bfa4479d760d6fc12c1 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Aug 19 14:39:48 2015 +0200 add openable entity and start dtosInitializer (refs #7458). --- .../src/main/xmi/observe-services-dto-common.zargo | Bin 33741 -> 34074 bytes .../src/main/xmi/observe-services-dto-seine.zargo | Bin 57438 -> 57866 bytes .../services/dto/ObserveDtosInitializer.java | 38 +++++++++++++++++++++ 3 files changed, 38 insertions(+) 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 826b46f..ae48f49 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 diff --git a/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo b/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo index b5fbd15..2fc01ca 100644 Binary files a/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo and b/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo differ diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java index 5d63620..e7999ea 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java @@ -61,6 +61,7 @@ import fr.ird.observe.entities.referentiel.seine.TransmittingBuoyType; import fr.ird.observe.entities.referentiel.seine.VesselActivitySeine; import fr.ird.observe.entities.referentiel.seine.WeightCategory; import fr.ird.observe.entities.referentiel.seine.Wind; +import fr.ird.observe.entities.seine.ActivitySeine; import fr.ird.observe.services.dto.referential.CountryDto; import fr.ird.observe.services.dto.referential.FpaZoneDto; import fr.ird.observe.services.dto.referential.GearCaracteristicDto; @@ -122,6 +123,8 @@ 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; +import fr.ird.observe.services.dto.seine.ActivitySeineDto; +import fr.ird.observe.services.dto.seine.ActivitySeineObservedSystemDto; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.util.beans.BinderFactory; import org.nuiton.util.beans.BinderModelBuilder; @@ -214,6 +217,11 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { } @Override + public void initOpenableDto() { + // Rien à faire + } + + @Override public void initReferenceDto() { // Rien à faire } @@ -896,12 +904,42 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { @Override public void initActivitySeineDto() { + registerDtoType(ActivitySeineDto.class, ActivitySeine.class); + + BinderModelBuilder<ActivitySeineDto, ActivitySeine> dtoToEntityBuilder = + newBinderBuilder(ActivitySeineDto.class, ActivitySeine.class, + ActivitySeineDto.PROPERTY_COMMENT, + ActivitySeineDto.PROPERTY_OPEN, + ActivitySeineDto.PROPERTY_TIME, + ActivitySeineDto.PROPERTY_LATITUDE, + ActivitySeineDto.PROPERTY_LONGITUDE, + ActivitySeineDto.PROPERTY_VESSEL_SPEED, + ActivitySeineDto.PROPERTY_SEA_SURFACE_TEMPERATURE, + ActivitySeineDto.PROPERTY_ERS_ID, + ActivitySeineDto.PROPERTY_VESSEL_ACTIVITY_SEINE, + ActivitySeineDto.PROPERTY_SOURROUNDING_ACTIVITY, + ActivitySeineDto.PROPERTY_DETECTION_MODE, + ActivitySeineDto.PROPERTY_REASON_FOR_NO_FISHING, + ActivitySeineDto.PROPERTY_PREVIOUS_FPA_ZONE, + ActivitySeineDto.PROPERTY_CURRENT_FPA_ZONE, + ActivitySeineDto.PROPERTY_NEXT_FPA_ZONE, + ActivitySeineDto.PROPERTY_NEXT_FPA_ZONE); + registerDtoBinder(dtoToEntityBuilder); } @Override public void initActivitySeineObservedSystemDto() { + + BinderModelBuilder<ActivitySeineObservedSystemDto, ActivitySeine> dtoToEntityBuilder = + newBinderBuilder(ActivitySeineObservedSystemDto.class, ActivitySeine.class, + ActivitySeineObservedSystemDto.PROPERTY_COMMENT, + ActivitySeineObservedSystemDto.PROPERTY_OPEN, + ActivitySeineObservedSystemDto.PROPERTY_OBSERVED_SYSTEM_DISTANCE, + ActivitySeineObservedSystemDto.PROPERTY_OBSERVED_SYSTEM); + registerDtoBinder(dtoToEntityBuilder); + } @Override -- 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 develop in repository observe. See http://git.codelutin.com/observe.git commit d07d9b2d5c8b0c4e593bdfe5651759b33d036830 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 14:56:47 2015 +0200 Permettre de générer des binders avec des types différents --- .../java/fr/ird/observe/services/dto/ObserveDtosInitializer.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java index e7999ea..3f949fa 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java @@ -917,7 +917,7 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { ActivitySeineDto.PROPERTY_SEA_SURFACE_TEMPERATURE, ActivitySeineDto.PROPERTY_ERS_ID, ActivitySeineDto.PROPERTY_VESSEL_ACTIVITY_SEINE, - ActivitySeineDto.PROPERTY_SOURROUNDING_ACTIVITY, + ActivitySeineDto.PROPERTY_SURROUNDING_ACTIVITY, ActivitySeineDto.PROPERTY_DETECTION_MODE, ActivitySeineDto.PROPERTY_REASON_FOR_NO_FISHING, ActivitySeineDto.PROPERTY_PREVIOUS_FPA_ZONE, @@ -1085,9 +1085,7 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { protected static <R extends ReferentialDto, E extends TopiaEntity> void registerReferentialReferenceDtoBinder(Class<R> dtoType, Class<E> entityType, boolean useDefault, String... extraProperties) { - BinderModelBuilder<R, E> dtoToReferenceBuilder = - newBinderBuilder(dtoType, entityType) - .canTypeMismatch(true); + BinderModelBuilder<R, E> dtoToReferenceBuilder =newBinderBuilder(dtoType, entityType); if (useDefault) { dtoToReferenceBuilder.addSimpleProperties(DEFAULT_REFERENTIAL_REFERENCE_PROPERTIES); @@ -1124,6 +1122,7 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { protected static <Source, Target> BinderModelBuilder<Source, Target> newBinderBuilder(Class<Source> source, Class<Target> target, String... properties) { BinderModelBuilder<Source, Target> builder = BinderModelBuilder.newEmptyBuilder(source, target); + builder.canTypeMismatch(true); builder.addSimpleProperties(properties); return builder; } -- 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 develop in repository observe. See http://git.codelutin.com/observe.git commit 3ae2785dbe55ef96db002e542a2e36d7685446d5 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 16:06:16 2015 +0200 Utilisation de la nouvelle API sur les binder pour faire les transformations de type --- .../services/builder/DtoToEntityBuilder.java | 54 ++++------------------ .../services/builder/EntityToDtoBuilder.java | 37 +-------------- 2 files changed, 9 insertions(+), 82 deletions(-) diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/DtoToEntityBuilder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/builder/DtoToEntityBuilder.java index b6a04b4..f440a1a 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/DtoToEntityBuilder.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/builder/DtoToEntityBuilder.java @@ -8,21 +8,14 @@ import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.ObserveDtoBinders; import fr.ird.observe.services.dto.ReferenceDto; -import fr.ird.observe.services.dto.constants.GearType; -import fr.ird.observe.services.dto.constants.ReferenceStatus; -import fr.ird.observe.services.dto.constants.seine.NonTargetCatchComputedValueSource; -import fr.ird.observe.services.dto.constants.seine.Ownership; -import fr.ird.observe.services.dto.constants.seine.SchoolType; -import fr.ird.observe.services.dto.constants.seine.TypeTransmittingBuoyOperation; -import fr.ird.observe.services.dto.referential.ReferentialDto; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.util.beans.Binder; import java.io.Closeable; import java.util.ArrayList; import java.util.Collection; +import java.util.HashSet; import java.util.LinkedHashSet; -import java.util.List; import java.util.Map; /** @@ -165,55 +158,24 @@ public class DtoToEntityBuilder<D extends IdDto, E extends TopiaEntity> implemen return propertyValue instanceof Collection; } - protected Collection<Object> newCollection(Object propertyValue) { + protected Collection<Object> newCollection(Class<?> collectionType) { Collection<Object> propertyValueCollection = null; - if (propertyValue instanceof Set) { + if (LinkedHashSet.class.isAssignableFrom(collectionType)) { propertyValueCollection = new LinkedHashSet<>(); - } else - if (propertyValue instanceof Collection) { - propertyValueCollection = new LinkedHashSet<>(); - } - if (propertyValue instanceof List) { + } else if (Set.class.isAssignableFrom(collectionType)) { + propertyValueCollection = new HashSet<>(); + } else if (Collection.class.isAssignableFrom(collectionType)) { propertyValueCollection = new ArrayList<>(); } return propertyValueCollection; + } protected void addProperty(String propertyName, Object propertyValue, ImmutableMap.Builder<String, Object> entitiesPropertiesBuilder) { - if (ReferentialDto.PROPERTY_ID.equals(propertyName)) { + if (IdDto.PROPERTY_ID.equals(propertyName)) { propertyName = TopiaEntity.TOPIA_ID; - } else if (propertyValue instanceof GearType) { - - GearType entityGearType = (GearType) propertyValue; - propertyValue = fr.ird.observe.entities.constants.GearType.valueOf(entityGearType.name()); - - } else if (propertyValue instanceof ReferenceStatus) { - - ReferenceStatus referenceStatus = (ReferenceStatus) propertyValue; - propertyValue = fr.ird.observe.entities.constants.ReferenceStatus.valueOf(referenceStatus.name()); - - } else if (propertyValue instanceof Ownership) { - - Ownership ownership = (Ownership) propertyValue; - propertyValue = Ownership.valueOf(ownership.name()); - - } else if (propertyValue instanceof SchoolType) { - - SchoolType schoolType = (SchoolType) propertyValue; - propertyValue = fr.ird.observe.entities.constants.seine.SchoolType.valueOf(schoolType.name()); - - } else if (propertyValue instanceof TypeTransmittingBuoyOperation) { - - TypeTransmittingBuoyOperation typeTransmittingBuoyOperation = (TypeTransmittingBuoyOperation) propertyValue; - propertyValue = fr.ird.observe.entities.constants.seine.TypeTransmittingBuoyOperation.valueOf(typeTransmittingBuoyOperation.name()); - - } else if (propertyValue instanceof NonTargetCatchComputedValueSource) { - - NonTargetCatchComputedValueSource nonTargetCatchComputedValueSource = (NonTargetCatchComputedValueSource) propertyValue; - propertyValue = fr.ird.observe.entities.constants.seine.NonTargetCatchComputedValueSource.valueOf(nonTargetCatchComputedValueSource.name()); - } entitiesPropertiesBuilder.put(propertyName, propertyValue); diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToDtoBuilder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToDtoBuilder.java index 8ce3a8e..cc86f2a 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToDtoBuilder.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToDtoBuilder.java @@ -6,12 +6,6 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; import fr.ird.observe.ObserveEntityEnum; import fr.ird.observe.entities.Set; -import fr.ird.observe.entities.constants.GearType; -import fr.ird.observe.entities.constants.ReferenceStatus; -import fr.ird.observe.entities.constants.seine.NonTargetCatchComputedValueSource; -import fr.ird.observe.entities.constants.seine.Ownership; -import fr.ird.observe.entities.constants.seine.SchoolType; -import fr.ird.observe.entities.constants.seine.TypeTransmittingBuoyOperation; import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.ObserveDtoBinders; @@ -166,42 +160,13 @@ public class EntityToDtoBuilder<E extends TopiaEntity, D extends IdDto> implemen propertyValueCollection = new ArrayList<>(); } return propertyValueCollection; + } protected void addProperty(String propertyName, Object propertyValue, ImmutableMap.Builder<String, Object> dtoPropertiesBuilder) { if (TopiaEntity.TOPIA_ID.equals(propertyName)) { propertyName = ReferentialDto.PROPERTY_ID; - } else if (propertyValue instanceof GearType) { - - GearType entityGearType = (GearType) propertyValue; - propertyValue = fr.ird.observe.services.dto.constants.GearType.valueOf(entityGearType.name()); - - } else if (propertyValue instanceof ReferenceStatus) { - - ReferenceStatus referenceStatus = (ReferenceStatus) propertyValue; - propertyValue = fr.ird.observe.services.dto.constants.ReferenceStatus.valueOf(referenceStatus.name()); - - } else if (propertyValue instanceof Ownership) { - - Ownership ownership = (Ownership) propertyValue; - propertyValue = fr.ird.observe.services.dto.constants.seine.Ownership.valueOf(ownership.name()); - - } else if (propertyValue instanceof SchoolType) { - - SchoolType schoolType = (SchoolType) propertyValue; - propertyValue = fr.ird.observe.services.dto.constants.seine.SchoolType.valueOf(schoolType.name()); - - } else if (propertyValue instanceof TypeTransmittingBuoyOperation) { - - TypeTransmittingBuoyOperation typeTransmittingBuoyOperation = (TypeTransmittingBuoyOperation) propertyValue; - propertyValue = fr.ird.observe.services.dto.constants.seine.TypeTransmittingBuoyOperation.valueOf(typeTransmittingBuoyOperation.name()); - - } else if (propertyValue instanceof NonTargetCatchComputedValueSource) { - - NonTargetCatchComputedValueSource nonTargetCatchComputedValueSource = (NonTargetCatchComputedValueSource) propertyValue; - propertyValue = fr.ird.observe.services.dto.constants.seine.NonTargetCatchComputedValueSource.valueOf(nonTargetCatchComputedValueSource.name()); - } dtoPropertiesBuilder.put(propertyName, propertyValue); -- 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 develop in repository observe. See http://git.codelutin.com/observe.git commit c0295ec93fb6a26ac63c0c1e328b5f2f2851e9f2 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 16:06:42 2015 +0200 correction du nom d'une propriété --- .../services/dto/ObserveDtosInitializer.java | 153 +++++++++++++++++---- 1 file changed, 129 insertions(+), 24 deletions(-) diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java index 3f949fa..522d766 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java @@ -1,5 +1,6 @@ package fr.ird.observe.services.dto; +import com.google.common.base.Function; import com.google.common.collect.ImmutableBiMap; import fr.ird.observe.entities.referentiel.Country; import fr.ird.observe.entities.referentiel.FpaZone; @@ -908,22 +909,22 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { BinderModelBuilder<ActivitySeineDto, ActivitySeine> dtoToEntityBuilder = newBinderBuilder(ActivitySeineDto.class, ActivitySeine.class, - ActivitySeineDto.PROPERTY_COMMENT, - ActivitySeineDto.PROPERTY_OPEN, - ActivitySeineDto.PROPERTY_TIME, - ActivitySeineDto.PROPERTY_LATITUDE, - ActivitySeineDto.PROPERTY_LONGITUDE, - ActivitySeineDto.PROPERTY_VESSEL_SPEED, - ActivitySeineDto.PROPERTY_SEA_SURFACE_TEMPERATURE, - ActivitySeineDto.PROPERTY_ERS_ID, - ActivitySeineDto.PROPERTY_VESSEL_ACTIVITY_SEINE, - ActivitySeineDto.PROPERTY_SURROUNDING_ACTIVITY, - ActivitySeineDto.PROPERTY_DETECTION_MODE, - ActivitySeineDto.PROPERTY_REASON_FOR_NO_FISHING, - ActivitySeineDto.PROPERTY_PREVIOUS_FPA_ZONE, - ActivitySeineDto.PROPERTY_CURRENT_FPA_ZONE, - ActivitySeineDto.PROPERTY_NEXT_FPA_ZONE, - ActivitySeineDto.PROPERTY_NEXT_FPA_ZONE); + ActivitySeineDto.PROPERTY_COMMENT, + ActivitySeineDto.PROPERTY_OPEN, + ActivitySeineDto.PROPERTY_TIME, + ActivitySeineDto.PROPERTY_LATITUDE, + ActivitySeineDto.PROPERTY_LONGITUDE, + ActivitySeineDto.PROPERTY_VESSEL_SPEED, + ActivitySeineDto.PROPERTY_SEA_SURFACE_TEMPERATURE, + ActivitySeineDto.PROPERTY_ERS_ID, + ActivitySeineDto.PROPERTY_VESSEL_ACTIVITY_SEINE, + ActivitySeineDto.PROPERTY_SURROUNDING_ACTIVITY, + ActivitySeineDto.PROPERTY_DETECTION_MODE, + ActivitySeineDto.PROPERTY_REASON_FOR_NO_FISHING, + ActivitySeineDto.PROPERTY_PREVIOUS_FPA_ZONE, + ActivitySeineDto.PROPERTY_CURRENT_FPA_ZONE, + ActivitySeineDto.PROPERTY_NEXT_FPA_ZONE, + ActivitySeineDto.PROPERTY_NEXT_FPA_ZONE); registerDtoBinder(dtoToEntityBuilder); } @@ -934,10 +935,10 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { BinderModelBuilder<ActivitySeineObservedSystemDto, ActivitySeine> dtoToEntityBuilder = newBinderBuilder(ActivitySeineObservedSystemDto.class, ActivitySeine.class, - ActivitySeineObservedSystemDto.PROPERTY_COMMENT, - ActivitySeineObservedSystemDto.PROPERTY_OPEN, - ActivitySeineObservedSystemDto.PROPERTY_OBSERVED_SYSTEM_DISTANCE, - ActivitySeineObservedSystemDto.PROPERTY_OBSERVED_SYSTEM); + ActivitySeineObservedSystemDto.PROPERTY_COMMENT, + ActivitySeineObservedSystemDto.PROPERTY_OPEN, + ActivitySeineObservedSystemDto.PROPERTY_OBSERVED_SYSTEM_DISTANCE, + ActivitySeineObservedSystemDto.PROPERTY_OBSERVED_SYSTEM); registerDtoBinder(dtoToEntityBuilder); } @@ -1058,9 +1059,7 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { protected <R extends ReferentialDto, E extends TopiaEntity> void registerReferentialDtoBinder(Class<R> dtoType, Class<E> entityType, String... extraProperties) { - BinderModelBuilder<R, E> dtoToEntityBuilder = newBinderBuilder(dtoType, entityType) - .canTypeMismatch(true) - .addSimpleProperties(DEFAULT_REFERENTIAL_PROPERTIES); + BinderModelBuilder<R, E> dtoToEntityBuilder = newBinderBuilder(dtoType, entityType, DEFAULT_REFERENTIAL_PROPERTIES); if (I18nReferenceEntity.class.isAssignableFrom(entityType)) { dtoToEntityBuilder.addSimpleProperties(DEFAULT_REFERENTIAL_I18N_PROPERTIES); @@ -1085,7 +1084,7 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { protected static <R extends ReferentialDto, E extends TopiaEntity> void registerReferentialReferenceDtoBinder(Class<R> dtoType, Class<E> entityType, boolean useDefault, String... extraProperties) { - BinderModelBuilder<R, E> dtoToReferenceBuilder =newBinderBuilder(dtoType, entityType); + BinderModelBuilder<R, E> dtoToReferenceBuilder = newBinderBuilder(dtoType, entityType); if (useDefault) { dtoToReferenceBuilder.addSimpleProperties(DEFAULT_REFERENTIAL_REFERENCE_PROPERTIES); @@ -1104,6 +1103,10 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { dtoToEntityBuilder.addProperty(IdDto.PROPERTY_ID, TopiaEntity.TOPIA_ID); BinderModelBuilder<E, R> entityToDtoToBuilder = dtoToEntityBuilder.buildInverseModelBuilder(); + + addDtoToEntityFunctions(dtoToEntityBuilder); + addEntityToDtoFunctions(entityToDtoToBuilder); + BinderFactory.registerBinderModel(dtoToEntityBuilder, ObserveDtoBinders.DTO_TO_ENTITY); BinderFactory.registerBinderModel(entityToDtoToBuilder, ObserveDtoBinders.ENTITY_TO_DTO); @@ -1115,6 +1118,9 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { BinderModelBuilder<E, R> entityToReferenceBuilder = dtoToReferenceBuilder.buildInverseModelBuilder(); + addDtoToEntityFunctions(dtoToReferenceBuilder); + addEntityToDtoFunctions(entityToReferenceBuilder); + BinderFactory.registerBinderModel(dtoToReferenceBuilder, ObserveDtoBinders.DTO_TO_REFERENCE); BinderFactory.registerBinderModel(entityToReferenceBuilder, ObserveDtoBinders.ENTITY_TO_REFERENCE); @@ -1124,7 +1130,106 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { BinderModelBuilder<Source, Target> builder = BinderModelBuilder.newEmptyBuilder(source, target); builder.canTypeMismatch(true); builder.addSimpleProperties(properties); + return builder; } + + protected static <Source extends IdDto, Target> void addDtoToEntityFunctions(BinderModelBuilder<Source, Target> builder) { + + builder.addFunction(fr.ird.observe.services.dto.constants.GearType.class, new Function<fr.ird.observe.services.dto.constants.GearType, fr.ird.observe.entities.constants.GearType>() { + + @Override + public fr.ird.observe.entities.constants.GearType apply(fr.ird.observe.services.dto.constants.GearType input) { + return fr.ird.observe.entities.constants.GearType.valueOf(input.name()); + } + }); + builder.addFunction(fr.ird.observe.services.dto.constants.ReferenceStatus.class, new Function<fr.ird.observe.services.dto.constants.ReferenceStatus, fr.ird.observe.entities.constants.ReferenceStatus>() { + + @Override + public fr.ird.observe.entities.constants.ReferenceStatus apply(fr.ird.observe.services.dto.constants.ReferenceStatus input) { + return fr.ird.observe.entities.constants.ReferenceStatus.valueOf(input.name()); + } + }); + builder.addFunction(fr.ird.observe.services.dto.constants.seine.Ownership.class, new Function<fr.ird.observe.services.dto.constants.seine.Ownership, fr.ird.observe.entities.constants.seine.Ownership>() { + + @Override + public fr.ird.observe.entities.constants.seine.Ownership apply(fr.ird.observe.services.dto.constants.seine.Ownership input) { + return fr.ird.observe.entities.constants.seine.Ownership.valueOf(input.name()); + } + }); + builder.addFunction(fr.ird.observe.services.dto.constants.seine.SchoolType.class, new Function<fr.ird.observe.services.dto.constants.seine.SchoolType, fr.ird.observe.entities.constants.seine.SchoolType>() { + + @Override + public fr.ird.observe.entities.constants.seine.SchoolType apply(fr.ird.observe.services.dto.constants.seine.SchoolType input) { + return fr.ird.observe.entities.constants.seine.SchoolType.valueOf(input.name()); + } + }); + builder.addFunction(fr.ird.observe.services.dto.constants.seine.TypeTransmittingBuoyOperation.class, new Function<fr.ird.observe.services.dto.constants.seine.TypeTransmittingBuoyOperation, fr.ird.observe.entities.constants.seine.TypeTransmittingBuoyOperation>() { + + @Override + public fr.ird.observe.entities.constants.seine.TypeTransmittingBuoyOperation apply(fr.ird.observe.services.dto.constants.seine.TypeTransmittingBuoyOperation input) { + return fr.ird.observe.entities.constants.seine.TypeTransmittingBuoyOperation.valueOf(input.name()); + } + }); + builder.addFunction(fr.ird.observe.services.dto.constants.seine.NonTargetCatchComputedValueSource.class, new Function<fr.ird.observe.services.dto.constants.seine.NonTargetCatchComputedValueSource, fr.ird.observe.entities.constants.seine.NonTargetCatchComputedValueSource>() { + + @Override + public fr.ird.observe.entities.constants.seine.NonTargetCatchComputedValueSource apply(fr.ird.observe.services.dto.constants.seine.NonTargetCatchComputedValueSource input) { + return fr.ird.observe.entities.constants.seine.NonTargetCatchComputedValueSource.valueOf(input.name()); + } + }); + } + + protected static <Source extends TopiaEntity, Target> void addEntityToDtoFunctions(BinderModelBuilder<Source, Target> builder) { + + builder.addFunction(fr.ird.observe.entities.constants.GearType.class, new Function<fr.ird.observe.entities.constants.GearType, fr.ird.observe.services.dto.constants.GearType>() { + + @Override + public fr.ird.observe.services.dto.constants.GearType apply(fr.ird.observe.entities.constants.GearType input) { + return fr.ird.observe.services.dto.constants.GearType.valueOf(input.name()); + } + }); + + builder.addFunction(fr.ird.observe.entities.constants.ReferenceStatus.class, new Function<fr.ird.observe.entities.constants.ReferenceStatus, fr.ird.observe.services.dto.constants.ReferenceStatus>() { + + @Override + public fr.ird.observe.services.dto.constants.ReferenceStatus apply(fr.ird.observe.entities.constants.ReferenceStatus input) { + return fr.ird.observe.services.dto.constants.ReferenceStatus.valueOf(input.name()); + } + }); + + builder.addFunction(fr.ird.observe.entities.constants.seine.Ownership.class, new Function<fr.ird.observe.entities.constants.seine.Ownership, fr.ird.observe.services.dto.constants.seine.Ownership>() { + + @Override + public fr.ird.observe.services.dto.constants.seine.Ownership apply(fr.ird.observe.entities.constants.seine.Ownership input) { + return fr.ird.observe.services.dto.constants.seine.Ownership.valueOf(input.name()); + } + }); + + builder.addFunction(fr.ird.observe.entities.constants.seine.SchoolType.class, new Function<fr.ird.observe.entities.constants.seine.SchoolType, fr.ird.observe.services.dto.constants.seine.SchoolType>() { + + @Override + public fr.ird.observe.services.dto.constants.seine.SchoolType apply(fr.ird.observe.entities.constants.seine.SchoolType input) { + return fr.ird.observe.services.dto.constants.seine.SchoolType.valueOf(input.name()); + } + }); + + builder.addFunction(fr.ird.observe.entities.constants.seine.TypeTransmittingBuoyOperation.class, new Function<fr.ird.observe.entities.constants.seine.TypeTransmittingBuoyOperation, fr.ird.observe.services.dto.constants.seine.TypeTransmittingBuoyOperation>() { + + @Override + public fr.ird.observe.services.dto.constants.seine.TypeTransmittingBuoyOperation apply(fr.ird.observe.entities.constants.seine.TypeTransmittingBuoyOperation input) { + return fr.ird.observe.services.dto.constants.seine.TypeTransmittingBuoyOperation.valueOf(input.name()); + } + }); + + builder.addFunction(fr.ird.observe.entities.constants.seine.NonTargetCatchComputedValueSource.class, new Function<fr.ird.observe.entities.constants.seine.NonTargetCatchComputedValueSource, fr.ird.observe.services.dto.constants.seine.NonTargetCatchComputedValueSource>() { + + @Override + public fr.ird.observe.services.dto.constants.seine.NonTargetCatchComputedValueSource apply(fr.ird.observe.entities.constants.seine.NonTargetCatchComputedValueSource input) { + return fr.ird.observe.services.dto.constants.seine.NonTargetCatchComputedValueSource.valueOf(input.name()); + } + }); + + } } -- 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 develop in repository observe. See http://git.codelutin.com/observe.git commit 6609e00fa0130dfccd104dd32fd44a78518209ea Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Aug 19 17:34:02 2015 +0200 add some service for longline (refs #7458). --- .../longline/ActivityLongLineEncouterService.java | 20 ++++++++++++++ .../ActivityLongLineSensorUsedService.java | 21 +++++++++++++++ .../service/longline/ActivitySeineService.java | 29 ++++++++++++++++++++ .../longline/GearUseFeaturesLonglineService.java | 30 +++++++++++++++++++++ .../SetLonglineDetailCompositionService.java | 20 ++++++++++++++ .../SetLonglineGlobalCompositionService.java | 20 ++++++++++++++ .../service/longline/SetLonglineService.java | 28 +++++++++++++++++++ .../service/longline/TripLonglineService.java | 30 +++++++++++++++++++++ .../main/xmi/observe-services-dto-longline.zargo | Bin 75789 -> 77315 bytes .../src/main/xmi/observe-services-dto-seine.zargo | Bin 57866 -> 54397 bytes .../services/dto/ObserveDtosInitializer.java | 20 ++++++++++++++ 11 files changed, 218 insertions(+) diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineEncouterService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineEncouterService.java new file mode 100644 index 0000000..ce76712 --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineEncouterService.java @@ -0,0 +1,20 @@ +package fr.ird.observe.services.service.longline; + +import fr.ird.observe.services.ObserveService; +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.longline.ActivityLonglineEncouterDto; +import fr.ird.observe.services.spi.Write; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public interface ActivityLongLineEncouterService extends ObserveService { + + FormDto<ActivityLonglineEncouterDto> loadToRead(String activityLonglineId); + + FormDto<ActivityLonglineEncouterDto> loadToEdit(String activityLonglineId); + + @Write + String save(FormDto<ActivityLonglineEncouterDto> form); + +} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineSensorUsedService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineSensorUsedService.java new file mode 100644 index 0000000..41ed246 --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineSensorUsedService.java @@ -0,0 +1,21 @@ +package fr.ird.observe.services.service.longline; + +import fr.ird.observe.services.ObserveService; +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.longline.ActivityLonglineEncouterDto; +import fr.ird.observe.services.dto.longline.ActivityLonglineSensorUsedDto; +import fr.ird.observe.services.spi.Write; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public interface ActivityLongLineSensorUsedService extends ObserveService { + + FormDto<ActivityLonglineSensorUsedDto> loadToRead(String activityLonglineId); + + FormDto<ActivityLonglineSensorUsedDto> loadToEdit(String activityLonglineId); + + @Write + String save(FormDto<ActivityLonglineEncouterDto> form); + +} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivitySeineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivitySeineService.java new file mode 100644 index 0000000..accb84f --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivitySeineService.java @@ -0,0 +1,29 @@ +package fr.ird.observe.services.service.longline; + +import fr.ird.observe.services.ObserveService; +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.seine.ActivitySeineDto; +import fr.ird.observe.services.spi.Write; + +import java.util.List; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public interface ActivitySeineService extends ObserveService { + + FormDto<ActivitySeineDto> loadToRead(String activitySeineId); + + List<ReferenceDto<ActivitySeineDto>> getActivitySeineByRoute(String routeId); + + FormDto<ActivitySeineDto> loadToEdit(String activitySeineId); + + FormDto<ActivitySeineDto> preCreate(String routeId); + + @Write + String save(FormDto<ActivitySeineDto> form); + + @Write + void delete(String routeId, String activitySeineId); +} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/GearUseFeaturesLonglineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/GearUseFeaturesLonglineService.java new file mode 100644 index 0000000..29819c7 --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/GearUseFeaturesLonglineService.java @@ -0,0 +1,30 @@ +package fr.ird.observe.services.service.longline; + +import fr.ird.observe.services.ObserveService; +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.longline.GearUseFeaturesLonglineDto; +import fr.ird.observe.services.spi.Write; + +import java.util.List; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public interface GearUseFeaturesLonglineService extends ObserveService { + + List<GearUseFeaturesLonglineDto> getGearUseFeaturesLonglineByTripLongline(String tripLonglineId); + + FormDto<GearUseFeaturesLonglineDto> loadToRead(String gearUseFeaturesLonglineId); + + FormDto<GearUseFeaturesLonglineDto> loadToEdit(String gearUseFeaturesLonglineId); + + FormDto<GearUseFeaturesLonglineDto> preCreate(String tripLonglineId); + + @Write + String save(FormDto<GearUseFeaturesLonglineDto> form); + + @Write + void delete(String tripLonglineId, String gearUseFeaturesLonglineId); + + +} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineDetailCompositionService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineDetailCompositionService.java new file mode 100644 index 0000000..4058f75 --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineDetailCompositionService.java @@ -0,0 +1,20 @@ +package fr.ird.observe.services.service.longline; + +import fr.ird.observe.services.ObserveService; +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; +import fr.ird.observe.services.spi.Write; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public interface SetLonglineDetailCompositionService extends ObserveService { + + FormDto<SetLonglineGlobalCompositionDto> loadToRead(String setLonglineId); + + FormDto<SetLonglineGlobalCompositionDto> loadToEdit(String setLonglineId); + + @Write + String save(FormDto<SetLonglineGlobalCompositionDto> form); + +} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineGlobalCompositionService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineGlobalCompositionService.java new file mode 100644 index 0000000..758e07e --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineGlobalCompositionService.java @@ -0,0 +1,20 @@ +package fr.ird.observe.services.service.longline; + +import fr.ird.observe.services.ObserveService; +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; +import fr.ird.observe.services.spi.Write; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public interface SetLonglineGlobalCompositionService extends ObserveService { + + FormDto<SetLonglineGlobalCompositionDto> loadToRead(String setLonglineId); + + FormDto<SetLonglineGlobalCompositionDto> loadToEdit(String setLonglineId); + + @Write + String save(FormDto<SetLonglineGlobalCompositionDto> form); + +} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineService.java new file mode 100644 index 0000000..b95c7ff --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineService.java @@ -0,0 +1,28 @@ +package fr.ird.observe.services.service.longline; + +import fr.ird.observe.services.ObserveService; +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.longline.SetLonglineDto; +import fr.ird.observe.services.spi.Write; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public interface SetLonglineService extends ObserveService { + + ReferenceDto<SetLonglineDto> getSetLonglineByActivityLongline(String activityLonglineId); + + FormDto<SetLonglineDto> loadToRead(String setLonglineId); + + FormDto<SetLonglineDto> loadToEdit(String setLonglineId); + + FormDto<SetLonglineDto> preCreate(String activityLonglineId); + + @Write + String save(FormDto<SetLonglineDto> form); + + @Write + void delete(String activityLonglineId, String setLonglineId); + +} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TripLonglineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TripLonglineService.java new file mode 100644 index 0000000..336df82 --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TripLonglineService.java @@ -0,0 +1,30 @@ +package fr.ird.observe.services.service.longline; + +import fr.ird.observe.services.ObserveService; +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.spi.Write; + +import java.util.List; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public interface TripLonglineService extends ObserveService { + + List<ReferenceDto<TripLonglineDto>> getTripLonglineByProgram(String programId); + + FormDto<TripLonglineDto> loadToRead(String tripLonglineId); + + FormDto<TripLonglineDto> loadToEdit(String tripLonglineId); + + FormDto<TripLonglineDto> preCreate(String programId); + + @Write + String save(FormDto<TripLonglineDto> form); + + @Write + void delete(String tripLonglineId); + +} \ No newline at end of file diff --git a/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo b/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo index a7dc856..016fdc4 100644 Binary files a/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo and b/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo differ diff --git a/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo b/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo index 2fc01ca..cafa62b 100644 Binary files a/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo and b/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo differ diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java index 522d766..ef44a37 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java @@ -242,6 +242,16 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { } @Override + public void initActivityLonglineEncouterDto() { + + } + + @Override + public void initActivityLonglineSensorUsedDto() { + + } + + @Override public void initBaitsCompositionDto() { } @@ -307,6 +317,16 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { } @Override + public void initSetLonglineDetailCompositionDto() { + + } + + @Override + public void initSetLonglineGlobalCompositionDto() { + + } + + @Override public void initSizeMeasureDto() { } -- 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 develop in repository observe. See http://git.codelutin.com/observe.git commit 57c39cc277aba366fc6dd24cae60f3a41a01903a Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Aug 20 09:25:53 2015 +0200 debut de services rest + restructuration des paquetages --- observe-services-api/pom.xml | 18 +++ .../observe/services/ObserveServiceContext.java | 4 +- .../observe/services/ObserveServiceFactory.java | 4 +- .../services/ObserveDataSourceConfiguration.java | 10 ++ .../services/ObserveServiceApplicationContext.java | 8 +- .../observe/services/ObserveServiceContext.java | 4 + .../observe/services/ObserveServiceFactory.java | 4 +- .../services/ObserveServiceFactorySupport.java | 4 +- .../services/ObserveServiceMainFactory.java | 30 ++--- .../services/FakeObserveServiceContext.java | 22 ---- .../services/FakeObserveServiceFactory.java | 19 --- .../services/ObserveServiceMainFactoryTest.java | 23 ---- .../fr.ird.observe.services.ObserveServiceFactory | 1 - .../LICENSE.txt | 0 .../README.txt | 0 .../pom.xml | 43 +------ .../ObserveRestClientDataSourceConfiguration.java | 39 +++++++ .../rest/client/ObserveRestClientService.java | 17 +++ .../client/ObserveRestClientServiceContext.java | 38 ++++++ .../client/ObserveRestClientServiceFactory.java | 46 ++++++++ .../service/ReferentialServiceRestClient.java | 14 +-- .../fr.ird.observe.services.ObserveServiceFactory | 1 + .../client/service/ReferentialServiceRestTest.java | 45 +++++++ .../src/test/resources/log4j.properties | 0 .../LICENSE.txt | 0 .../README.txt | 0 .../pom.xml | 59 +++++----- .../wm/ObserveRestWebMotionApplicationContext.java | 81 +++++++++++++ .../ObserveRestWebMotionApplicationListener.java | 42 +++++++ .../rest/wm/ObserveRestWebMotionController.java | 11 ++ .../rest/wm/ObserveRestWebMotionFilter.java | 55 +++++++++ .../rest/wm/ObserveRestWebMotionJsonHelper.java | 130 +++++++++++++++++++++ .../rest/wm/ObserveRestWebMotionRender.java | 52 +++++++++ .../rest/wm/service/ReferentialServiceRest.java | 66 +++++++++++ .../src/main/resources/mapping | 12 ++ .../src/main/webapp/WEB-INF/web.xml | 25 ++++ .../services/ObserveServiceFactoryRest.java | 33 ------ .../ird/observe/services/ObserveServiceRest.java | 17 --- .../rest/wm/ObserveRestApplicationContext.java | 42 +++++++ .../rest/wm/ObserveRestApplicationListener.java | 42 +++++++ .../rest/wm/ObserveRestWebMotionFilter.java | 62 ++++++++++ .../fr.ird.observe.services.ObserveServiceFactory | 1 - observe-services-rest/src/main/resources/mapping | 28 +++++ .../src/main/webapp/WEB-INF/web.xml | 36 ++++++ .../referential/ReferentialServiceRestTest.java | 37 ------ .../observe/services/AbstractObserveService.java | 5 +- .../services/ObserveServiceContextTopia.java | 45 ------- .../services/{dto => topia}/ObserveDtoBinders.java | 3 +- .../{dto => topia}/ObserveDtosInitializer.java | 4 +- .../services/{ => topia}/ObserveServiceTopia.java | 11 +- .../topia/ObserveTopiaDataSourceConfiguration.java | 22 ++++ .../services/topia/ObserveTopiaServiceContext.java | 54 +++++++++ .../ObserveTopiaServiceFactory.java} | 41 ++++--- .../{ => topia}/builder/DtoToEntityBuilder.java | 6 +- .../{ => topia}/builder/EntityToDtoBuilder.java | 6 +- .../builder/EntityToReferenceDtoBuilder.java | 4 +- .../EntityToReferentialReferenceDtoBuilder.java | 4 +- .../service/ReferentialServiceTopia.java | 9 +- .../ActivitySeineObservedSystemServiceTopia.java | 8 +- .../service/seine/ActivitySeineServiceTopia.java | 5 +- .../service/seine/FloatingObjectServiceTopia.java | 7 +- .../fr.ird.observe.services.ObserveServiceFactory | 2 +- .../{ => topia}/ApplicationContextResource.java | 17 ++- .../service/{ => topia}/DataSourceResource.java | 2 +- .../service}/ReferentialServiceTopiaTest.java | 24 ++-- .../builder/DtoToEntityBuilderTest.java | 4 +- .../builder/EntityToDtoBuilderTest.java | 4 +- pom.xml | 53 +++++++-- 68 files changed, 1193 insertions(+), 372 deletions(-) diff --git a/observe-services-api/pom.xml b/observe-services-api/pom.xml index 0a79ce5..590f6e8 100644 --- a/observe-services-api/pom.xml +++ b/observe-services-api/pom.xml @@ -59,5 +59,23 @@ </dependencies> + <build> + + <plugins> + <plugin> + <groupId>com.thoughtworks.paranamer</groupId> + <artifactId>paranamer-maven-plugin</artifactId> + <executions> + <execution> + <id>extract-paranamer</id> + <goals> + <goal>generate</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + + </build> </project> \ No newline at end of file diff --git a/observe-services-api/src/main/fromRefactor/fr/ird/observe/services/ObserveServiceContext.java b/observe-services-api/src/main/fromRefactor/fr/ird/observe/services/ObserveServiceContext.java index 320d53e..dbf5fcf 100644 --- a/observe-services-api/src/main/fromRefactor/fr/ird/observe/services/ObserveServiceContext.java +++ b/observe-services-api/src/main/fromRefactor/fr/ird/observe/services/ObserveServiceContext.java @@ -40,9 +40,9 @@ public class ObserveServiceContext { /** * Application context. */ - protected ObserveApplicationContext applicationContext; + protected ObserveServiceApplicationContext applicationContext; - public ObserveServiceContext(ObserveApplicationContext applicationContext, DataSource dataSource) { + public ObserveServiceContext(ObserveServiceApplicationContext applicationContext, DataSource dataSource) { this.applicationContext = applicationContext; this.config = applicationContext.getConfig(); this.dataSource = dataSource; diff --git a/observe-services-api/src/main/fromRefactor/fr/ird/observe/services/ObserveServiceFactory.java b/observe-services-api/src/main/fromRefactor/fr/ird/observe/services/ObserveServiceFactory.java index 25dcb33..551985d 100644 --- a/observe-services-api/src/main/fromRefactor/fr/ird/observe/services/ObserveServiceFactory.java +++ b/observe-services-api/src/main/fromRefactor/fr/ird/observe/services/ObserveServiceFactory.java @@ -21,11 +21,11 @@ public class ObserveServiceFactory { /** Logger. */ private static final Log log = LogFactory.getLog(ObserveServiceFactory.class); - protected final ObserveApplicationContext applicationContext; + protected final ObserveServiceApplicationContext applicationContext; protected static Set<ObserveServiceFactoryProvider> providers; - public ObserveServiceFactory(ObserveApplicationContext applicationContext) { + public ObserveServiceFactory(ObserveServiceApplicationContext applicationContext) { this.applicationContext = applicationContext; if (log.isInfoEnabled()) { log.info("Init new ServiceFactory for applicationContext: " + applicationContext); diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/ObserveDataSourceConfiguration.java b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveDataSourceConfiguration.java new file mode 100644 index 0000000..ae1da54 --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveDataSourceConfiguration.java @@ -0,0 +1,10 @@ +package fr.ird.observe.services; + +/** + * Created on 19/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public interface ObserveDataSourceConfiguration { + +} diff --git a/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceContextRest.java b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceApplicationContext.java similarity index 78% rename from observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceContextRest.java rename to observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceApplicationContext.java index d9efbdf..542f8e3 100644 --- a/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceContextRest.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceApplicationContext.java @@ -3,15 +3,17 @@ package fr.ird.observe.services; import fr.ird.observe.services.dto.constants.ReferentialLocale; /** - * Created on 16/08/15. + * Created on 19/08/15. * * @author Tony Chemit - chemit@codelutin.com */ -public class ObserveServiceContextRest implements ObserveServiceContext { +public class ObserveServiceApplicationContext { + /** + * La locale du référentiel. + */ protected ReferentialLocale referentialLocale; - @Override public ReferentialLocale getReferentialLocale() { return referentialLocale; } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceContext.java b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceContext.java index 9b1a3e2..d854949 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceContext.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceContext.java @@ -2,6 +2,8 @@ package fr.ird.observe.services; import fr.ird.observe.services.dto.constants.ReferentialLocale; +import java.util.Date; + /** * Created on 16/08/15. * @@ -11,4 +13,6 @@ public interface ObserveServiceContext { ReferentialLocale getReferentialLocale(); + Date now(); + } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceFactory.java b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceFactory.java index 92549e8..1f86f6d 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceFactory.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceFactory.java @@ -7,8 +7,8 @@ package fr.ird.observe.services; */ public interface ObserveServiceFactory { - <S extends ObserveService> boolean accept(ObserveServiceContext serviceContext, Class<S> serviceType); + <S extends ObserveService> boolean accept(ObserveDataSourceConfiguration dataSourceConfiguration, Class<S> serviceType); - <S extends ObserveService> S newService(ObserveServiceContext serviceContext, Class<S> serviceType); + <S extends ObserveService> S newService(ObserveServiceApplicationContext applicationContext, ObserveDataSourceConfiguration dataSourceConfiguration, Class<S> serviceType); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceFactorySupport.java b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceFactorySupport.java index dbae6c6..a449e99 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceFactorySupport.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceFactorySupport.java @@ -31,14 +31,14 @@ public abstract class ObserveServiceFactorySupport implements ObserveServiceFact } } - public static LoadingCache<Class<?>, Class<?>> newAddSuffixClassCache(final String suffix) { + public static LoadingCache<Class<?>, Class<?>> newAddSuffixClassCache(final String prefix, final String suffix) { return CacheBuilder.newBuilder().build(new CacheLoader<Class<?>, Class<?>>() { @Override public Class<?> load(Class<?> key) throws Exception { - String fqn = key.getName() + suffix; + String fqn = prefix + key.getSimpleName() + suffix; try { Class<?> classImpl = Class.forName(fqn); return classImpl; diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceMainFactory.java b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceMainFactory.java index 1dd0b7b..116f6ad 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceMainFactory.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceMainFactory.java @@ -26,29 +26,33 @@ public class ObserveServiceMainFactory implements ObserveServiceFactory { } @Override - public <S extends ObserveService> boolean accept(ObserveServiceContext serviceContext, Class<S> serviceType) { + public <S extends ObserveService> boolean accept(ObserveDataSourceConfiguration dataSourceConfiguration, Class<S> serviceType) { - ObserveServiceFactory factory = getFactory(serviceContext, serviceType); - return factory.accept(serviceContext, serviceType); + ObserveServiceFactory factory = getFactory(dataSourceConfiguration, serviceType); + return factory != null; } @Override - public <S extends ObserveService> S newService(ObserveServiceContext serviceContext, Class<S> serviceType) { + public <S extends ObserveService> S newService(ObserveServiceApplicationContext applicationContext, ObserveDataSourceConfiguration dataSourceConfiguration, Class<S> serviceType) { - Preconditions.checkNotNull(serviceContext, "serviceContext can't be null."); + Preconditions.checkNotNull(applicationContext, "applicationContext can't be null."); + Preconditions.checkNotNull(dataSourceConfiguration, "dataSourceConfiguration can't be null."); Preconditions.checkNotNull(serviceType, "serviceType can't be null."); - ObserveServiceFactory factory = getFactory(serviceContext, serviceType); + ObserveServiceFactory factory = getFactory(dataSourceConfiguration, serviceType); + Preconditions.checkNotNull(factory, "factory can't be null."); if (log.isDebugEnabled()) { log.debug("Using factory: " + factory); } - S service = factory.newService(serviceContext, serviceType); + S service = factory.newService(applicationContext, dataSourceConfiguration, serviceType); + if (log.isInfoEnabled()) { - log.info("New service created: " + service + " for serviceContext: " + serviceContext); + log.info("New service created: " + service); } + return service; } @@ -69,17 +73,17 @@ public class ObserveServiceMainFactory implements ObserveServiceFactory { delegateFactories = builder.build(); } - protected <S extends ObserveService> ObserveServiceFactory getFactory(ObserveServiceContext serviceContext, Class<S> serviceType) { + protected <S extends ObserveService> ObserveServiceFactory getFactory(ObserveDataSourceConfiguration dataSourceConfiguration, Class<S> serviceType) { ObserveServiceFactory result = null; - for (ObserveServiceFactory provider : delegateFactories) { - if (provider.accept(serviceContext, serviceType)) { - result = provider; + for (ObserveServiceFactory serviceFactory : delegateFactories) { + if (serviceFactory.accept(dataSourceConfiguration, serviceType)) { + result = serviceFactory; break; } } - Preconditions.checkState(result != null, String.format("No factory found for serviceContext: %s and serviceType: %s", serviceContext, serviceType.getName())); + Preconditions.checkState(result != null, String.format("No factory found for dataSourceConfiguration: %s and serviceType: %s", dataSourceConfiguration, serviceType.getName())); return result; } diff --git a/observe-services-api/src/test/java/fr/ird/observe/services/FakeObserveServiceContext.java b/observe-services-api/src/test/java/fr/ird/observe/services/FakeObserveServiceContext.java deleted file mode 100644 index 5ab54bb..0000000 --- a/observe-services-api/src/test/java/fr/ird/observe/services/FakeObserveServiceContext.java +++ /dev/null @@ -1,22 +0,0 @@ -package fr.ird.observe.services; - -import fr.ird.observe.services.dto.constants.ReferentialLocale; - -/** - * Created on 16/08/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class FakeObserveServiceContext implements ObserveServiceContext { - - private ReferentialLocale referentialLocale; - - @Override - public ReferentialLocale getReferentialLocale() { - return referentialLocale; - } - - public void setReferentialLocale(ReferentialLocale referentialLocale) { - this.referentialLocale = referentialLocale; - } -} diff --git a/observe-services-api/src/test/java/fr/ird/observe/services/FakeObserveServiceFactory.java b/observe-services-api/src/test/java/fr/ird/observe/services/FakeObserveServiceFactory.java deleted file mode 100644 index e6d8cc6..0000000 --- a/observe-services-api/src/test/java/fr/ird/observe/services/FakeObserveServiceFactory.java +++ /dev/null @@ -1,19 +0,0 @@ -package fr.ird.observe.services; - -/** - * Created on 16/08/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class FakeObserveServiceFactory implements ObserveServiceFactory { - - @Override - public <S extends ObserveService> boolean accept(ObserveServiceContext serviceContext, Class<S> serviceType) { - return serviceContext != null && serviceType != null; - } - - @Override - public <S extends ObserveService> S newService(ObserveServiceContext serviceContext, Class<S> serviceType) { - return null; - } -} diff --git a/observe-services-api/src/test/java/fr/ird/observe/services/ObserveServiceMainFactoryTest.java b/observe-services-api/src/test/java/fr/ird/observe/services/ObserveServiceMainFactoryTest.java deleted file mode 100644 index 92ee0e8..0000000 --- a/observe-services-api/src/test/java/fr/ird/observe/services/ObserveServiceMainFactoryTest.java +++ /dev/null @@ -1,23 +0,0 @@ -package fr.ird.observe.services; - -import fr.ird.observe.services.service.ReferentialService; -import org.junit.Test; - -/** - * Created on 16/08/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ObserveServiceMainFactoryTest { - - protected ReferentialService service; - - @Test - public void testGetReferentialService() { - - FakeObserveServiceContext context = new FakeObserveServiceContext(); - service = ObserveServiceMainFactory.get().newService(context, ReferentialService.class); - - } - -} \ No newline at end of file diff --git a/observe-services-api/src/test/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory b/observe-services-api/src/test/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory deleted file mode 100644 index 7db991e..0000000 --- a/observe-services-api/src/test/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory +++ /dev/null @@ -1 +0,0 @@ -fr.ird.observe.services.FakeObserveServiceFactory \ No newline at end of file diff --git a/observe-services-rest/LICENSE.txt b/observe-services-rest-client/LICENSE.txt similarity index 100% copy from observe-services-rest/LICENSE.txt copy to observe-services-rest-client/LICENSE.txt diff --git a/observe-services-rest/README.txt b/observe-services-rest-client/README.txt similarity index 100% copy from observe-services-rest/README.txt copy to observe-services-rest-client/README.txt diff --git a/observe-services-rest/pom.xml b/observe-services-rest-client/pom.xml similarity index 61% copy from observe-services-rest/pom.xml copy to observe-services-rest-client/pom.xml index 7e4cce5..ae97bff 100644 --- a/observe-services-rest/pom.xml +++ b/observe-services-rest-client/pom.xml @@ -10,10 +10,10 @@ <version>4.0.2-SNAPSHOT</version> </parent> - <artifactId>observe-services-rest</artifactId> + <artifactId>observe-services-rest-client</artifactId> - <name>ObServe :: Services (impl REST)</name> - <description>ObServe services (Implementation REST)</description> + <name>ObServe :: Services (client REST)</name> + <description>ObServe services (client REST)</description> <dependencies> @@ -28,17 +28,6 @@ <artifactId>observe-services-api</artifactId> <version>${project.version}</version> </dependency> - <dependency> - <groupId>${project.groupId}</groupId> - <artifactId>observe-entities</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>${project.groupId}</groupId> - <artifactId>observe-business</artifactId> - <version>${project.version}</version> - </dependency> - <!-- commons dependencies --> @@ -55,10 +44,6 @@ <artifactId>commons-collections4</artifactId> </dependency> <dependency> - <groupId>commons-jxpath</groupId> - <artifactId>commons-jxpath</artifactId> - </dependency> - <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> @@ -72,28 +57,6 @@ <groupId>org.nuiton</groupId> <artifactId>nuiton-utils</artifactId> </dependency> - <dependency> - <groupId>org.nuiton</groupId> - <artifactId>nuiton-decorator</artifactId> - </dependency> - <dependency> - <groupId>org.nuiton.i18n</groupId> - <artifactId>nuiton-i18n</artifactId> - </dependency> - - <!-- persistence --> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-core</artifactId> - </dependency> - <dependency> - <groupId>org.nuiton.topia</groupId> - <artifactId>topia-persistence</artifactId> - </dependency> - <dependency> - <groupId>org.nuiton.topia</groupId> - <artifactId>topia-service-replication</artifactId> - </dependency> <!-- Logging --> <dependency> diff --git a/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientDataSourceConfiguration.java b/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientDataSourceConfiguration.java new file mode 100644 index 0000000..45a2074 --- /dev/null +++ b/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientDataSourceConfiguration.java @@ -0,0 +1,39 @@ +package fr.ird.observe.services.rest.client; + +import fr.ird.observe.services.ObserveDataSourceConfiguration; + +import java.net.URL; + +/** + * Created on 19/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveRestClientDataSourceConfiguration implements ObserveDataSourceConfiguration { + + /** + * L'url du serveur à utiliser. + */ + protected URL serverUrl; + + /** + * Le token d'authentification. + */ + protected String authenticationToken; + + public URL getServerUrl() { + return serverUrl; + } + + public void setServerUrl(URL serverUrl) { + this.serverUrl = serverUrl; + } + + public String getAuthenticationToken() { + return authenticationToken; + } + + public void setAuthenticationToken(String authenticationToken) { + this.authenticationToken = authenticationToken; + } +} diff --git a/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientService.java b/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientService.java new file mode 100644 index 0000000..ba49921 --- /dev/null +++ b/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientService.java @@ -0,0 +1,17 @@ +package fr.ird.observe.services.rest.client; + +import fr.ird.observe.services.ObserveService; + +/** + * Created on 16/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveRestClientService implements ObserveService { + + protected ObserveRestClientServiceContext serviceContext; + + public void setServiceContext(ObserveRestClientServiceContext serviceContext) { + this.serviceContext = serviceContext; + } +} diff --git a/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientServiceContext.java b/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientServiceContext.java new file mode 100644 index 0000000..2083a1a --- /dev/null +++ b/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientServiceContext.java @@ -0,0 +1,38 @@ +package fr.ird.observe.services.rest.client; + +import fr.ird.observe.services.ObserveServiceApplicationContext; +import fr.ird.observe.services.ObserveServiceContext; +import fr.ird.observe.services.dto.constants.ReferentialLocale; + +import java.util.Date; + +/** + * Created on 16/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveRestClientServiceContext implements ObserveServiceContext { + + protected ObserveServiceApplicationContext applicationContext; + + protected ObserveRestClientDataSourceConfiguration dataSourceConfiguration; + + @Override + public ReferentialLocale getReferentialLocale() { + return applicationContext.getReferentialLocale(); + } + + @Override + public Date now() { + return new Date(); + } + + public void setDataSourceConfiguration(ObserveRestClientDataSourceConfiguration dataSourceConfiguration) { + this.dataSourceConfiguration = dataSourceConfiguration; + } + + public void setApplicationContext(ObserveServiceApplicationContext applicationContext) { + this.applicationContext = applicationContext; + } + +} diff --git a/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientServiceFactory.java b/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientServiceFactory.java new file mode 100644 index 0000000..054661c --- /dev/null +++ b/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientServiceFactory.java @@ -0,0 +1,46 @@ +package fr.ird.observe.services.rest.client; + +import com.google.common.base.Preconditions; +import com.google.common.cache.LoadingCache; +import fr.ird.observe.services.ObserveDataSourceConfiguration; +import fr.ird.observe.services.ObserveService; +import fr.ird.observe.services.ObserveServiceApplicationContext; +import fr.ird.observe.services.ObserveServiceFactorySupport; + +/** + * Created on 16/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveRestClientServiceFactory extends ObserveServiceFactorySupport { + + protected final LoadingCache<Class<?>, Class<?>> serviceTypeCache = newAddSuffixClassCache("fr.ird.observe.services.rest.client.service.", "RestClient"); + + @Override + public <S extends ObserveService> boolean accept(ObserveDataSourceConfiguration dataSourceConfiguration, Class<S> serviceType) { + Preconditions.checkNotNull(dataSourceConfiguration, "dataSourceConfiguration can't be null."); + Preconditions.checkNotNull(serviceType, "serviceType can't be null."); + return dataSourceConfiguration instanceof ObserveRestClientDataSourceConfiguration; + } + + @Override + public <S extends ObserveService> S newService(ObserveServiceApplicationContext applicationContext, ObserveDataSourceConfiguration dataSourceConfiguration, Class<S> serviceType) { + + Preconditions.checkNotNull(applicationContext, "applicationContext can't be null."); + Preconditions.checkNotNull(dataSourceConfiguration, "dataSourceConfiguration can't be null."); + Preconditions.checkArgument(dataSourceConfiguration instanceof ObserveRestClientDataSourceConfiguration, "dataSourceConfiguration must be of type ObserveRestClientDataSourceConfiguration"); + Preconditions.checkNotNull(serviceType, "serviceType can't be null."); + + Class<S> serviceTypeImpl = getServiceClassType(serviceTypeCache, serviceType); + Preconditions.checkNotNull(serviceTypeImpl, "serviceTypeImpl not found for : " + serviceType.getName()); + + ObserveRestClientServiceContext serviceContext = new ObserveRestClientServiceContext(); + serviceContext.setApplicationContext(applicationContext); + serviceContext.setDataSourceConfiguration((ObserveRestClientDataSourceConfiguration) dataSourceConfiguration); + + S service = newServiceInstance(serviceTypeImpl, serviceContext); + return service; + + } + +} diff --git a/observe-services-rest/src/main/java/fr/ird/observe/services/service/ReferentialServiceRest.java b/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/service/ReferentialServiceRestClient.java similarity index 77% rename from observe-services-rest/src/main/java/fr/ird/observe/services/service/ReferentialServiceRest.java rename to observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/service/ReferentialServiceRestClient.java index fa73b4a..431c831 100644 --- a/observe-services-rest/src/main/java/fr/ird/observe/services/service/ReferentialServiceRest.java +++ b/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/service/ReferentialServiceRestClient.java @@ -1,10 +1,10 @@ -package fr.ird.observe.services.service; +package fr.ird.observe.services.rest.client.service; -import fr.ird.observe.services.ObserveServiceContext; -import fr.ird.observe.services.ObserveServiceRest; +import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.referential.ReferentialDto; -import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.rest.client.ObserveRestClientService; +import fr.ird.observe.services.service.ReferentialService; import java.util.Collection; @@ -13,7 +13,7 @@ import java.util.Collection; * * @author Tony Chemit - chemit@codelutin.com */ -public class ReferentialServiceRest extends ObserveServiceRest implements ReferentialService { +public class ReferentialServiceRestClient extends ObserveRestClientService implements ReferentialService { @Override public <R extends ReferentialDto> ReferenceSetDto<R> getReferentialReferenceSet(Class<R> type) { @@ -51,8 +51,4 @@ public class ReferentialServiceRest extends ObserveServiceRest implements Refere } - @Override - public void setServiceContext(ObserveServiceContext serviceContext) { - - } } diff --git a/observe-services-rest-client/src/main/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory b/observe-services-rest-client/src/main/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory new file mode 100644 index 0000000..9753b48 --- /dev/null +++ b/observe-services-rest-client/src/main/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory @@ -0,0 +1 @@ +fr.ird.observe.services.rest.client.ObserveRestClientServiceFactory \ No newline at end of file diff --git a/observe-services-rest-client/src/test/java/fr/ird/observe/services/rest/client/service/ReferentialServiceRestTest.java b/observe-services-rest-client/src/test/java/fr/ird/observe/services/rest/client/service/ReferentialServiceRestTest.java new file mode 100644 index 0000000..dd93de8 --- /dev/null +++ b/observe-services-rest-client/src/test/java/fr/ird/observe/services/rest/client/service/ReferentialServiceRestTest.java @@ -0,0 +1,45 @@ +package fr.ird.observe.services.rest.client.service; + +import fr.ird.observe.services.ObserveServiceApplicationContext; +import fr.ird.observe.services.ObserveServiceMainFactory; +import fr.ird.observe.services.dto.ReferenceSetDto; +import fr.ird.observe.services.dto.constants.ReferentialLocale; +import fr.ird.observe.services.dto.referential.SexDto; +import fr.ird.observe.services.rest.client.ObserveRestClientDataSourceConfiguration; +import fr.ird.observe.services.service.ReferentialService; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +/** + * Created on 16/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ReferentialServiceRestTest { + + protected ReferentialService service; + + @Before + public void setUp() throws Exception { + + ObserveRestClientDataSourceConfiguration dataSourceConfiguration = new ObserveRestClientDataSourceConfiguration(); + dataSourceConfiguration.setServerUrl(null); + dataSourceConfiguration.setAuthenticationToken(null); + + ObserveServiceApplicationContext serviceApplicationContext = new ObserveServiceApplicationContext(); + serviceApplicationContext.setReferentialLocale(ReferentialLocale.FR); + + service = ObserveServiceMainFactory.get().newService(serviceApplicationContext, dataSourceConfiguration, ReferentialService.class); + + } + + @Test + public void testGetReferentialLabelSet() throws Exception { + + ReferenceSetDto referentialLabelSet = service.getReferentialReferenceSet(SexDto.class); + Assert.assertNotNull(referentialLabelSet); + + } + +} \ No newline at end of file diff --git a/observe-services-rest/src/test/resources/log4j.properties b/observe-services-rest-client/src/test/resources/log4j.properties similarity index 100% rename from observe-services-rest/src/test/resources/log4j.properties rename to observe-services-rest-client/src/test/resources/log4j.properties diff --git a/observe-services-rest/LICENSE.txt b/observe-services-rest-wm/LICENSE.txt similarity index 100% rename from observe-services-rest/LICENSE.txt rename to observe-services-rest-wm/LICENSE.txt diff --git a/observe-services-rest/README.txt b/observe-services-rest-wm/README.txt similarity index 100% rename from observe-services-rest/README.txt rename to observe-services-rest-wm/README.txt diff --git a/observe-services-rest/pom.xml b/observe-services-rest-wm/pom.xml similarity index 67% rename from observe-services-rest/pom.xml rename to observe-services-rest-wm/pom.xml index 7e4cce5..bf01c47 100644 --- a/observe-services-rest/pom.xml +++ b/observe-services-rest-wm/pom.xml @@ -10,10 +10,10 @@ <version>4.0.2-SNAPSHOT</version> </parent> - <artifactId>observe-services-rest</artifactId> + <artifactId>observe-services-rest-wn</artifactId> - <name>ObServe :: Services (impl REST)</name> - <description>ObServe services (Implementation REST)</description> + <name>ObServe :: Services (impl WebMotion)</name> + <description>ObServe services (impl WebMotion)</description> <dependencies> @@ -30,16 +30,10 @@ </dependency> <dependency> <groupId>${project.groupId}</groupId> - <artifactId>observe-entities</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>${project.groupId}</groupId> - <artifactId>observe-business</artifactId> + <artifactId>observe-services-topia</artifactId> <version>${project.version}</version> </dependency> - <!-- commons dependencies --> <dependency> @@ -55,10 +49,6 @@ <artifactId>commons-collections4</artifactId> </dependency> <dependency> - <groupId>commons-jxpath</groupId> - <artifactId>commons-jxpath</artifactId> - </dependency> - <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> @@ -72,29 +62,44 @@ <groupId>org.nuiton</groupId> <artifactId>nuiton-utils</artifactId> </dependency> + + <!-- WebMotion --> <dependency> - <groupId>org.nuiton</groupId> - <artifactId>nuiton-decorator</artifactId> + <groupId>org.debux.webmotion</groupId> + <artifactId>webmotion</artifactId> </dependency> <dependency> - <groupId>org.nuiton.i18n</groupId> - <artifactId>nuiton-i18n</artifactId> + <groupId>org.debux.webmotion</groupId> + <artifactId>webmotion-unittest</artifactId> + <exclusions> + <exclusion> + <groupId>org.apache.tomcat.embed</groupId> + <artifactId>tomcat-embed-logging-juli</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.tomcat.embed</groupId> + <artifactId>tomcat-embed-jasper</artifactId> + </exclusion> + <exclusion> + <groupId>org.eclipse.jdt.core.compiler</groupId> + <artifactId>ecj</artifactId> + </exclusion> + </exclusions> </dependency> - <!-- persistence --> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-core</artifactId> - </dependency> <dependency> - <groupId>org.nuiton.topia</groupId> - <artifactId>topia-persistence</artifactId> + <groupId>javax.servlet</groupId> + <artifactId>javax.servlet-api</artifactId> </dependency> + + <!-- Paranamer --> <dependency> - <groupId>org.nuiton.topia</groupId> - <artifactId>topia-service-replication</artifactId> + <groupId>com.thoughtworks.paranamer</groupId> + <artifactId>paranamer</artifactId> </dependency> + + <!-- Logging --> <dependency> <groupId>org.slf4j</groupId> diff --git a/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionApplicationContext.java b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionApplicationContext.java new file mode 100644 index 0000000..6c15c17 --- /dev/null +++ b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionApplicationContext.java @@ -0,0 +1,81 @@ +package fr.ird.observe.services.rest.wm; + +import com.google.common.base.Preconditions; +import fr.ird.observe.services.ObserveServiceApplicationContext; +import fr.ird.observe.services.topia.ObserveTopiaServiceFactory; +import org.debux.webmotion.server.call.HttpContext; + +import javax.servlet.ServletContext; + +/** + * @author Tony Chemit : chemit@codelutin.com + */ +public class ObserveRestWebMotionApplicationContext { + + public static final String APPLICATION_CONTEXT_PARAMETER = ObserveRestWebMotionApplicationContext.class.getName(); + + public static final String MISSING_APPLICATION_CONTEXT = + ObserveRestWebMotionApplicationContext.class.getSimpleName() + " not found. You probably forgot to" + + " register " + ObserveRestWebMotionApplicationListener.class.getName() + " in your web.xml"; + + protected ObserveTopiaServiceFactory serviceFactory; + + protected ObserveServiceApplicationContext serviceApplicationContext; + + protected static ObserveRestWebMotionApplicationContext getApplicationContext(HttpContext context) { + + ServletContext servletContext = context.getServletContext(); + ObserveRestWebMotionApplicationContext result = + (ObserveRestWebMotionApplicationContext) servletContext + .getAttribute(ObserveRestWebMotionApplicationContext.APPLICATION_CONTEXT_PARAMETER); + + Preconditions.checkState(result != null, ObserveRestWebMotionApplicationContext.MISSING_APPLICATION_CONTEXT); + + return result; + + } + +// protected ObserveServiceConfig serviceConfig; +// +// protected ObserveTopiaApplicationContext rootContext; + + public void init() { + + serviceFactory = new ObserveTopiaServiceFactory(); + serviceApplicationContext = new ObserveServiceApplicationContext(); + +// ObserveServiceConfig config = new ObserveServiceConfig(null); +// serviceConfig = config; +// Properties rootProperties = serviceConfig.getFlatOptions(); +// rootProperties.setProperty(TopiaConfigurationConstants.CONFIG_PERSISTENCE_CLASSES, ObserveEntityEnum.getImplementationClassesAsString()); +// +// rootContext = TopiaApplicationContextCache.getContext(rootProperties, ObserveConfigurationHelper.getCreateTopiaContextFunction(config)); + } + +// public ObserveServiceConfig getServiceConfig() { +// return serviceConfig; +// } + +// public ObserveTopiaPersistenceContext newTransaction() { +// ObserveTopiaPersistenceContext persistenceContext = rootContext.newPersistenceContext(); +// return persistenceContext; +// } + + public void close() { +// if (rootContext != null) { +// rootContext.closeContext(); +// } + } + + public boolean isDevMode() { + return true; + } + + public ObserveTopiaServiceFactory getServiceFactory() { + return serviceFactory; + } + + public ObserveServiceApplicationContext getServiceApplicationContext() { + return serviceApplicationContext; + } +} diff --git a/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionApplicationListener.java b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionApplicationListener.java new file mode 100644 index 0000000..132c765 --- /dev/null +++ b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionApplicationListener.java @@ -0,0 +1,42 @@ +package fr.ird.observe.services.rest.wm; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; + +/** + * @author Tony Chemit : chemit@codelutin.com + */ +public class ObserveRestWebMotionApplicationListener implements ServletContextListener { + + private static final Log log = LogFactory.getLog(ObserveRestWebMotionApplicationListener.class); + + protected ObserveRestWebMotionApplicationContext context; + + @Override + public void contextInitialized(ServletContextEvent sce) { + + if (log.isInfoEnabled()) { + log.info("Initializing " + ObserveRestWebMotionApplicationListener.class.getName()); + } + + context = new ObserveRestWebMotionApplicationContext(); + context.init(); + + sce.getServletContext().setAttribute(ObserveRestWebMotionApplicationContext.APPLICATION_CONTEXT_PARAMETER, context); + + } + + @Override + public void contextDestroyed(ServletContextEvent sce) { + + if (log.isInfoEnabled()) { + log.info("Destroying " + ObserveRestWebMotionApplicationListener.class.getName()); + } + + context.close(); + } + +} diff --git a/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionController.java b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionController.java new file mode 100644 index 0000000..19c85d8 --- /dev/null +++ b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionController.java @@ -0,0 +1,11 @@ +package fr.ird.observe.services.rest.wm; + +import fr.ird.observe.services.ObserveService; +import org.debux.webmotion.server.WebMotionController; + +/** + * @author Tony Chemit : chemit@codelutin.com + */ +public abstract class ObserveRestWebMotionController extends WebMotionController implements ObserveService { + +} diff --git a/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionFilter.java b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionFilter.java new file mode 100644 index 0000000..e5ed46c --- /dev/null +++ b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionFilter.java @@ -0,0 +1,55 @@ +package fr.ird.observe.services.rest.wm; + +import fr.ird.observe.services.ObserveServiceApplicationContext; +import fr.ird.observe.services.topia.ObserveTopiaServiceFactory; +import org.debux.webmotion.server.WebMotionFilter; +import org.debux.webmotion.server.call.HttpContext; + +import javax.servlet.http.HttpServletRequest; + +/** + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveRestWebMotionFilter extends WebMotionFilter { + +// protected ObserveTopiaPersistenceContext getTopiaContext(HttpContext context) { +// HttpServletRequest servletRequest = context.getRequest(); +// ObserveTopiaPersistenceContext result = (ObserveTopiaPersistenceContext) +// servletRequest +// .getAttribute(TopiaTransactionFilter.TOPIA_TRANSACTION_REQUEST_ATTRIBUTE); +// +// Preconditions.checkState(result != null, "TopiaContext not available"); +// +// return result; +// } + + public void inject(HttpContext context) { + +// final ObserveTopiaPersistenceContext persistenceContext = getTopiaContext(context); + + ObserveRestWebMotionApplicationContext applicationContext = + ObserveRestWebMotionApplicationContext.getApplicationContext(context); + + HttpServletRequest request = context.getRequest(); + + String authenticationToken = request.getHeader("authenticationToken"); + + //TODO Recuperation de la configuration de la base à partir du token + + //TODO En déduire la ser + +// DefaultServiceContext serviceContext = new DefaultServiceContext(applicationContext.getServiceConfig(), new Supplier<ObserveTopiaPersistenceContext>() { +// @Override +// public ObserveTopiaPersistenceContext get() { +// return persistenceContext; +// } +// }, authenticationToken); +// +// ServiceFactory serviceFactory = serviceContext.getServiceFactory(); +// request.setAttribute("serviceFactory", serviceFactory); + + doProcess(); + } + + +} diff --git a/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionJsonHelper.java b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionJsonHelper.java new file mode 100644 index 0000000..e0858ae --- /dev/null +++ b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionJsonHelper.java @@ -0,0 +1,130 @@ +package fr.ird.observe.services.rest.wm; + +/* + * #%L + * Pollen :: Rest Api + * %% + * Copyright (C) 2009 - 2014 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +import com.google.gson.ExclusionStrategy; +import com.google.gson.FieldAttributes; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonNull; +import com.google.gson.JsonParseException; +import com.google.gson.JsonPrimitive; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; + +import java.lang.reflect.Type; +import java.util.Date; + +/** + * Created on 5/24/14. + * + * @author Tony Chemit <chemit@codelutin.com> + * @since 2.0 + */ +public class ObserveRestWebMotionJsonHelper { + + private final Gson gson; + + public ObserveRestWebMotionJsonHelper(boolean prettyPrint) { + + GsonBuilder gsonBuilder = new GsonBuilder(); + + gsonBuilder.setExclusionStrategies(new ExclusionStrategy() { + + @Override + public boolean shouldSkipField(FieldAttributes f) { + return false; + } + + @Override + public boolean shouldSkipClass(Class<?> clazz) { + return clazz == Class.class; + } + }); + + gsonBuilder.registerTypeAdapter(Date.class, new JsonSerializer<Date>() { + + @Override + public JsonElement serialize(Date src, Type typeOfSrc, JsonSerializationContext context) { + + JsonElement result; + + if (src == null) { + + result = JsonNull.INSTANCE; + + } else { + + result = new JsonPrimitive(src.getTime()); + + } + + return result; + + } + + }); + + gsonBuilder.registerTypeAdapter(Date.class, new JsonDeserializer<Date>() { + + @Override + public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { + return new Date(json.getAsLong()); + } + + }); + + if (prettyPrint) { + + gsonBuilder.setPrettyPrinting(); + + } + + this.gson = gsonBuilder.create(); + + } + + public String toJson(Object model) { + + String json = gson.toJson(model); + return json; + + } + + public <O> O fromJson(String json, Class<O> type) { + + O o = gson.fromJson(json, type); + return o; + + } + + public <O> O fromJson(String json, Type type) { + + O o = gson.fromJson(json, type); + return o; + + } + +} diff --git a/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionRender.java b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionRender.java new file mode 100644 index 0000000..0338207 --- /dev/null +++ b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionRender.java @@ -0,0 +1,52 @@ +package fr.ird.observe.services.rest.wm; + +import org.debux.webmotion.server.call.Call; +import org.debux.webmotion.server.call.HttpContext; +import org.debux.webmotion.server.mapping.Mapping; +import org.debux.webmotion.server.render.Render; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; + +/** + * To render any entities. + * + * @author Tony chemit - chemit@codelutin.com + */ +public class ObserveRestWebMotionRender<T> extends Render { + + protected T model; + + public ObserveRestWebMotionRender(T model) { + this.model = model; + } + + @Override + public void create(Mapping mapping, Call call) throws IOException, ServletException { + + HttpContext context = call.getContext(); + HttpServletResponse response = context.getResponse(); + response.setContentType("application/json"); + + ObserveRestWebMotionApplicationContext applicationContext = + ObserveRestWebMotionApplicationContext.getApplicationContext(context); + +// if (model instanceof InvalidFormException || model instanceof FavoriteListImportException) { +// +// response.setStatus(HttpServletResponse.SC_BAD_REQUEST); +// +// } + + boolean devMode = applicationContext.isDevMode(); + + ObserveRestWebMotionJsonHelper gson = new ObserveRestWebMotionJsonHelper(devMode); + String json = gson.toJson(model); + + PrintWriter out = context.getOut(); + out.print(json); + + } + +} diff --git a/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/service/ReferentialServiceRest.java b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/service/ReferentialServiceRest.java new file mode 100644 index 0000000..aabf0cb --- /dev/null +++ b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/service/ReferentialServiceRest.java @@ -0,0 +1,66 @@ +package fr.ird.observe.services.rest.wm.service; + +import fr.ird.observe.services.ObserveServiceContext; +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.ReferenceSetDto; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.rest.wm.ObserveRestWebMotionController; +import fr.ird.observe.services.service.DataNotFoundException; +import fr.ird.observe.services.service.ReferentialService; +import fr.ird.observe.services.spi.Write; + +import java.util.Collection; + +/** + * Created on 19/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ReferentialServiceRest extends ObserveRestWebMotionController implements ReferentialService { + + //TODO A injecter + protected ReferentialService referentialService; + + @Override + public <R extends ReferentialDto> ReferenceSetDto<R> getReferentialReferenceSet(Class<R> type) { + return referentialService.getReferentialReferenceSet(type); + } + + @Override + public <R extends ReferentialDto> FormDto<R> loadToRead(Class<R> type, String id) throws DataNotFoundException { + return referentialService.loadToRead(type, id); + } + + @Override + public <R extends ReferentialDto> FormDto<R> loadToEdit(Class<R> type, String id) throws DataNotFoundException { + return referentialService.loadToEdit(type, id); + } + + @Override + public <R extends ReferentialDto> FormDto<R> preCreate(Class<R> type) { + return referentialService.preCreate(type); + } + + @Override + @Write + public <R extends ReferentialDto> String save(FormDto<R> form) { + return referentialService.save(form); + } + + @Override + @Write + public <R extends ReferentialDto> void delete(Class<R> type, String id) throws DataNotFoundException { + referentialService.delete(type, id); + } + + @Override + @Write + public <R extends ReferentialDto> void delete(Class<R> type, Collection<String> ids) throws DataNotFoundException { + referentialService.delete(type, ids); + } + + @Override + public void setServiceContext(ObserveServiceContext serviceContext) { + // Non utilisé ici + } +} diff --git a/observe-services-rest-wm/src/main/resources/mapping b/observe-services-rest-wm/src/main/resources/mapping new file mode 100644 index 0000000..ae059ed --- /dev/null +++ b/observe-services-rest-wm/src/main/resources/mapping @@ -0,0 +1,12 @@ +[config] +package.base=fr.ird.observe.services.rest.wm.service +default.render=fr.ird.observe.services.rest.wm.ObserveRestWebMotionRender +server.controller.scope=request +server.listener.class=fr.ird.observe.services.rest.wm.ObserveRestServerListener + +[filters] +* /* fr.ird.observe.services.rest.wm.ObserveRestWebMotionFilter.inject + +[actions] +GET,POST /referential/{method} action:ReferentialServiceRest.{method} + diff --git a/observe-services-rest-wm/src/main/webapp/WEB-INF/web.xml b/observe-services-rest-wm/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..35a2e2f --- /dev/null +++ b/observe-services-rest-wm/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,25 @@ +<web-app version="3.0" + xmlns="http://java.sun.com/xml/ns/javaee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/javaee + http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" > + + <display-name>Observe REST API by WebMotion</display-name> + + <!--filter> + <filter-name>topiaTransaction</filter-name> + <filter-class> + fr.ird.observe.services.rest.ObserveRestTransactionFilter + </filter-class> + </filter--> + + <!--filter-mapping> + <filter-name>topiaTransaction</filter-name> + <url-pattern>/*</url-pattern> + </filter-mapping--> + + <listener> + <listener-class>fr.ird.observe.services.rest.wm.ObserveRestWebMotionApplicationListener</listener-class> + </listener> + +</web-app> diff --git a/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java b/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java deleted file mode 100644 index 59853f0..0000000 --- a/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java +++ /dev/null @@ -1,33 +0,0 @@ -package fr.ird.observe.services; - -import com.google.common.base.Preconditions; -import com.google.common.cache.LoadingCache; - -/** - * Created on 16/08/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ObserveServiceFactoryRest extends ObserveServiceFactorySupport { - - protected final LoadingCache<Class<?>, Class<?>> serviceTypeCache = newAddSuffixClassCache("Rest"); - - @Override - public <S extends ObserveService> boolean accept(ObserveServiceContext serviceContext, Class<S> serviceType) { - return serviceContext != null && serviceContext instanceof ObserveServiceContextRest && serviceType != null; - } - - @Override - public <S extends ObserveService> S newService(ObserveServiceContext serviceContext, Class<S> serviceType) { - - Preconditions.checkNotNull(serviceContext, "serviceContext can't be null."); - Preconditions.checkArgument(serviceContext instanceof ObserveServiceContextRest, "serviceContext must be of type " + ObserveServiceContextRest.class.getName()); - Preconditions.checkNotNull(serviceType, "serviceType can't be null."); - - Class<S> serviceTypeImpl = getServiceClassType(serviceTypeCache, serviceType); - S service = newServiceInstance(serviceTypeImpl, serviceContext); - return service; - - } - -} diff --git a/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceRest.java b/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceRest.java deleted file mode 100644 index 431acf8..0000000 --- a/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceRest.java +++ /dev/null @@ -1,17 +0,0 @@ -package fr.ird.observe.services; - -/** - * Created on 16/08/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ObserveServiceRest implements ObserveService { - - protected ObserveServiceContext serviceContext; - - @Override - public void setServiceContext(ObserveServiceContext serviceContext) { - - this.serviceContext = serviceContext; - } -} diff --git a/observe-services-rest/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestApplicationContext.java b/observe-services-rest/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestApplicationContext.java new file mode 100644 index 0000000..b950a16 --- /dev/null +++ b/observe-services-rest/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestApplicationContext.java @@ -0,0 +1,42 @@ +package fr.ird.observe.services.rest.wm; + +/** + * @author Tony Chemit : chemit@codelutin.com + */ +public class ObserveRestApplicationContext { + + public static final String APPLICATION_CONTEXT_PARAMETER = ObserveRestApplicationContext.class.getName(); + + public static final String MISSING_APPLICATION_CONTEXT = + ObserveRestApplicationContext.class.getSimpleName() + " not found. You probably forgot to" + + " register " + ObserveRestApplicationListener.class.getName() + " in your web.xml"; + +// protected ObserveServiceConfig serviceConfig; +// +// protected ObserveTopiaApplicationContext rootContext; + + public void init() { + +// ObserveServiceConfig config = new ObserveServiceConfig(null); +// serviceConfig = config; +// Properties rootProperties = serviceConfig.getFlatOptions(); +// rootProperties.setProperty(TopiaConfigurationConstants.CONFIG_PERSISTENCE_CLASSES, ObserveEntityEnum.getImplementationClassesAsString()); +// +// rootContext = TopiaApplicationContextCache.getContext(rootProperties, ObserveConfigurationHelper.getCreateTopiaContextFunction(config)); + } + +// public ObserveServiceConfig getServiceConfig() { +// return serviceConfig; +// } + +// public ObserveTopiaPersistenceContext newTransaction() { +// ObserveTopiaPersistenceContext persistenceContext = rootContext.newPersistenceContext(); +// return persistenceContext; +// } + + public void close() { +// if (rootContext != null) { +// rootContext.closeContext(); +// } + } +} diff --git a/observe-services-rest/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestApplicationListener.java b/observe-services-rest/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestApplicationListener.java new file mode 100644 index 0000000..9f0d70b --- /dev/null +++ b/observe-services-rest/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestApplicationListener.java @@ -0,0 +1,42 @@ +package fr.ird.observe.services.rest.wm; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; + +/** + * @author Arnaud Thimel : thimel@codelutin.com + */ +public class ObserveRestApplicationListener implements ServletContextListener { + + private static final Log log = LogFactory.getLog(ObserveRestApplicationListener.class); + + protected ObserveRestApplicationContext context; + + @Override + public void contextInitialized(ServletContextEvent sce) { + + if (log.isInfoEnabled()) { + log.info("Initializing " + ObserveRestApplicationListener.class.getName()); + } + + context = new ObserveRestApplicationContext(); + context.init(); + + sce.getServletContext().setAttribute(ObserveRestApplicationContext.APPLICATION_CONTEXT_PARAMETER, context); + + } + + @Override + public void contextDestroyed(ServletContextEvent sce) { + + if (log.isInfoEnabled()) { + log.info("Destroying " + ObserveRestApplicationListener.class.getName()); + } + + context.close(); + } + +} diff --git a/observe-services-rest/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionFilter.java b/observe-services-rest/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionFilter.java new file mode 100644 index 0000000..2f9c67a --- /dev/null +++ b/observe-services-rest/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionFilter.java @@ -0,0 +1,62 @@ +package fr.ird.observe.services.rest.wm; + +import com.google.common.base.Preconditions; +import org.debux.webmotion.server.WebMotionFilter; +import org.debux.webmotion.server.call.HttpContext; + +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; + +/** + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveRestWebMotionFilter extends WebMotionFilter { + +// protected ObserveTopiaPersistenceContext getTopiaContext(HttpContext context) { +// HttpServletRequest servletRequest = context.getRequest(); +// ObserveTopiaPersistenceContext result = (ObserveTopiaPersistenceContext) +// servletRequest +// .getAttribute(TopiaTransactionFilter.TOPIA_TRANSACTION_REQUEST_ATTRIBUTE); +// +// Preconditions.checkState(result != null, "TopiaContext not available"); +// +// return result; +// } + + protected ObserveRestApplicationContext getObserveApplicationContext(HttpContext context) { + + ServletContext servletContext = context.getServletContext(); + ObserveRestApplicationContext result = + (ObserveRestApplicationContext) servletContext + .getAttribute(ObserveRestApplicationContext.APPLICATION_CONTEXT_PARAMETER); + + Preconditions.checkState(result != null, ObserveRestApplicationContext.MISSING_APPLICATION_CONTEXT); + + return result; + + } + + public void inject(HttpContext context) { + +// final ObserveTopiaPersistenceContext persistenceContext = getTopiaContext(context); +// +// final ObserveRestApplicationContext applicationContext = getObserveApplicationContext(context); + + HttpServletRequest request = context.getRequest(); + String authenticationToken = request.getHeader("authenticationToken"); + +// DefaultServiceContext serviceContext = new DefaultServiceContext(applicationContext.getServiceConfig(), new Supplier<ObserveTopiaPersistenceContext>() { +// @Override +// public ObserveTopiaPersistenceContext get() { +// return persistenceContext; +// } +// }, authenticationToken); +// +// ServiceFactory serviceFactory = serviceContext.getServiceFactory(); +// request.setAttribute("serviceFactory", serviceFactory); + + doProcess(); + } + + +} diff --git a/observe-services-rest/src/main/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory b/observe-services-rest/src/main/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory deleted file mode 100644 index 2f268d7..0000000 --- a/observe-services-rest/src/main/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory +++ /dev/null @@ -1 +0,0 @@ -fr.ird.observe.services.ObserveServiceFactoryRest \ No newline at end of file diff --git a/observe-services-rest/src/main/resources/mapping b/observe-services-rest/src/main/resources/mapping new file mode 100644 index 0000000..7be48ba --- /dev/null +++ b/observe-services-rest/src/main/resources/mapping @@ -0,0 +1,28 @@ +[config] +package.base=fr.inra.agrosyst.services.rest.wm +default.render=fr.inra.agrosyst.services.rest.wm.AgrosystJsonRender +server.controller.scope=request +server.listener.class=fr.inra.agrosyst.services.rest.wm.AgrosystServerListener + +[filters] +* /* AgrosystRestWebMotionFilter.inject + +[actions] +GET,POST /context/NavigationContextService/{method} action:NavigationContextServiceRest.{method} +GET,POST /domain/DomainService/{method} action:DomainServiceRest.{method} +GET,POST /generic/GenericEntityService/{method} action:GenericEntityServiceRest.{method} +GET,POST /growingplan/GrowingPlanService/{method} action:GrowingPlanServiceRest.{method} +GET,POST /growingsystem/GrowingSystemService/{method} action:GrowingSystemServiceRest.{method} +GET,POST /managementmode/ManagementModeService/{method} action:ManagementModeServiceRest.{method} +GET,POST /network/NetworkService/{method} action:NetworkServiceRest.{method} +GET,POST /plot/PlotService/{method} action:PlotServiceRest.{method} +GET,POST /practiced/PracticedCropCycleService/{method} action:PracticedCropCycleServiceRest.{method} +GET,POST /practiced/PracticedSystemService/{method} action:PracticedSystemServiceRest.{method} +GET,POST /effective/EffectiveCropCycleService/{method} action:EffectiveCropCycleServiceRest.{method} +GET,POST /referential/ImportService/{method} action:ImportServiceRest.{method} +GET,POST /referential/ExportService/{method} action:ExportServiceRest.{method} +GET,POST /referential/ReferentialService/{method} action:ReferentialServiceRest.{method} +GET,POST /security/AuthenticationService/{method} action:AuthenticationServiceRest.{method} +GET,POST /security/AuthorizationService/{method} action:AuthorizationServiceRest.{method} +GET,POST /security/BusinessAuthorizationService/{method} action:BusinessAuthorizationServiceRest.{method} +GET,POST /users/UserService/{method} action:UserServiceRest.{method} diff --git a/observe-services-rest/src/main/webapp/WEB-INF/web.xml b/observe-services-rest/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..d0c6b38 --- /dev/null +++ b/observe-services-rest/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,36 @@ +<!-- + #%L + Agrosyst :: Services :: REST by WebMotion + $Id: web.xml 2774 2014-01-17 17:42:48Z athimel $ + $HeadURL: https://svn.codelutin.com/agrosyst/trunk/agrosyst-services-rest-webmotion/sr... $ + %% + Copyright (C) 2013 - 2014 INRA + %% + INRA - Tous droits réservés + #L% + --> +<web-app version="3.0" + xmlns="http://java.sun.com/xml/ns/javaee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/javaee + http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" > + + <display-name>Agrosyst REST API by WebMotion</display-name> + + <filter> + <filter-name>topiaTransaction</filter-name> + <filter-class> + fr.inra.agrosyst.services.rest.wm.AgrosystRestTransactionFilter + </filter-class> + </filter> + + <filter-mapping> + <filter-name>topiaTransaction</filter-name> + <url-pattern>/*</url-pattern> + </filter-mapping> + + <listener> + <listener-class>fr.inra.agrosyst.services.rest.wm.AgrosystRestApplicationListener</listener-class> + </listener> + +</web-app> diff --git a/observe-services-rest/src/test/java/fr/ird/observe/services/service/referential/ReferentialServiceRestTest.java b/observe-services-rest/src/test/java/fr/ird/observe/services/service/referential/ReferentialServiceRestTest.java deleted file mode 100644 index 8dbaade..0000000 --- a/observe-services-rest/src/test/java/fr/ird/observe/services/service/referential/ReferentialServiceRestTest.java +++ /dev/null @@ -1,37 +0,0 @@ -package fr.ird.observe.services.service.referential; - -import fr.ird.observe.services.ObserveServiceContextRest; -import fr.ird.observe.services.ObserveServiceMainFactory; -import fr.ird.observe.services.dto.ReferenceSetDto; -import fr.ird.observe.services.dto.referential.SexDto; -import fr.ird.observe.services.service.ReferentialService; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - -/** - * Created on 16/08/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ReferentialServiceRestTest { - - protected ReferentialService service; - - @Before - public void setUp() throws Exception { - - ObserveServiceContextRest context = new ObserveServiceContextRest(); - service = ObserveServiceMainFactory.get().newService(context, ReferentialService.class); - - } - - @Test - public void testGetReferentialLabelSet() throws Exception { - - ReferenceSetDto referentialLabelSet = service.getReferentialReferenceSet(SexDto.class); - Assert.assertNotNull(referentialLabelSet); - - } - -} \ No newline at end of file diff --git a/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/AbstractObserveService.java b/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/AbstractObserveService.java index 8b088e4..202b74a 100644 --- a/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/AbstractObserveService.java +++ b/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/AbstractObserveService.java @@ -11,6 +11,7 @@ import fr.ird.observe.db.DataSource; import fr.ird.observe.entities.Entities; import fr.ird.observe.entities.EntityMap; import fr.ird.observe.entities.constants.ReferenceLocale; +import fr.ird.observe.services.topia.ObserveTopiaServiceFactory; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; @@ -476,7 +477,7 @@ public abstract class AbstractObserveService implements ObserveService { protected <S extends ObserveService> S newService(Class<S> serviceType) { - S service = ObserveServiceFactoryTopia.newSimpleService(serviceType, serviceContext); + S service = ObserveTopiaServiceFactory.newSimpleService(serviceType, serviceContext); return service; } @@ -484,7 +485,7 @@ public abstract class AbstractObserveService implements ObserveService { protected <S extends ObserveService> S newService(DataSource dataSource, Class<S> serviceType) { ObserveServiceContext serviceContext1 = new ObserveServiceContext(serviceContext.applicationContext, dataSource); - S service = new ObserveServiceFactoryTopia().newService(serviceType, serviceContext1); + S service = new ObserveTopiaServiceFactory().newService(serviceType, serviceContext1); return service; } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceContextTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceContextTopia.java deleted file mode 100644 index 587b9ae..0000000 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceContextTopia.java +++ /dev/null @@ -1,45 +0,0 @@ -package fr.ird.observe.services; - -import fr.ird.observe.db.DataSource; -import fr.ird.observe.services.dto.constants.ReferentialLocale; -import org.nuiton.topia.TopiaContext; - -/** - * Created on 16/08/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ObserveServiceContextTopia implements ObserveServiceContext { - - protected DataSource dataSource; - - protected TopiaContext transaction; - - protected ReferentialLocale referentialLocale; - - public DataSource getDataSource() { - return dataSource; - } - - public void setDataSource(DataSource dataSource) { - this.dataSource = dataSource; - } - - public TopiaContext getTransaction() { - return transaction; - } - - public void setTransaction(TopiaContext transaction) { - this.transaction = transaction; - } - - @Override - public ReferentialLocale getReferentialLocale() { - return referentialLocale; - } - - public void setReferentialLocale(ReferentialLocale referentialLocale) { - this.referentialLocale = referentialLocale; - } - -} diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtoBinders.java b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveDtoBinders.java similarity index 94% rename from observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtoBinders.java rename to observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveDtoBinders.java index a153321..7e2a529 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtoBinders.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveDtoBinders.java @@ -1,5 +1,6 @@ -package fr.ird.observe.services.dto; +package fr.ird.observe.services.topia; +import fr.ird.observe.services.dto.IdDto; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderFactory; diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveDtosInitializer.java similarity index 99% rename from observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java rename to observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveDtosInitializer.java index ef44a37..0101c7e 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveDtosInitializer.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.dto; +package fr.ird.observe.services.topia; import com.google.common.base.Function; import com.google.common.collect.ImmutableBiMap; @@ -63,6 +63,8 @@ import fr.ird.observe.entities.referentiel.seine.VesselActivitySeine; import fr.ird.observe.entities.referentiel.seine.WeightCategory; import fr.ird.observe.entities.referentiel.seine.Wind; import fr.ird.observe.entities.seine.ActivitySeine; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.ObserveModelInitializer; import fr.ird.observe.services.dto.referential.CountryDto; import fr.ird.observe.services.dto.referential.FpaZoneDto; import fr.ird.observe.services.dto.referential.GearCaracteristicDto; diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceTopia.java similarity index 92% rename from observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java rename to observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceTopia.java index b0836f7..e58d350 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceTopia.java @@ -1,11 +1,12 @@ -package fr.ird.observe.services; +package fr.ird.observe.services.topia; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableBiMap; import com.google.common.collect.ImmutableSet; import fr.ird.observe.ObserveDAOHelper; +import fr.ird.observe.services.ObserveService; +import fr.ird.observe.services.ObserveServiceContext; import fr.ird.observe.services.dto.IdDto; -import fr.ird.observe.services.dto.ObserveDtosInitializer; import fr.ird.observe.services.dto.ObserveModelInitializerRunner; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.referential.ReferentialDto; @@ -24,7 +25,7 @@ import java.util.Map; */ public class ObserveServiceTopia implements ObserveService { - protected ObserveServiceContextTopia serviceContext; + protected ObserveTopiaServiceContext serviceContext; protected static ImmutableBiMap<Class<?>, Class<?>> DTO_TO_ENTITY_TYPES; @@ -45,8 +46,8 @@ public class ObserveServiceTopia implements ObserveService { @Override public void setServiceContext(ObserveServiceContext serviceContext) { Preconditions.checkNotNull(serviceContext, "serviceContext can't be null."); - Preconditions.checkArgument(serviceContext instanceof ObserveServiceContextTopia, "serviceContext must be of type " + ObserveServiceContextTopia.class.getName()); - this.serviceContext = (ObserveServiceContextTopia) serviceContext; + Preconditions.checkArgument(serviceContext instanceof ObserveTopiaServiceContext, "serviceContext must be of type " + ObserveTopiaServiceContext.class.getName()); + this.serviceContext = (ObserveTopiaServiceContext) serviceContext; } public static <D extends IdDto, E extends TopiaEntity> Class<E> getEntityType(Class<D> dtoType) { diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaDataSourceConfiguration.java b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaDataSourceConfiguration.java new file mode 100644 index 0000000..33fe99e --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaDataSourceConfiguration.java @@ -0,0 +1,22 @@ +package fr.ird.observe.services.topia; + +import fr.ird.observe.db.DataSource; +import fr.ird.observe.services.ObserveDataSourceConfiguration; + +/** + * Created on 19/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveTopiaDataSourceConfiguration implements ObserveDataSourceConfiguration { + + private DataSource dataSource; + + public void setDataSource(DataSource dataSource) { + this.dataSource = dataSource; + } + + public DataSource getDataSource() { + return dataSource; + } +} diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaServiceContext.java b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaServiceContext.java new file mode 100644 index 0000000..939227a --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaServiceContext.java @@ -0,0 +1,54 @@ +package fr.ird.observe.services.topia; + +import fr.ird.observe.db.DataSource; +import fr.ird.observe.services.ObserveServiceApplicationContext; +import fr.ird.observe.services.ObserveServiceContext; +import fr.ird.observe.services.dto.constants.ReferentialLocale; +import org.nuiton.topia.TopiaContext; + +import java.util.Date; + +/** + * Created on 16/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveTopiaServiceContext implements ObserveServiceContext { + + protected ObserveServiceApplicationContext applicationContext; + + protected ObserveTopiaDataSourceConfiguration dataSourceConfiguration; + + protected TopiaContext transaction; + + public DataSource getDataSource() { + //TODO A supprimer -> utiliser une TopiaApplicationContext + return dataSourceConfiguration.getDataSource(); + } + + public TopiaContext getTransaction() { + return transaction; + } + + public void setTransaction(TopiaContext transaction) { + this.transaction = transaction; + } + + @Override + public ReferentialLocale getReferentialLocale() { + return applicationContext.getReferentialLocale(); + } + + @Override + public Date now() { + return new Date(); + } + + public void setApplicationContext(ObserveServiceApplicationContext applicationContext) { + this.applicationContext = applicationContext; + } + + public void setDataSourceConfiguration(ObserveTopiaDataSourceConfiguration dataSourceConfiguration) { + this.dataSourceConfiguration = dataSourceConfiguration; + } +} diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceFactoryTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaServiceFactory.java similarity index 65% rename from observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceFactoryTopia.java rename to observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaServiceFactory.java index eedb4e4..fd5ce2d 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceFactoryTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaServiceFactory.java @@ -1,9 +1,13 @@ -package fr.ird.observe.services; +package fr.ird.observe.services.topia; import com.google.common.base.Preconditions; import com.google.common.cache.LoadingCache; import com.google.common.collect.ImmutableSet; import fr.ird.observe.db.DataSource; +import fr.ird.observe.services.ObserveServiceApplicationContext; +import fr.ird.observe.services.ObserveDataSourceConfiguration; +import fr.ird.observe.services.ObserveService; +import fr.ird.observe.services.ObserveServiceFactorySupport; import fr.ird.observe.services.spi.NoDataAccess; import fr.ird.observe.services.spi.Write; import org.apache.commons.logging.Log; @@ -21,33 +25,44 @@ import java.util.Set; * * @author Tony Chemit - chemit@codelutin.com */ -public class ObserveServiceFactoryTopia extends ObserveServiceFactorySupport { +public class ObserveTopiaServiceFactory extends ObserveServiceFactorySupport { /** Logger. */ - private static final Log log = LogFactory.getLog(ObserveServiceFactoryTopia.class); + private static final Log log = LogFactory.getLog(ObserveTopiaServiceFactory.class); - protected final LoadingCache<Class<?>, Class<?>> serviceTypeCache = newAddSuffixClassCache("Topia"); + protected final LoadingCache<Class<?>, Class<?>> serviceTypeCache = newAddSuffixClassCache("fr.ird.observe.services.topia.service.", "Topia"); @Override - public <S extends ObserveService> boolean accept(ObserveServiceContext serviceContext, Class<S> serviceType) { - return serviceContext != null && serviceContext instanceof ObserveServiceContextTopia && serviceType != null; + public <S extends ObserveService> boolean accept(ObserveDataSourceConfiguration dataSourceConfiguration, Class<S> serviceType) { + + Preconditions.checkNotNull(dataSourceConfiguration, "dataSourceConfiguration can't be null."); + Preconditions.checkNotNull(serviceType, "serviceType can't be null."); + return dataSourceConfiguration instanceof ObserveTopiaDataSourceConfiguration; + } @Override - public <S extends ObserveService> S newService(ObserveServiceContext serviceContext, Class<S> serviceType) { + public <S extends ObserveService> S newService(ObserveServiceApplicationContext applicationContext, ObserveDataSourceConfiguration dataSourceConfiguration, Class<S> serviceType) { - Preconditions.checkNotNull(serviceContext, "serviceContext can't be null."); - Preconditions.checkArgument(serviceContext instanceof ObserveServiceContextTopia, "serviceContext must be of type " + ObserveServiceContextTopia.class.getName()); + Preconditions.checkNotNull(applicationContext, "applicationContext can't be null."); + Preconditions.checkNotNull(dataSourceConfiguration, "dataSourceConfiguration can't be null."); + Preconditions.checkArgument(dataSourceConfiguration instanceof ObserveTopiaDataSourceConfiguration, "dataSourceConfiguration must be of type " + ObserveTopiaDataSourceConfiguration.class.getName()); Preconditions.checkNotNull(serviceType, "serviceType can't be null."); Class<S> serviceTypeImpl = getServiceClassType(serviceTypeCache, serviceType); + Preconditions.checkNotNull(serviceTypeImpl, "serviceTypeImpl not found for : " + serviceType.getName()); + + ObserveTopiaServiceContext serviceContext = new ObserveTopiaServiceContext(); + serviceContext.setApplicationContext(applicationContext); + serviceContext.setDataSourceConfiguration((ObserveTopiaDataSourceConfiguration) dataSourceConfiguration); + S service = newServiceInstance(serviceTypeImpl, serviceContext); - service = newServiceTransactionalProxy(serviceType, service, (ObserveServiceContextTopia) serviceContext); + service = newServiceTransactionalProxy(serviceType, service, serviceContext); return service; } - protected <S extends ObserveService> S newServiceTransactionalProxy(Class<S> serviceType, S service, ObserveServiceContextTopia serviceContext) { + protected <S extends ObserveService> S newServiceTransactionalProxy(Class<S> serviceType, S service, ObserveTopiaServiceContext serviceContext) { ObserveServiceInvocationHandler invocationHandler = new ObserveServiceInvocationHandler(serviceContext, service); Object proxyService = Proxy.newProxyInstance(getClass().getClassLoader(), new Class[]{serviceType}, invocationHandler); @@ -57,13 +72,13 @@ public class ObserveServiceFactoryTopia extends ObserveServiceFactorySupport { protected static class ObserveServiceInvocationHandler implements InvocationHandler { - private final ObserveServiceContextTopia serviceContext; + private final ObserveTopiaServiceContext serviceContext; private final ObserveService target; private final Set<String> methodNamesToByPass; - protected ObserveServiceInvocationHandler(ObserveServiceContextTopia serviceContext, ObserveService target) { + protected ObserveServiceInvocationHandler(ObserveTopiaServiceContext serviceContext, ObserveService target) { this.serviceContext = serviceContext; this.target = target; diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/DtoToEntityBuilder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/builder/DtoToEntityBuilder.java similarity index 97% rename from observe-services-topia/src/main/java/fr/ird/observe/services/builder/DtoToEntityBuilder.java rename to observe-services-topia/src/main/java/fr/ird/observe/services/topia/builder/DtoToEntityBuilder.java index f440a1a..8bcc87f 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/DtoToEntityBuilder.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/builder/DtoToEntityBuilder.java @@ -1,12 +1,12 @@ -package fr.ird.observe.services.builder; +package fr.ird.observe.services.topia.builder; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Iterables; import fr.ird.observe.entities.Set; -import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.topia.ObserveServiceTopia; import fr.ird.observe.services.dto.IdDto; -import fr.ird.observe.services.dto.ObserveDtoBinders; +import fr.ird.observe.services.topia.ObserveDtoBinders; import fr.ird.observe.services.dto.ReferenceDto; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.util.beans.Binder; diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToDtoBuilder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/builder/EntityToDtoBuilder.java similarity index 97% rename from observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToDtoBuilder.java rename to observe-services-topia/src/main/java/fr/ird/observe/services/topia/builder/EntityToDtoBuilder.java index cc86f2a..942d1f8 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToDtoBuilder.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/builder/EntityToDtoBuilder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.builder; +package fr.ird.observe.services.topia.builder; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; @@ -6,9 +6,9 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; import fr.ird.observe.ObserveEntityEnum; import fr.ird.observe.entities.Set; -import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.topia.ObserveServiceTopia; import fr.ird.observe.services.dto.IdDto; -import fr.ird.observe.services.dto.ObserveDtoBinders; +import fr.ird.observe.services.topia.ObserveDtoBinders; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialDto; diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToReferenceDtoBuilder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/builder/EntityToReferenceDtoBuilder.java similarity index 94% rename from observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToReferenceDtoBuilder.java rename to observe-services-topia/src/main/java/fr/ird/observe/services/topia/builder/EntityToReferenceDtoBuilder.java index a9e9cc2..9273b7e 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToReferenceDtoBuilder.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/builder/EntityToReferenceDtoBuilder.java @@ -1,9 +1,9 @@ -package fr.ird.observe.services.builder; +package fr.ird.observe.services.topia.builder; import com.google.common.base.Preconditions; import fr.ird.observe.ObserveEntityEnum; import fr.ird.observe.services.dto.IdDto; -import fr.ird.observe.services.dto.ObserveDtoBinders; +import fr.ird.observe.services.topia.ObserveDtoBinders; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.ReferenceDtos; import fr.ird.observe.services.dto.referential.ReferentialDto; 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/topia/builder/EntityToReferentialReferenceDtoBuilder.java similarity index 95% rename from observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToReferentialReferenceDtoBuilder.java rename to observe-services-topia/src/main/java/fr/ird/observe/services/topia/builder/EntityToReferentialReferenceDtoBuilder.java index 4b9d625..22f5003 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/topia/builder/EntityToReferentialReferenceDtoBuilder.java @@ -1,8 +1,8 @@ -package fr.ird.observe.services.builder; +package fr.ird.observe.services.topia.builder; import com.google.common.base.Preconditions; import fr.ird.observe.ObserveEntityEnum; -import fr.ird.observe.services.dto.ObserveDtoBinders; +import fr.ird.observe.services.topia.ObserveDtoBinders; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; 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/topia/service/ReferentialServiceTopia.java similarity index 94% rename from observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java rename to observe-services-topia/src/main/java/fr/ird/observe/services/topia/service/ReferentialServiceTopia.java index 402947f..b4ff6ac 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/topia/service/ReferentialServiceTopia.java @@ -1,9 +1,9 @@ -package fr.ird.observe.services.service; +package fr.ird.observe.services.topia.service; import com.google.common.collect.ImmutableSet; -import fr.ird.observe.services.ObserveServiceTopia; -import fr.ird.observe.services.builder.EntityToDtoBuilder; -import fr.ird.observe.services.builder.EntityToReferentialReferenceDtoBuilder; +import fr.ird.observe.services.topia.ObserveServiceTopia; +import fr.ird.observe.services.topia.builder.EntityToDtoBuilder; +import fr.ird.observe.services.topia.builder.EntityToReferentialReferenceDtoBuilder; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.FormDtos; import fr.ird.observe.services.dto.IdDto; @@ -11,6 +11,7 @@ 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.service.ReferentialService; import org.nuiton.topia.persistence.TopiaEntity; import java.util.Collection; diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineObservedSystemServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/ActivitySeineObservedSystemServiceTopia.java similarity index 78% rename from observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineObservedSystemServiceTopia.java rename to observe-services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/ActivitySeineObservedSystemServiceTopia.java index 153c06a..2ba9c30 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineObservedSystemServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/ActivitySeineObservedSystemServiceTopia.java @@ -1,8 +1,9 @@ -package fr.ird.observe.services.service.seine; +package fr.ird.observe.services.topia.service.seine; -import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.topia.ObserveServiceTopia; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.ActivitySeineObservedSystemDto; +import fr.ird.observe.services.service.seine.ActivitySeineObservedSystemService; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com @@ -11,9 +12,6 @@ public class ActivitySeineObservedSystemServiceTopia extends ObserveServiceTopia @Override public FormDto<ActivitySeineObservedSystemDto> loadToRead(String activitySeineId) { - - - return null; } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/ActivitySeineServiceTopia.java similarity index 84% rename from observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineServiceTopia.java rename to observe-services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/ActivitySeineServiceTopia.java index 048309a..d4c695f 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/ActivitySeineServiceTopia.java @@ -1,9 +1,10 @@ -package fr.ird.observe.services.service.seine; +package fr.ird.observe.services.topia.service.seine; -import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.topia.ObserveServiceTopia; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; +import fr.ird.observe.services.service.seine.ActivitySeineService; import java.util.List; diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/FloatingObjectServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/FloatingObjectServiceTopia.java similarity index 82% rename from observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/FloatingObjectServiceTopia.java rename to observe-services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/FloatingObjectServiceTopia.java index 8e3702e..72e20e1 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/FloatingObjectServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/FloatingObjectServiceTopia.java @@ -1,16 +1,17 @@ -package fr.ird.observe.services.service.seine; +package fr.ird.observe.services.topia.service.seine; -import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.topia.ObserveServiceTopia; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.seine.FloatingObjectDto; +import fr.ird.observe.services.service.seine.FloatingObjectService; import java.util.List; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class FloatingObjectServiceTopia extends ObserveServiceTopia implements FloatingObjectService{ +public class FloatingObjectServiceTopia extends ObserveServiceTopia implements FloatingObjectService { @Override diff --git a/observe-services-topia/src/main/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory b/observe-services-topia/src/main/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory index ee2101e..016fcd0 100644 --- a/observe-services-topia/src/main/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory +++ b/observe-services-topia/src/main/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory @@ -1 +1 @@ -fr.ird.observe.services.ObserveServiceFactoryTopia \ No newline at end of file +fr.ird.observe.services.topia.ObserveTopiaServiceFactory \ No newline at end of file diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ApplicationContextResource.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/topia/ApplicationContextResource.java similarity index 76% rename from observe-services-topia/src/test/java/fr/ird/observe/services/service/ApplicationContextResource.java rename to observe-services-topia/src/test/java/fr/ird/observe/services/service/topia/ApplicationContextResource.java index 4ebd5e1..788f597 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ApplicationContextResource.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/topia/ApplicationContextResource.java @@ -1,9 +1,9 @@ -package fr.ird.observe.services.service; +package fr.ird.observe.services.service.topia; import fr.ird.observe.IObserveConfig; -import fr.ird.observe.ObserveApplicationContext; -import fr.ird.observe.ObserveServiceHelper; -import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.ObserveServiceApplicationContext; +import fr.ird.observe.services.dto.constants.ReferentialLocale; +import fr.ird.observe.services.topia.ObserveServiceTopia; import fr.ird.observe.test.TestHelper; import fr.ird.observe.util.Scripts; import org.apache.commons.logging.Log; @@ -25,16 +25,19 @@ public class ApplicationContextResource implements TestRule { protected final Version databaseVersion; + protected final ObserveServiceApplicationContext serviceApplicationContext; + public ApplicationContextResource(Version databaseVersion) { this.databaseVersion = databaseVersion; + this.serviceApplicationContext= new ObserveServiceApplicationContext(); } public String getScriptPath(String classifier) { return Scripts.getBackupScript(databaseVersion, classifier); } - public ObserveApplicationContext getApplicationContext() { - return ObserveServiceHelper.get(); + public ObserveServiceApplicationContext getServiceApplicationContext() { + return serviceApplicationContext; } @Override @@ -65,6 +68,8 @@ public class ApplicationContextResource implements TestRule { ObserveServiceTopia.init(); + serviceApplicationContext.setReferentialLocale(ReferentialLocale.FR); + } protected void after(Description description) { diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/DataSourceResource.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/topia/DataSourceResource.java similarity index 98% rename from observe-services-topia/src/test/java/fr/ird/observe/services/service/DataSourceResource.java rename to observe-services-topia/src/test/java/fr/ird/observe/services/service/topia/DataSourceResource.java index e699a79..e973843 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/DataSourceResource.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/topia/DataSourceResource.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.service; +package fr.ird.observe.services.service.topia; import fr.ird.observe.ObserveTechnicalException; import fr.ird.observe.db.DBTestHelper; diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/topia/service/ReferentialServiceTopiaTest.java similarity index 88% rename from observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java rename to observe-services-topia/src/test/java/fr/ird/observe/services/service/topia/service/ReferentialServiceTopiaTest.java index d0909ec..289e0b9 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/topia/service/ReferentialServiceTopiaTest.java @@ -1,18 +1,23 @@ -package fr.ird.observe.services.service; +package fr.ird.observe.services.service.topia.service; import fr.ird.observe.db.DataSource; import fr.ird.observe.entities.migration.H2DataSourceMigration; import fr.ird.observe.entities.referentiel.LengthWeightParameter; import fr.ird.observe.entities.referentiel.Program; -import fr.ird.observe.services.ObserveServiceContextTopia; +import fr.ird.observe.services.ObserveServiceApplicationContext; import fr.ird.observe.services.ObserveServiceMainFactory; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.IdDto; -import fr.ird.observe.services.dto.constants.ReferentialLocale; +import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.referential.LengthWeightParameterDto; import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.service.DataNotFoundException; +import fr.ird.observe.services.service.ReferentialService; +import fr.ird.observe.services.service.topia.ApplicationContextResource; +import fr.ird.observe.services.service.topia.DataSourceResource; +import fr.ird.observe.services.topia.ObserveTopiaDataSourceConfiguration; +import fr.ird.observe.services.topia.service.ReferentialServiceTopia; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Assert; @@ -49,12 +54,15 @@ public class ReferentialServiceTopiaTest { DataSource localDataSource = dataSourceResource.getDataSource(); - ObserveServiceContextTopia context = new ObserveServiceContextTopia(); - context.setDataSource(localDataSource); - context.setReferentialLocale(ReferentialLocale.FR); ObserveServiceMainFactory serviceFactory = ObserveServiceMainFactory.get(); - service = serviceFactory.newService(context, ReferentialService.class); + + ObserveServiceApplicationContext serviceApplicationContext = applicationContextResource.getServiceApplicationContext(); + + ObserveTopiaDataSourceConfiguration dataSourceConfiguration = new ObserveTopiaDataSourceConfiguration(); + dataSourceConfiguration.setDataSource(localDataSource); + + service = serviceFactory.newService(serviceApplicationContext, dataSourceConfiguration, ReferentialService.class); } diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/builder/DtoToEntityBuilderTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/topia/builder/DtoToEntityBuilderTest.java similarity index 98% rename from observe-services-topia/src/test/java/fr/ird/observe/services/builder/DtoToEntityBuilderTest.java rename to observe-services-topia/src/test/java/fr/ird/observe/services/topia/builder/DtoToEntityBuilderTest.java index 72ca1a0..b12d4da 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/builder/DtoToEntityBuilderTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/topia/builder/DtoToEntityBuilderTest.java @@ -1,10 +1,9 @@ -package fr.ird.observe.services.builder; +package fr.ird.observe.services.topia.builder; import com.google.common.collect.ImmutableSet; import fr.ird.observe.ObserveEntityEnum; import fr.ird.observe.entities.referentiel.Organism; import fr.ird.observe.entities.referentiel.Program; -import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.constants.GearType; import fr.ird.observe.services.dto.constants.ReferenceStatus; import fr.ird.observe.services.dto.constants.ReferentialLocale; @@ -14,6 +13,7 @@ import fr.ird.observe.services.dto.referential.ProgramDto; 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.topia.ObserveServiceTopia; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/builder/EntityToDtoBuilderTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/topia/builder/EntityToDtoBuilderTest.java similarity index 98% rename from observe-services-topia/src/test/java/fr/ird/observe/services/builder/EntityToDtoBuilderTest.java rename to observe-services-topia/src/test/java/fr/ird/observe/services/topia/builder/EntityToDtoBuilderTest.java index 1005eef..1a58e47 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/builder/EntityToDtoBuilderTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/topia/builder/EntityToDtoBuilderTest.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.builder; +package fr.ird.observe.services.topia.builder; import com.google.common.collect.ImmutableSet; import fr.ird.observe.entities.constants.GearType; @@ -7,7 +7,6 @@ import fr.ird.observe.entities.referentiel.Organism; import fr.ird.observe.entities.referentiel.OrganismImpl; import fr.ird.observe.entities.referentiel.Program; import fr.ird.observe.entities.referentiel.ProgramImpl; -import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.ReferenceValueNotFoundException; @@ -17,6 +16,7 @@ import fr.ird.observe.services.dto.referential.OrganismDto; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; +import fr.ird.observe.services.topia.ObserveServiceTopia; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; diff --git a/pom.xml b/pom.xml index 4d18ca8..46f56db 100644 --- a/pom.xml +++ b/pom.xml @@ -86,7 +86,8 @@ <module>observe-business</module> <module>observe-validation</module> <module>observe-services-topia</module> - <!--module>observe-services-rest</module--> + <module>observe-services-rest-wm</module> + <module>observe-services-rest-client</module> <module>observe-swing</module> </modules> <!--scm> @@ -125,6 +126,7 @@ <swingXVersion>1.6.4</swingXVersion> <geoToolsVersion>13.2</geoToolsVersion> + <webmotionVersion>2.5</webmotionVersion> <!-- license header configuration --> <license.licenseName>gpl_v3</license.licenseName> @@ -137,12 +139,7 @@ <!-- Site configuration --> <locales>fr</locales> - <javaVersion>1.7</javaVersion> - <!--<maven.compiler.source>${javaVersion}</maven.compiler.source>--> - <!--<maven.compiler.target>${javaVersion}</maven.compiler.target>--> - <signatureArtifactId>java17</signatureArtifactId> - <signatureVersion>1.0</signatureVersion> - + <paranamerVersion>2.7</paranamerVersion> </properties> <repositories> @@ -238,7 +235,6 @@ <scope>test</scope> </dependency> - <!-- Nuiton --> <dependency> <groupId>org.nuiton</groupId> @@ -537,6 +533,41 @@ <version>1.13</version> </dependency> + <!-- WebMotion --> + <dependency> + <groupId>org.debux.webmotion</groupId> + <artifactId>webmotion</artifactId> + <version>${webmotionVersion}</version> + <exclusions> + <exclusion> + <groupId>javassist</groupId> + <artifactId>javassist</artifactId> + </exclusion> + </exclusions> + </dependency> + + <dependency> + <groupId>org.debux.webmotion</groupId> + <artifactId>webmotion-unittest</artifactId> + <version>${webmotionVersion}</version> + <scope>test</scope> + </dependency> + + <!-- Paranamer --> + <dependency> + <groupId>com.thoughtworks.paranamer</groupId> + <artifactId>paranamer</artifactId> + <version>${paranamerVersion}</version> + </dependency> + + <!-- ne pas mettre à jour cette version est pour tomcat 7--> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>javax.servlet-api</artifactId> + <version>3.0.1</version> + <scope>provided</scope> + </dependency> + <!-- logging --> <dependency> <groupId>org.slf4j</groupId> @@ -633,6 +664,12 @@ </configuration> </plugin> + <plugin> + <groupId>com.thoughtworks.paranamer</groupId> + <artifactId>paranamer-maven-plugin</artifactId> + <version>${paranamerVersion}</version> + </plugin> + </plugins> </pluginManagement> <extensions> -- 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 develop in repository observe. See http://git.codelutin.com/observe.git commit fb5a769f95f8622289ff3a0d0a69b4bc84fad95e Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Aug 20 09:42:07 2015 +0200 add catche longline service (refs #7458). --- .../service/longline/CatchLonglineService.java | 23 +++++++++++++++++++++ .../main/xmi/observe-services-dto-longline.zargo | Bin 77315 -> 77309 bytes .../rest/client/ObserveRestClientService.java | 6 ++++++ .../services/topia/ObserveDtosInitializer.java | 5 +++++ 4 files changed, 34 insertions(+) diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/CatchLonglineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/CatchLonglineService.java new file mode 100644 index 0000000..e1413c6 --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/CatchLonglineService.java @@ -0,0 +1,23 @@ +package fr.ird.observe.services.service.longline; + +import fr.ird.observe.services.ObserveService; +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.longline.SetLonglineCatchDto; +import fr.ird.observe.services.spi.Write; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public interface CatchLonglineService extends ObserveService { + + FormDto<SetLonglineCatchDto> loadToRead(String setLonglineId); + + FormDto<SetLonglineCatchDto> loadToEdit(String setLonglineId); + + @Write + String save(FormDto<SetLonglineCatchDto> form); + + + + +} diff --git a/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo b/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo index 016fdc4..8fbd3ce 100644 Binary files a/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo and b/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo differ diff --git a/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientService.java b/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientService.java index ba49921..73dd0ba 100644 --- a/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientService.java +++ b/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientService.java @@ -1,6 +1,7 @@ package fr.ird.observe.services.rest.client; import fr.ird.observe.services.ObserveService; +import fr.ird.observe.services.ObserveServiceContext; /** * Created on 16/08/15. @@ -14,4 +15,9 @@ public class ObserveRestClientService implements ObserveService { public void setServiceContext(ObserveRestClientServiceContext serviceContext) { this.serviceContext = serviceContext; } + + @Override + public void setServiceContext(ObserveServiceContext serviceContext) { + + } } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveDtosInitializer.java b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveDtosInitializer.java index 0101c7e..bf8ea42 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveDtosInitializer.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveDtosInitializer.java @@ -319,6 +319,11 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { } @Override + public void initSetLonglineCatchDto() { + + } + + @Override public void initSetLonglineDetailCompositionDto() { } -- 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 develop in repository observe. See http://git.codelutin.com/observe.git commit a4bb28877abea83f3b676d21775a6f7f01f4a3e0 Merge: 0b1e832 fb5a769 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Aug 20 09:43:51 2015 +0200 Merge branch 'feature/7458' into develop observe-services-api/pom.xml | 18 + .../observe/services/ObserveServiceContext.java | 4 +- .../observe/services/ObserveServiceFactory.java | 4 +- ...xt.java => ObserveDataSourceConfiguration.java} | 4 +- .../services/ObserveServiceApplicationContext.java | 24 + .../observe/services/ObserveServiceContext.java | 8 + .../observe/services/ObserveServiceFactory.java | 4 +- .../services/ObserveServiceFactorySupport.java | 4 +- .../services/ObserveServiceMainFactory.java | 30 +- .../services/service/DataNotFoundException.java | 30 + .../services/service/ReferentialService.java | 20 +- .../longline/ActivityLongLineEncouterService.java | 20 + .../ActivityLongLineSensorUsedService.java | 21 + .../service/longline/ActivitySeineService.java | 29 + .../service/longline/CatchLonglineService.java | 23 + .../longline/GearUseFeaturesLonglineService.java | 30 + .../SetLonglineDetailCompositionService.java | 20 + .../SetLonglineGlobalCompositionService.java | 20 + .../service/longline/SetLonglineService.java | 28 + .../service/longline/TripLonglineService.java | 30 + .../seine/ActivitySeineObservedSystemService.java | 20 + .../service/seine/ActivitySeineService.java | 29 + .../service/seine/FloatingObjectService.java | 30 + .../service/seine/GearUseFeaturesSeineService.java | 30 + .../service/seine/NonTargetCatchService.java | 19 + .../service/seine/NonTargetSampleService.java | 19 + .../seine/ObjectObservedSpeciesService.java | 20 + .../service/seine/ObjectSchoolEstimateService.java | 19 + .../services/service/seine/RouteService.java | 30 + .../service/seine/SchoolEstimateService.java | 20 + .../services/service/seine/SetSeineService.java | 28 + .../services/service/seine/TargetCatchService.java | 19 + .../service/seine/TargetSampleService.java | 20 + .../seine/TransmittingBuoyOperationService.java | 20 + .../services/service/seine/TripSeineService.java | 30 + .../services/FakeObserveServiceContext.java | 10 - .../services/FakeObserveServiceFactory.java | 19 - .../services/ObserveServiceMainFactoryTest.java | 23 - .../fr.ird.observe.services.ObserveServiceFactory | 1 - observe-services-model/pom.xml | 24 +- .../{model => dto}/AbstractObserveDto.java | 2 +- .../ReferentialFormDto.java => dto/FormDto.java} | 12 +- .../java/fr/ird/observe/services/dto/FormDtos.java | 24 + .../fr/ird/observe/services/dto/ReferenceDto.java | 51 + .../fr/ird/observe/services/dto/ReferenceDtos.java | 11 + .../ird/observe/services/dto/ReferenceSetDto.java | 17 + .../ird/observe/services/dto/ReferenceSetDtos.java | 20 + .../dto/ReferenceValueNotFoundException.java | 28 + .../{model => dto}/constants/GearType.java | 2 +- .../{model => dto}/constants/ReferenceStatus.java | 2 +- .../services/dto/constants/ReferentialLocale.java | 124 ++ .../seine/NonTargetCatchComputedValueSource.java | 52 + .../services/dto/constants/seine/Ownership.java | 51 + .../constants/seine/SchoolType.java} | 35 +- .../seine/TypeTransmittingBuoyOperation.java | 68 ++ .../dto/referential/ReferentialReferenceDto.java | 65 + .../dto/referential/ReferentialReferenceDtos.java | 18 + .../model/referential/ReferentialFormDtos.java | 15 - .../xmi/observe-services-dto-common.properties | 13 + .../src/main/xmi/observe-services-dto-common.zargo | Bin 0 -> 34074 bytes ...es => observe-services-dto-longline.properties} | 4 +- .../main/xmi/observe-services-dto-longline.zargo | Bin 0 -> 77309 bytes ...rties => observe-services-dto-seine.properties} | 4 +- .../src/main/xmi/observe-services-dto-seine.zargo | Bin 0 -> 54397 bytes .../xmi/observe-services-model-common.properties | 13 - .../main/xmi/observe-services-model-common.zargo | Bin 32880 -> 0 bytes .../main/xmi/observe-services-model-longline.zargo | Bin 96124 -> 0 bytes .../main/xmi/observe-services-model-seine.zargo | Bin 85518 -> 0 bytes .../LICENSE.txt | 0 .../README.txt | 0 .../pom.xml | 43 +- .../ObserveRestClientDataSourceConfiguration.java | 39 + .../rest/client/ObserveRestClientService.java | 23 + .../client/ObserveRestClientServiceContext.java | 38 + .../client/ObserveRestClientServiceFactory.java | 46 + .../service/ReferentialServiceRestClient.java | 54 + .../fr.ird.observe.services.ObserveServiceFactory | 1 + .../client/service/ReferentialServiceRestTest.java | 45 + .../src/test/resources/log4j.properties | 0 .../LICENSE.txt | 0 .../README.txt | 0 .../pom.xml | 59 +- .../wm/ObserveRestWebMotionApplicationContext.java | 81 ++ .../ObserveRestWebMotionApplicationListener.java | 42 + .../rest/wm/ObserveRestWebMotionController.java | 11 + .../rest/wm/ObserveRestWebMotionFilter.java | 55 + .../rest/wm/ObserveRestWebMotionJsonHelper.java | 130 ++ .../rest/wm/ObserveRestWebMotionRender.java | 52 + .../rest/wm/service/ReferentialServiceRest.java | 66 + .../src/main/resources/mapping | 12 + .../src/main/webapp/WEB-INF/web.xml | 25 + .../services/ObserveServiceContextRest.java | 10 - .../services/ObserveServiceFactoryRest.java | 33 - .../ird/observe/services/ObserveServiceRest.java | 17 - .../rest/wm/ObserveRestApplicationContext.java | 42 + .../rest/wm/ObserveRestApplicationListener.java | 42 + .../rest/wm/ObserveRestWebMotionFilter.java | 62 + .../services/service/ReferentialServiceRest.java | 58 - .../fr.ird.observe.services.ObserveServiceFactory | 1 - observe-services-rest/src/main/resources/mapping | 28 + .../src/main/webapp/WEB-INF/web.xml | 36 + .../referential/ReferentialServiceRestTest.java | 37 - observe-services-topia/pom.xml | 35 +- .../observe/services/AbstractObserveService.java | 5 +- .../services/ObserveServiceContextTopia.java | 33 - .../ird/observe/services/ObserveServiceTopia.java | 20 - .../services/service/ReferentialDtoBuilder.java | 171 --- .../services/service/ReferentialServiceTopia.java | 220 ---- .../observe/services/topia/ObserveDtoBinders.java | 39 + .../services/topia/ObserveDtosInitializer.java | 1262 ++++++++++++++++++++ .../services/topia/ObserveServiceTopia.java | 117 ++ .../topia/ObserveTopiaDataSourceConfiguration.java | 22 + .../services/topia/ObserveTopiaServiceContext.java | 54 + .../ObserveTopiaServiceFactory.java} | 44 +- .../services/topia/builder/DtoToEntityBuilder.java | 184 +++ .../services/topia/builder/EntityToDtoBuilder.java | 198 +++ .../topia/builder/EntityToReferenceDtoBuilder.java | 49 + .../EntityToReferentialReferenceDtoBuilder.java | 49 + .../topia/service/ReferentialServiceTopia.java | 138 +++ .../ActivitySeineObservedSystemServiceTopia.java | 27 + .../service/seine/ActivitySeineServiceTopia.java | 46 + .../service/seine/FloatingObjectServiceTopia.java | 46 + .../fr.ird.observe.services.ObserveServiceFactory | 2 +- .../service/ReferentialDtoBuilderTest.java | 72 -- .../referential/ReferentialServiceTopiaTest.java | 37 - .../service/topia/ApplicationContextResource.java | 83 ++ .../services/service/topia/DataSourceResource.java | 126 ++ .../topia/service/ReferentialServiceTopiaTest.java | 232 ++++ .../topia/builder/DtoToEntityBuilderTest.java | 117 ++ .../topia/builder/EntityToDtoBuilderTest.java | 130 ++ pom.xml | 53 +- 131 files changed, 5238 insertions(+), 993 deletions(-) -- 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