branch feature/7458-LonglineTopiaService updated (b5bafce -> ec4ea49)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7458-LonglineTopiaService in repository observe. See http://git.codelutin.com/observe.git discards b5bafce implantation ActivityLonglineService (refs #7458). discards 1040264 implantation GearUseFeaturesLonglineService (refs #7458). discards 7fc8a17 implantation TripLonglineService (refs #7458). adds 39fb53d La création d'une base est effective avec les imports au démarrage (See #7482) adds 969e71b Création d'une base via les services (termine #7482). Merge branch 'feature/7482' into develop adds 7edefc8 implantation ActivitySeineService (refs #7458). adds 699cc17 utilisation du isNotPersisted sur les DTO (refs #7458). adds 59a0ab3 Renommage d'une méthode et suppresion d'un service seine dans le paquetage longline (See #7458) adds 3a6875f Ok merge dans develop du service AcvititySeineService Merge branch 'feature/7458-ActivitySeineService' into develop adds 684ce44 Test si le stream en entrée est gzippé lors de l'import d'un dump adds 8aa82c1 changement d'implantaton pour l'ajout de type de reference dans la transformation de l'entité en formulaire. new 6586984 implantation TripLonglineService (refs #7458). new f9cbbfc implantation GearUseFeaturesLonglineService (refs #7458). new ec4ea49 implantation ActivityLonglineService (refs #7458). This update added new revisions after undoing existing revisions. That is to say, some revisions that were in the old version of the branch are not in the new version. This situation occurs when a user --force pushes a change and generates a repository containing something like this: * -- * -- B -- O -- O -- O (b5bafce) \ N -- N -- N refs/heads/feature/7458-LonglineTopiaService (ec4ea49) You should already have received notification emails for all of the O revisions, and so the following emails describe only the N revisions from the common base, B. Any revisions marked "omits" are not gone; other references still refer to them. Any revisions marked "discards" are gone forever. The 3 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 ec4ea494ad4b540851e0f67ebe4c510050607acc Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Aug 27 11:19:47 2015 +0200 implantation ActivityLonglineService (refs #7458). commit f9cbbfcbf1d6f6d6ceac8cac4e996cba5f0721ed Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Aug 27 10:07:34 2015 +0200 implantation GearUseFeaturesLonglineService (refs #7458). commit 658698443c130f22e3d0b993d407396199e70536 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Aug 27 09:38:21 2015 +0200 implantation TripLonglineService (refs #7458). Summary of changes: .../observe/ObserveTopiaApplicationContext.java | 17 +- .../service/DataSourceDumpProducerService.java | 7 +- .../service/seine/ActivitySeineService.java | 8 +- .../dto/DataSourceCreateConfigurationDto.java | 7 +- .../ird/observe/services/ObserveServiceTopia.java | 181 ++++++++++++++++++++- .../services/builder/EntityToDtoBuilder.java | 5 +- .../DataSourceDumpProducerServiceTopia.java | 160 ++---------------- .../services/service/DataSourceServiceTopia.java | 69 ++++++-- .../service/seine/ActivitySeineServiceTopia.java | 129 ++++++++++++++- .../seine/GearUseFeaturesSeineServiceTopia.java | 7 +- .../services/ApplicationContextResource.java | 50 ++++++ .../ird/observe/services/DataSourceResource.java | 24 +-- .../DataSourceDumpProducerServiceTopiaTest.java | 13 +- .../service/DataSourceServiceTopiaTest.java | 58 ++++--- 14 files changed, 494 insertions(+), 241 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7458-LonglineTopiaService in repository observe. See http://git.codelutin.com/observe.git commit 658698443c130f22e3d0b993d407396199e70536 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Aug 27 09:38:21 2015 +0200 implantation TripLonglineService (refs #7458). --- .../entities/longline/TripLonglineTopiaDao.java | 4 +- .../service/longline/TripLonglineService.java | 4 +- .../main/xmi/observe-services-dto-longline.zargo | Bin 57340 -> 58090 bytes .../services/dto/ObserveDtosInitializer.java | 5 + .../service/longline/TripLonglineServiceTopia.java | 114 +++++++++++++++++++++ 5 files changed, 123 insertions(+), 4 deletions(-) diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineTopiaDao.java b/observe-entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineTopiaDao.java index d82baed..bba6edd 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineTopiaDao.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineTopiaDao.java @@ -302,8 +302,8 @@ public class TripLonglineTopiaDao extends AbstractTripLonglineTopiaDao<TripLongl trip.setStartDate(set.getTimestamp(2)); trip.setEndDate(set.getTimestamp(3)); - String observerFirstName = set.getString(4); - String observerLastName = set.getString(5); + String observerLastName = set.getString(4); + String observerFirstName = set.getString(5); Person observer = new PersonImpl(); observer.setFirstName(observerFirstName); observer.setLastName(observerLastName); 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 index 336df82..bbca5df 100644 --- 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 @@ -2,8 +2,8 @@ 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.dto.longline.TripLonglineStubDto; import fr.ird.observe.services.spi.Write; import java.util.List; @@ -13,7 +13,7 @@ import java.util.List; */ public interface TripLonglineService extends ObserveService { - List<ReferenceDto<TripLonglineDto>> getTripLonglineByProgram(String programId); + List<TripLonglineStubDto> getTripLonglineByProgram(String programId); FormDto<TripLonglineDto> loadToRead(String tripLonglineId); 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 348b6d6..54f806d 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-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 3cebef7..96dcef8 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 @@ -653,6 +653,11 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { } @Override + public void initTripLonglineStubDto() { + // la logique de copie est à ecrire directement dans le service + } + + @Override public void initWeightMeasureDto() { registerMainDto(WeightMeasureDto.class, WeightMeasure.class, WeightMeasureDto.PROPERTY_WEIGHT, diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/TripLonglineServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/TripLonglineServiceTopia.java new file mode 100644 index 0000000..a0363cb --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/TripLonglineServiceTopia.java @@ -0,0 +1,114 @@ +package fr.ird.observe.services.service.longline; + +import com.google.common.collect.Lists; +import fr.ird.observe.entities.constants.ReferenceLocale; +import fr.ird.observe.entities.longline.TripLongline; +import fr.ird.observe.entities.longline.TripLonglineTopiaDao; +import fr.ird.observe.entities.referentiel.Program; +import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.longline.TripLonglineStubDto; +import fr.ird.observe.services.dto.referential.ProgramDto; +import org.nuiton.util.DateUtil; + +import java.util.Collections; +import java.util.Date; +import java.util.List; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class TripLonglineServiceTopia extends ObserveServiceTopia implements TripLonglineService { + + protected TripLonglineTopiaDao getDao() { + return (TripLonglineTopiaDao) serviceContext.getTopiaPersistenceContext().getDao(TripLongline.class); + } + + @Override + public List<TripLonglineStubDto> getTripLonglineByProgram(String programId) { + + ReferenceLocale referenceLocale = getReferenceLocale(); + + List<TripLongline> tripLonglines = getDao().findAllStubByProgramId(programId, referenceLocale); + + List<TripLonglineStubDto> stubs = Lists.newLinkedList(); + + for (TripLongline tripLongline : tripLonglines) { + + TripLonglineStubDto stub = new TripLonglineStubDto(); + stub.setId(tripLongline.getTopiaId()); + stub.setStartDate(tripLongline.getStartDate()); + stub.setEndDate(tripLongline.getEndDate()); + stub.setVesselLabel(referenceLocale.getLabel(tripLongline.getVessel())); + stub.setObserverLabel(tripLongline.getObserverLabel()); + + stubs.add(stub); + + } + + return stubs; + } + + @Override + public FormDto<TripLonglineDto> loadToRead(String tripLonglineId) { + + TripLongline tripLongline = loadEntity(TripLonglineDto.class, TripLongline.class, tripLonglineId); + + FormDto<TripLonglineDto> form = entityToReadFormDto(TripLonglineDto.class, TripLongline.class, tripLongline); + + return form; + } + + @Override + public FormDto<TripLonglineDto> loadToEdit(String tripLonglineId) { + + TripLongline tripLongline = loadEntity(TripLonglineDto.class, TripLongline.class, tripLonglineId); + + FormDto<TripLonglineDto> form = entityToEditFormDto(TripLonglineDto.class, TripLongline.class, tripLongline); + + TripLonglineDto tripLonglineDto = form.getForm(); + + if (tripLonglineDto.getEndDate() == null) { + Date date = DateUtil.getEndOfDay(now()); + tripLonglineDto.setEndDate(date); + } + + return form; + } + + @Override + public FormDto<TripLonglineDto> preCreate(String programId) { + + TripLongline tripLongline = newEntity(TripLongline.class); + + Program program = loadEntity(ProgramDto.class, Program.class, programId); + + Date date = DateUtil.getDay(now()); + + tripLongline.setStartDate(date); + + tripLongline.setEndDate(date); + + tripLongline.setProgram(program); + + FormDto<TripLonglineDto> form = entityToEditFormDto(TripLonglineDto.class, TripLongline.class, tripLongline); + + return form; + } + + @Override + public String save(FormDto<TripLonglineDto> form) { + + TripLongline tripLongline = dtoToEntity(TripLonglineDto.class, TripLongline.class, form.getForm()); + + tripLongline = saveEntity(TripLongline.class, tripLongline); + + return tripLongline.getTopiaId(); + } + + @Override + public void delete(String tripLonglineId) { + deleteEntity(TripLonglineDto.class, TripLongline.class, Collections.singleton(tripLonglineId)); + } +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7458-LonglineTopiaService in repository observe. See http://git.codelutin.com/observe.git commit f9cbbfcbf1d6f6d6ceac8cac4e996cba5f0721ed Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Aug 27 10:07:34 2015 +0200 implantation GearUseFeaturesLonglineService (refs #7458). --- .../longline/GearUseFeaturesLonglineService.java | 4 +- .../GearUseFeaturesLonglineServiceTopia.java | 115 +++++++++++++++++++++ 2 files changed, 117 insertions(+), 2 deletions(-) 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 index 29819c7..d7a344f 100644 --- 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 @@ -18,10 +18,10 @@ public interface GearUseFeaturesLonglineService extends ObserveService { FormDto<GearUseFeaturesLonglineDto> loadToEdit(String gearUseFeaturesLonglineId); - FormDto<GearUseFeaturesLonglineDto> preCreate(String tripLonglineId); + FormDto<GearUseFeaturesLonglineDto> preCreate(); @Write - String save(FormDto<GearUseFeaturesLonglineDto> form); + String save(String tripLonglineId, FormDto<GearUseFeaturesLonglineDto> form); @Write void delete(String tripLonglineId, String gearUseFeaturesLonglineId); diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/GearUseFeaturesLonglineServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/GearUseFeaturesLonglineServiceTopia.java new file mode 100644 index 0000000..b71c04e --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/GearUseFeaturesLonglineServiceTopia.java @@ -0,0 +1,115 @@ +package fr.ird.observe.services.service.longline; + +import com.google.common.collect.Lists; +import com.google.common.collect.Sets; +import fr.ird.observe.entities.longline.GearUseFeaturesLongline; +import fr.ird.observe.entities.longline.TripLongline; +import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.longline.GearUseFeaturesLonglineDto; +import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.referential.GearCaracteristicDto; +import fr.ird.observe.services.dto.referential.GearDto; +import fr.ird.observe.services.service.DataNotFoundException; + +import java.util.List; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class GearUseFeaturesLonglineServiceTopia extends ObserveServiceTopia implements GearUseFeaturesLonglineService { + + @Override + public List<GearUseFeaturesLonglineDto> getGearUseFeaturesLonglineByTripLongline(String tripLonglineId) { + + TripLongline tripLongline = loadEntity(TripLonglineDto.class, TripLongline.class, tripLonglineId); + + List<GearUseFeaturesLonglineDto> dtos = Lists.newLinkedList(); + + for (GearUseFeaturesLongline features : tripLongline.getGearUseFeaturesLongline()) { + + GearUseFeaturesLonglineDto dto = entityToDto(GearUseFeaturesLonglineDto.class, GearUseFeaturesLongline.class, features); + + dtos.add(dto); + } + + return dtos; + } + + @Override + public FormDto<GearUseFeaturesLonglineDto> loadToRead(String gearUseFeaturesLonglineId) { + + GearUseFeaturesLongline featuresLongline = loadEntity(GearUseFeaturesLonglineDto.class, GearUseFeaturesLongline.class, gearUseFeaturesLonglineId); + + FormDto<GearUseFeaturesLonglineDto> form = entityToReadFormDto(GearUseFeaturesLonglineDto.class, GearUseFeaturesLongline.class, featuresLongline); + + return form; + } + + @Override + public FormDto<GearUseFeaturesLonglineDto> loadToEdit(String gearUseFeaturesLonglineId) { + + GearUseFeaturesLongline featuresLongline = loadEntity(GearUseFeaturesLonglineDto.class, GearUseFeaturesLongline.class, gearUseFeaturesLonglineId); + + FormDto<GearUseFeaturesLonglineDto> form = entityToEditFormDto( + GearUseFeaturesLonglineDto.class, + GearUseFeaturesLongline.class, + featuresLongline, + Sets.<Class<? extends IdDto>>newHashSet(GearDto.class, GearCaracteristicDto.class)); + + return form; + } + + @Override + public FormDto<GearUseFeaturesLonglineDto> preCreate() { + + GearUseFeaturesLongline featuresLongline = newEntity(GearUseFeaturesLongline.class); + + FormDto<GearUseFeaturesLonglineDto> form = entityToEditFormDto( + GearUseFeaturesLonglineDto.class, + GearUseFeaturesLongline.class, + featuresLongline, + Sets.<Class<? extends IdDto>>newHashSet(GearDto.class, GearCaracteristicDto.class)); + + return form; + } + + @Override + public String save(String tripLonglineId, FormDto<GearUseFeaturesLonglineDto> form) { + + TripLongline tripLongline = loadEntity(TripLonglineDto.class, TripLongline.class, tripLonglineId); + + GearUseFeaturesLonglineDto featuresLonglineDto = form.getForm(); + + GearUseFeaturesLongline featuresLongline = dtoToEntity(GearUseFeaturesLonglineDto.class, GearUseFeaturesLongline.class, featuresLonglineDto); + + featuresLongline = saveEntity(GearUseFeaturesLongline.class, featuresLongline); + + if (featuresLonglineDto.isNotPersisted()) { + + tripLongline.addGearUseFeaturesLongline(featuresLongline); + + saveEntity(TripLongline.class, tripLongline); + + } + + return featuresLongline.getTopiaId(); + } + + @Override + public void delete(String tripLonglineId, String gearUseFeaturesLonglineId) { + + TripLongline tripLongline = loadEntity(TripLonglineDto.class, TripLongline.class, tripLonglineId); + + GearUseFeaturesLongline featuresLongline = loadEntity(GearUseFeaturesLonglineDto.class, GearUseFeaturesLongline.class, gearUseFeaturesLonglineId); + + if (! tripLongline.containsGearUseFeaturesLongline(featuresLongline)) { + throw new DataNotFoundException(GearUseFeaturesLonglineDto.class, gearUseFeaturesLonglineId); + } + + tripLongline.removeGearUseFeaturesLongline(featuresLongline); + + } + +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7458-LonglineTopiaService in repository observe. See http://git.codelutin.com/observe.git commit ec4ea494ad4b540851e0f67ebe4c510050607acc Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Aug 27 11:19:47 2015 +0200 implantation ActivityLonglineService (refs #7458). --- .../service/longline/ActivityLonglineService.java | 29 ++++ .../main/xmi/observe-services-dto-longline.zargo | Bin 58090 -> 59030 bytes .../services/dto/ObserveDtosInitializer.java | 25 ++-- .../longline/ActivityLonglineServiceTopia.java | 161 +++++++++++++++++++++ 4 files changed, 205 insertions(+), 10 deletions(-) diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineService.java new file mode 100644 index 0000000..e31042e --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineService.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.longline.ActivityLonglineDto; +import fr.ird.observe.services.dto.longline.ActivityLonglineStubDto; +import fr.ird.observe.services.spi.Write; + +import java.util.List; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public interface ActivityLonglineService extends ObserveService { + + List<ActivityLonglineStubDto> getActivityLonglineByRoute(String tripLonglineId); + + FormDto<ActivityLonglineDto> loadToRead(String activityLonglineId); + + FormDto<ActivityLonglineDto> loadToEdit(String activityLonglineId); + + FormDto<ActivityLonglineDto> preCreate(String tripLonglineId); + + @Write + String save(String tripLonglineId, FormDto<ActivityLonglineDto> form); + + @Write + void delete(String tripLonglineId, String activityLonglineId); +} 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 54f806d..cf43c27 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-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 96dcef8..f4275b3 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 @@ -344,8 +344,8 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { @Override public void initActivityLonglineEncouterDto() { registerDto(ActivityLonglineEncouterDto.class, ActivityLongline.class, - ActivityLonglineEncouterDto.PROPERTY_COMMENT, - ActivityLonglineEncouterDto.PROPERTY_ENCOUNTER + ActivityLonglineEncouterDto.PROPERTY_COMMENT, + ActivityLonglineEncouterDto.PROPERTY_ENCOUNTER ); } @@ -358,13 +358,18 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { } @Override + public void initActivityLonglineStubDto() { + // la logique de copie est à ecrire directement dans le service + } + + @Override public void initBaitsCompositionDto() { registerMainDto(BaitsCompositionDto.class, BaitsComposition.class, - BaitsCompositionDto.PROPERTY_PROPORTION, - BaitsCompositionDto.PROPERTY_INDIVIDUAL_SIZE, - BaitsCompositionDto.PROPERTY_INDIVIDUAL_WEIGHT, - BaitsCompositionDto.PROPERTY_BAIT_SETTING_STATUS, - BaitsCompositionDto.PROPERTY_BAIT_TYPE + BaitsCompositionDto.PROPERTY_PROPORTION, + BaitsCompositionDto.PROPERTY_INDIVIDUAL_SIZE, + BaitsCompositionDto.PROPERTY_INDIVIDUAL_WEIGHT, + BaitsCompositionDto.PROPERTY_BAIT_SETTING_STATUS, + BaitsCompositionDto.PROPERTY_BAIT_TYPE ); } @@ -564,7 +569,7 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { @Override public void initSetLonglineCatchDto() { registerDto(SetLonglineCatchDto.class, SetLongline.class, - SetLonglineCatchDto.PROPERTY_CATCH_LONGLINE + SetLonglineCatchDto.PROPERTY_CATCH_LONGLINE ); } @@ -596,8 +601,8 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { @Override public void initSizeMeasureDto() { registerMainDto(SizeMeasureDto.class, SizeMeasure.class, - SizeMeasureDto.PROPERTY_SIZE, - SizeMeasureDto.PROPERTY_SIZE_MEASURE_TYPE + SizeMeasureDto.PROPERTY_SIZE, + SizeMeasureDto.PROPERTY_SIZE_MEASURE_TYPE ); } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineServiceTopia.java new file mode 100644 index 0000000..9838f64 --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineServiceTopia.java @@ -0,0 +1,161 @@ +package fr.ird.observe.services.service.longline; + +import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; +import fr.ird.observe.entities.constants.ReferenceLocale; +import fr.ird.observe.entities.longline.ActivityLongline; +import fr.ird.observe.entities.longline.TripLongline; +import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.longline.ActivityLonglineDto; +import fr.ird.observe.services.dto.longline.ActivityLonglineStubDto; +import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.service.DataNotFoundException; +import fr.ird.type.CoordinateHelper; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class ActivityLonglineServiceTopia extends ObserveServiceTopia implements ActivityLonglineService { + + @Override + public List<ActivityLonglineStubDto> getActivityLonglineByRoute(String tripLonglineId) { + + ReferenceLocale referenceLocale = getReferenceLocale(); + + TripLongline tripLongline = loadEntity(TripLonglineDto.class, TripLongline.class, tripLonglineId); + + List<ActivityLonglineStubDto> stubs = Lists.newLinkedList(); + + for (ActivityLongline activityLongline : tripLongline.getActivityLongline()) { + + ActivityLonglineStubDto stub = new ActivityLonglineStubDto(); + + stub.setId(activityLongline.getTopiaId()); + + stub.setTimeStamp(activityLongline.getTimeStamp()); + + stub.setVesselActivityLonglineLabel(referenceLocale.getLabel(activityLongline.getVesselActivityLongline())); + + stub.setHasSetLongline(activityLongline.getSetLongline() != null); + + } + + return stubs; + + } + + @Override + public FormDto<ActivityLonglineDto> loadToRead(String activityLonglineId) { + + ActivityLongline activityLongline = loadEntity(ActivityLonglineDto.class, ActivityLongline.class, activityLonglineId); + + FormDto<ActivityLonglineDto> form = entityToReadFormDto(ActivityLonglineDto.class, ActivityLongline.class, activityLongline); + + return form; + + } + + @Override + + public FormDto<ActivityLonglineDto> loadToEdit(String activityLonglineId) { + + ActivityLongline activityLongline = loadEntity(ActivityLonglineDto.class, ActivityLongline.class, activityLonglineId); + + FormDto<ActivityLonglineDto> form = entityToEditFormDto(ActivityLonglineDto.class, ActivityLongline.class, activityLongline); + + return form; + + } + + @Override + public FormDto<ActivityLonglineDto> preCreate(String tripLonglineId) { + + TripLongline tripLongline = loadEntity(TripLonglineDto.class, TripLongline.class, tripLonglineId); + + ActivityLongline preCreated = newEntity(ActivityLongline.class); + + ActivityLongline lastActivityLongline = Iterables.getLast(tripLongline.getActivityLongline(), null); + + Date timestamp; + + if (lastActivityLongline == null) { + + // première activité, on utilise la date de début de marée (voir http://forge.codelutin.com/issues/6777) + Calendar calendar = Calendar.getInstance(); + calendar.setTime(tripLongline.getStartDate()); + timestamp = calendar.getTime(); + + } else { + + // on recupère le quadrant de cette activity + // et on l'affecte à la nouvelle activity + Integer quadrant = CoordinateHelper.getQuadrant( + lastActivityLongline.getLongitude(), + lastActivityLongline.getLatitude()); + + if (quadrant != null) { + + preCreated.setQuadrant(quadrant); + + } + + // on reprend la date et l'heure de la dernière activité + timestamp = lastActivityLongline.getTimeStamp(); + + } + + preCreated.setTimeStamp(timestamp); + + FormDto<ActivityLonglineDto> form = entityToEditFormDto(ActivityLonglineDto.class, ActivityLongline.class, preCreated); + + return form; + + } + + @Override + public String save(String tripLonglineId, FormDto<ActivityLonglineDto> form) { + + TripLongline tripLongline = loadEntity(TripLonglineDto.class, TripLongline.class, tripLonglineId); + + ActivityLonglineDto activityLonglineDto = form.getForm(); + + ActivityLongline activityLongline = dtoToEntity(ActivityLonglineDto.class, ActivityLongline.class, activityLonglineDto); + + activityLongline = saveEntity(ActivityLongline.class, activityLongline); + + if (activityLonglineDto.isNotPersisted()) { + + tripLongline.addActivityLongline(activityLongline); + + saveEntity(TripLongline.class, tripLongline); + + } + + return activityLongline.getTopiaId(); + + } + + @Override + public void delete(String tripLonglineId, String activityLonglineId) { + + TripLongline tripLongline = loadEntity(TripLonglineDto.class, TripLongline.class, tripLonglineId); + + ActivityLongline activityLongline = loadEntity(ActivityLonglineDto.class, ActivityLongline.class, activityLonglineId); + + if (! tripLongline.containsActivityLongline(activityLongline)) { + + throw new DataNotFoundException(ActivityLonglineDto.class, activityLonglineId); + + } + + tripLongline.removeActivityLongline(activityLongline); + + } + + +} -- 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