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>.