branch feature/7458-topiaServices updated (fc25b91 -> aa4cdac)
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 fc25b91 implantation NonTargetCatchService (refs #7458). new aa4cdac implantation TargetSampleService + test (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 aa4cdacfcc7a9af1d9a767f376e05db83b85be71 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Aug 26 17:44:26 2015 +0200 implantation TargetSampleService + test (refs #7458). Summary of changes: .../service/seine/TargetSampleService.java | 4 +- .../service/seine/TargetSampleServiceTopia.java | 131 +++++++++++++++++++++ .../seine/TargetSampleServiceTopiaTest.java | 70 +++++++++++ 3 files changed, 204 insertions(+), 1 deletion(-) create mode 100644 observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TargetSampleServiceTopia.java create mode 100644 observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TargetSampleServiceTopiaTest.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 aa4cdacfcc7a9af1d9a767f376e05db83b85be71 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Aug 26 17:44:26 2015 +0200 implantation TargetSampleService + test (refs #7458). --- .../service/seine/TargetSampleService.java | 4 +- .../service/seine/TargetSampleServiceTopia.java | 131 +++++++++++++++++++++ .../seine/TargetSampleServiceTopiaTest.java | 70 +++++++++++ 3 files changed, 204 insertions(+), 1 deletion(-) 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 index 51a1f90..9163606 100644 --- 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 @@ -10,11 +10,13 @@ import fr.ird.observe.services.spi.Write; */ public interface TargetSampleService extends ObserveService { + boolean canUseTargetSample(String setSeineId, boolean discarded); + FormDto<TargetSampleDto> loadToRead(String setSeineId, boolean discarded); FormDto<TargetSampleDto> loadToEdit(String setSeineId, boolean discarded); @Write - String save(FormDto<TargetSampleDto> form); + String save(String setSeineId, FormDto<TargetSampleDto> form); } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TargetSampleServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TargetSampleServiceTopia.java new file mode 100644 index 0000000..6a1305d --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TargetSampleServiceTopia.java @@ -0,0 +1,131 @@ +package fr.ird.observe.services.service.seine; + +import com.google.common.collect.Sets; +import fr.ird.observe.entities.referentiel.Species; +import fr.ird.observe.entities.seine.SetSeine; +import fr.ird.observe.entities.seine.TargetCatch; +import fr.ird.observe.entities.seine.TargetSample; +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.ReferenceDto; +import fr.ird.observe.services.dto.ReferenceSetDto; +import fr.ird.observe.services.dto.referential.SpeciesDto; +import fr.ird.observe.services.dto.seine.SetSeineDto; +import fr.ird.observe.services.dto.seine.TargetSampleDto; + +import java.util.Collection; +import java.util.LinkedHashSet; +import java.util.Set; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class TargetSampleServiceTopia extends ObserveServiceTopia implements TargetSampleService { + + @Override + public boolean canUseTargetSample(String setSeineId, boolean discarded) { + + SetSeine setSeine = loadEntity(SetSeineDto.class, SetSeine.class, setSeineId); + + return setSeine.canUseTargetSample(discarded); + } + + protected TargetSample getTargetSample(SetSeine setSeine, boolean discarded) { + + TargetSample targetSample = setSeine.getTargetSample(discarded); + + if (targetSample == null) { + targetSample = newEntity(TargetSample.class); + targetSample.setDiscarded(discarded); + } + + return targetSample; + + + } + + @Override + public FormDto<TargetSampleDto> loadToRead(String setSeineId, boolean discarded) { + + SetSeine setSeine = loadEntity(SetSeineDto.class, SetSeine.class, setSeineId); + + TargetSample targetSample = getTargetSample(setSeine, discarded); + + FormDto<TargetSampleDto> form = entityToReadFormDto(TargetSampleDto.class, TargetSample.class, targetSample); + + return form; + } + + @Override + public FormDto<TargetSampleDto> loadToEdit(String setSeineId, boolean discarded) { + + SetSeine setSeine = loadEntity(SetSeineDto.class, SetSeine.class, setSeineId); + + TargetSample targetSample = getTargetSample(setSeine, discarded); + + FormDto<TargetSampleDto> form = entityToEditFormDto( + TargetSampleDto.class, + TargetSample.class, + targetSample, + Sets.<Class<? extends IdDto>>newHashSet(SpeciesDto.class)); + + // on filtre la list des espéces cibles + Set<Species> speciesSet = Sets.newLinkedHashSet(); + + // on recupere la liste des espèces thon cible + Collection<TargetCatch> targetCatches = setSeine.getTargetCatch(); + + // on filtre sur les espèces montées sur le pont et rejetées + if (targetCatches != null) { + + for (TargetCatch targetCatch : targetCatches) { + + // si echantillon rejeté : on ne conserve que les espèces rejectées montées sur le pont + // sinon les espèce cible + if (discarded && targetCatch.isDiscarded() && targetCatch.getBroughtOnDeck() + || + !discarded && !targetCatch.isDiscarded()) { + + speciesSet.add(targetCatch.getWeightCategory().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<TargetSampleDto> form) { + + SetSeine setSeine = loadEntity(SetSeineDto.class, SetSeine.class, setSeineId); + + TargetSampleDto targetSampleDto = form.getForm(); + + TargetSample targetSample = dtoToEntity(TargetSampleDto.class, TargetSample.class, targetSampleDto); + + targetSample = saveEntity(TargetSample.class, targetSample); + + if (targetSampleDto.isNotPersisted()) { + + setSeine.addTargetSample(targetSample); + + saveEntity(SetSeine.class, setSeine); + + } + + return setSeine.getTopiaId(); + } +} diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TargetSampleServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TargetSampleServiceTopiaTest.java new file mode 100644 index 0000000..d55dbe2 --- /dev/null +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TargetSampleServiceTopiaTest.java @@ -0,0 +1,70 @@ +package fr.ird.observe.services.service.seine; + +import com.google.common.collect.ImmutableSet; +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.TargetSampleDto; +import fr.ird.observe.services.service.AbstractServiceTopiaTest; +import org.junit.Assert; +import org.junit.Test; + +import java.util.Set; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class TargetSampleServiceTopiaTest extends AbstractServiceTopiaTest { + + public static String SET_SEINE_ID = "fr.ird.observe.entities.seine.SetSeine#1359573677233#0.016313003525718517"; + + protected TargetSampleService service; + + @Override + public Set<String> getTestNamesChangeDataBase() { + return ImmutableSet.of(); + } + + @Override + public String getScriptName() { + return "dataForTestSeine"; + } + + @Override + public void setUp() throws Exception { + super.setUp(); + + service = newService(TargetSampleService.class); + + } + + @Test + public void canUseTargetSampleTest() { + + Assert.assertTrue(service.canUseTargetSample(SET_SEINE_ID, false)); + Assert.assertFalse(service.canUseTargetSample(SET_SEINE_ID, true)); + + } + + @Test + public void loadForEditTest() { + + FormDto<TargetSampleDto> formDto = service.loadToEdit(SET_SEINE_ID, false); + + Assert.assertNotNull(formDto); + + TargetSampleDto targetSampleDto = formDto.getForm(); + + Assert.assertNotNull(targetSampleDto); + Assert.assertFalse(targetSampleDto.getDiscarded()); + Assert.assertTrue(targetSampleDto.isTargetLengthEmpty()); + + ReferenceSetDto<SpeciesDto> speciesDtoReferenceSetDto = formDto.getReferenceSetDto(SpeciesDto.class); + Assert.assertEquals(1, speciesDtoReferenceSetDto.sizeReference()); + ReferenceDto referenceDto = speciesDtoReferenceSetDto.getReference(0); + Assert.assertEquals("fr.ird.observe.entities.referentiel.Species#1239832685474#0.8943253454598569", referenceDto.getId()); + + } + +} -- 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