branch feature/7458-topiaServices updated (aa4cdac -> da5477a)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7458-topiaServices in repository observe. See http://git.codelutin.com/observe.git from aa4cdac implantation TargetSampleService + test (refs #7458). new da5477a implantation NonTargetSampleService (refs #7458). The 1 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 da5477a371de3534b13b200d9d4a1fc0ef884200 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Aug 27 08:56:53 2015 +0200 implantation NonTargetSampleService (refs #7458). Summary of changes: .../service/seine/NonTargetSampleService.java | 4 +- .../service/seine/NonTargetSampleServiceTopia.java | 122 +++++++++++++++++++++ 2 files changed, 125 insertions(+), 1 deletion(-) create mode 100644 observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleServiceTopia.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 feature/7458-topiaServices in repository observe. See http://git.codelutin.com/observe.git commit da5477a371de3534b13b200d9d4a1fc0ef884200 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Aug 27 08:56:53 2015 +0200 implantation NonTargetSampleService (refs #7458). --- .../service/seine/NonTargetSampleService.java | 4 +- .../service/seine/NonTargetSampleServiceTopia.java | 122 +++++++++++++++++++++ 2 files changed, 125 insertions(+), 1 deletion(-) 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 index eebe81b..a4a7299 100644 --- 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 @@ -9,11 +9,13 @@ import fr.ird.observe.services.spi.Write; */ public interface NonTargetSampleService { + boolean canUseNonTargetSample(String setSeineId); + FormDto<NonTargetSampleDto> loadToRead(String setSeineId); FormDto<NonTargetSampleDto> loadToEdit(String setSeineId); @Write - String save(FormDto<NonTargetSampleDto> form); + String save(String setSeineId, FormDto<NonTargetSampleDto> form); } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleServiceTopia.java new file mode 100644 index 0000000..d8adea5 --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleServiceTopia.java @@ -0,0 +1,122 @@ +package fr.ird.observe.services.service.seine; + +import com.google.common.collect.Iterables; +import com.google.common.collect.Sets; +import fr.ird.observe.entities.referentiel.Species; +import fr.ird.observe.entities.seine.NonTargetCatch; +import fr.ird.observe.entities.seine.NonTargetSample; +import fr.ird.observe.entities.seine.SetSeine; +import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.ReferenceSetDto; +import fr.ird.observe.services.dto.referential.SpeciesDto; +import fr.ird.observe.services.dto.seine.NonTargetSampleDto; +import fr.ird.observe.services.dto.seine.SetSeineDto; + +import java.util.Collection; +import java.util.LinkedHashSet; +import java.util.Set; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class NonTargetSampleServiceTopia extends ObserveServiceTopia implements NonTargetSampleService { + + @Override + public boolean canUseNonTargetSample(String setSeineId) { + + SetSeine setSeine = loadEntity(SetSeineDto.class, SetSeine.class, setSeineId); + + return setSeine.canUseNonTargetSample(); + } + + protected NonTargetSample getNonTargetSample(SetSeine setSeine) { + + NonTargetSample nonTargetSample; + + if (setSeine.isNonTargetSampleEmpty()) { + + nonTargetSample = newEntity(NonTargetSample.class); + + } else { + + nonTargetSample = Iterables.get(setSeine.getNonTargetSample(), 0); + } + + return nonTargetSample; + + + } + + @Override + public FormDto<NonTargetSampleDto> loadToRead(String setSeineId) { + + SetSeine setSeine = loadEntity(SetSeineDto.class, SetSeine.class, setSeineId); + + NonTargetSample nonTargetSample = getNonTargetSample(setSeine); + + FormDto<NonTargetSampleDto> form = entityToReadFormDto(NonTargetSampleDto.class, NonTargetSample.class, nonTargetSample); + + return form; + } + + @Override + public FormDto<NonTargetSampleDto> loadToEdit(String setSeineId) { + + SetSeine setSeine = loadEntity(SetSeineDto.class, SetSeine.class, setSeineId); + + NonTargetSample nonTargetSample = getNonTargetSample(setSeine); + + FormDto<NonTargetSampleDto> form = entityToReadFormDto(NonTargetSampleDto.class, NonTargetSample.class, nonTargetSample); + + // on filtre la list des espéces cibles + Set<Species> speciesSet = Sets.newLinkedHashSet(); + + // on recupere la liste des espèces thon cible + Collection<NonTargetCatch> nonTargetCatches = setSeine.getNonTargetCatch(); + + // on filtre sur les espèces montées sur le pont et rejetées + if (nonTargetCatches != null) { + + for (NonTargetCatch nonTargetCatch : nonTargetCatches) { + + speciesSet.add(nonTargetCatch.getSpecies()); + } + + } + + LinkedHashSet<ReferenceDto> speciesRefs = Sets.newLinkedHashSet(); + + for (Species species : speciesSet ) { + speciesRefs.add(entityToReferenceDto(SpeciesDto.class, species)); + } + + ReferenceSetDto<SpeciesDto> speciesRreferenceSetDto = form.getReferenceSetDto(SpeciesDto.class); + speciesRreferenceSetDto.setReference(speciesRefs); + + return form; + } + + @Override + public String save(String setSeineId, FormDto<NonTargetSampleDto> form) { + + SetSeine setSeine = loadEntity(SetSeineDto.class, SetSeine.class, setSeineId); + + NonTargetSampleDto nonTargetSampleDto = form.getForm(); + + NonTargetSample nonTargetSample = dtoToEntity(NonTargetSampleDto.class, NonTargetSample.class, nonTargetSampleDto); + + nonTargetSample = saveEntity(NonTargetSample.class, nonTargetSample); + + if (nonTargetSampleDto.isNotPersisted()) { + + setSeine.addNonTargetSample(nonTargetSample); + + saveEntity(SetSeine.class, setSeine); + + } + + return setSeine.getTopiaId(); + } +} -- 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