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 495e5bf7f875e1509f02fa32c6d4abe5f3d7a476 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 26 11:10:30 2015 +0200 Ajout de quelques méthodes utiles + amélioration de code --- .../service/seine/GearUseFeaturesSeineService.java | 2 +- .../java/fr/ird/observe/services/dto/FormDto.java | 22 ++++++++++++++++- .../ird/observe/services/dto/ReferenceSetDto.java | 10 ++++++++ .../dto/ReferenceSetNotFoundException.java | 28 ++++++++++++++++++++++ .../seine/GearUseFeaturesSeineServiceTopia.java | 8 +++---- .../GearUseFeaturesSeineServiceTopiaTest.java | 20 +++++++--------- 6 files changed, 72 insertions(+), 18 deletions(-) diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineService.java index 7d56797..e104df7 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineService.java @@ -21,7 +21,7 @@ public interface GearUseFeaturesSeineService extends ObserveService { FormDto<GearUseFeaturesSeineDto> preCreate(); @Write - String save(FormDto<GearUseFeaturesSeineDto> form, String tripSeineId); + String save(String tripSeineId, FormDto<GearUseFeaturesSeineDto> form); @Write void delete(String tripSeineId, String gearUseFeaturesSeineId); diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDto.java index d2b7b58..9eec082 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDto.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDto.java @@ -2,6 +2,8 @@ package fr.ird.observe.services.dto; import com.google.common.base.Preconditions; import com.google.common.collect.Iterables; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; public class FormDto<R extends IdDto> extends AbstractFormDto { @@ -31,9 +33,27 @@ public class FormDto<R extends IdDto> extends AbstractFormDto { public <D extends IdDto> ReferenceSetDto<D> getReferenceSetDto(Class<D> type) { ReferenceSetDto referenceSetDto = Iterables.find(getLabels(), ReferenceSetDtos.newTypePredicate(type)); - + if (referenceSetDto == null) { + throw new ReferenceSetNotFoundException(this, type); + } return referenceSetDto; } + public <D extends IdDto> ReferenceDto<D> getReferenceById(Class<D> type, String id) { + + ReferenceSetDto<D> referenceSetDto = getReferenceSetDto(type); + ReferenceDto<D> referenceDto = referenceSetDto.getById(id); + return referenceDto; + + } + + public <D extends ReferentialDto> ReferentialReferenceDto<D> getReferentialReferenceById(Class<D> type, String id) { + + ReferenceSetDto<D> referenceSetDto = getReferenceSetDto(type); + ReferentialReferenceDto<D> referenceDto = (ReferentialReferenceDto<D>) referenceSetDto.getById(id); + return referenceDto; + + } + } diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDto.java index 1f87fd2..d871053 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDto.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDto.java @@ -1,5 +1,9 @@ package fr.ird.observe.services.dto; +import com.google.common.collect.Iterables; + +import java.util.Set; + public class ReferenceSetDto<R extends IdDto> extends AbstractReferenceSetDto { private static final long serialVersionUID = 1L; @@ -14,4 +18,10 @@ public class ReferenceSetDto<R extends IdDto> extends AbstractReferenceSetDto { return type; } + public ReferenceDto<R> getById(String id) { + Set<ReferenceDto<R>> references = (Set) getReference(); + ReferenceDto<R> referenceDto = Iterables.find(references, IdDtos.newIdPredicate(id)); + return referenceDto; + } + } diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetNotFoundException.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetNotFoundException.java new file mode 100644 index 0000000..62d256b --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetNotFoundException.java @@ -0,0 +1,28 @@ +package fr.ird.observe.services.dto; + +/** + * Created on 26/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ReferenceSetNotFoundException extends RuntimeException { + + private static final long serialVersionUID = 1L; + + protected final Class<?> dtoType; + + protected final FormDto formDto; + + public ReferenceSetNotFoundException(FormDto formDto, Class<?> dtoType) { + this.dtoType = dtoType; + this.formDto = formDto; + } + + public Class<?> getDtoType() { + return dtoType; + } + + public FormDto getFormDto() { + return formDto; + } +} diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineServiceTopia.java index d0c07a1..01b4228 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineServiceTopia.java @@ -14,7 +14,6 @@ import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.services.service.DataNotFoundException; import org.apache.commons.lang3.StringUtils; -import java.util.Collections; import java.util.List; /** @@ -78,7 +77,7 @@ public class GearUseFeaturesSeineServiceTopia extends ObserveServiceTopia implem } @Override - public String save(FormDto<GearUseFeaturesSeineDto> form, String tripSeineId) { + public String save(String tripSeineId, FormDto<GearUseFeaturesSeineDto> form) { TripSeine tripSeine = loadEntity(TripSeineDto.class, TripSeine.class, tripSeineId); @@ -116,10 +115,11 @@ public class GearUseFeaturesSeineServiceTopia extends ObserveServiceTopia implem throw new DataNotFoundException(GearUseFeaturesSeineDto.class, gearUseFeaturesSeineId); } - deleteEntity(GearUseFeaturesSeineDto.class, GearUseFeaturesSeine.class, Collections.singleton(gearUseFeaturesSeineId)); + //TODO Bien vérifier que l'on a pas besoin de faire cette suppression physiquement, dans le modèle on a une composition + //TODO Donc les delete cascade dans hibernate devrait faire le job +// deleteEntity(GearUseFeaturesSeineDto.class, GearUseFeaturesSeine.class, Collections.singleton(gearUseFeaturesSeineId)); tripSeine.removeGearUseFeaturesSeine(featuresSeine); - } } diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineServiceTopiaTest.java index bffe986..fa8e2e0 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineServiceTopiaTest.java @@ -8,7 +8,6 @@ import fr.ird.observe.entities.seine.GearUseFeaturesMeasurementSeine; import fr.ird.observe.entities.seine.GearUseFeaturesSeine; import fr.ird.observe.entities.seine.TripSeine; import fr.ird.observe.services.dto.FormDto; -import fr.ird.observe.services.dto.IdDtos; import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.ReferenceSetDtos; import fr.ird.observe.services.dto.referential.GearCaracteristicDto; @@ -57,7 +56,7 @@ public class GearUseFeaturesSeineServiceTopiaTest extends AbstractServiceTopiaTe service = newService(GearUseFeaturesSeineService.class); - referentialService = newService(ReferentialService.class); + referentialService = newService(ReferentialService.class); } @@ -223,7 +222,7 @@ public class GearUseFeaturesSeineServiceTopiaTest extends AbstractServiceTopiaTe } } - service.save(formDto, TRIP_SEINE_ID_1); + service.save(TRIP_SEINE_ID_1, formDto); GearUseFeaturesSeine featuresSeine = dataSourceResource.findById(GearUseFeaturesSeine.class, GEAR_USE_FEATURES_SEINE_ID); @@ -252,9 +251,7 @@ public class GearUseFeaturesSeineServiceTopiaTest extends AbstractServiceTopiaTe GearUseFeaturesSeineDto featuresSeineDto = formDto.getForm(); - ReferentialReferenceDto<GearDto> radarRefDto = (ReferentialReferenceDto<GearDto>) Iterables.find( - formDto.getReferenceSetDto(GearDto.class).getReference(), - IdDtos.newIdPredicate("fr.ird.observe.entities.referentiel.Gear#1239832686125#0.4")); + ReferentialReferenceDto<GearDto> radarRefDto = formDto.getReferentialReferenceById(GearDto.class, "fr.ird.observe.entities.referentiel.Gear#1239832686125#0.4"); featuresSeineDto.setGear(radarRefDto); featuresSeineDto.setNumber(1); @@ -262,17 +259,14 @@ public class GearUseFeaturesSeineServiceTopiaTest extends AbstractServiceTopiaTe GearUseFeaturesMeasurementSeineDto measurementSeineDto1 = new GearUseFeaturesMeasurementSeineDto(); - ReferentialReferenceDto<GearCaracteristicDto> rangeRefDto = (ReferentialReferenceDto<GearCaracteristicDto>) Iterables.find( - formDto.getReferenceSetDto(GearCaracteristicDto.class).getReference(), - IdDtos.newIdPredicate("fr.ird.observe.entities.referentiel.GearCaracteristic#1239832686124#0.1")); + ReferentialReferenceDto<GearCaracteristicDto> rangeRefDto = formDto.getReferentialReferenceById(GearCaracteristicDto.class, "fr.ird.observe.entities.referentiel.GearCaracteristic#1239832686124#0.1"); measurementSeineDto1.setGearCaracteristic(rangeRefDto); measurementSeineDto1.setMeasurementValue("50"); featuresSeineDto.addGearUseFeaturesMeasurement(measurementSeineDto1); - - String featuresSeineId = service.save(formDto, TRIP_SEINE_ID_1); + String featuresSeineId = service.save(TRIP_SEINE_ID_1, formDto); GearUseFeaturesSeine featuresSeine = dataSourceResource.findById(GearUseFeaturesSeine.class, featuresSeineId); @@ -287,6 +281,7 @@ public class GearUseFeaturesSeineServiceTopiaTest extends AbstractServiceTopiaTe GearUseFeaturesMeasurementSeine measurementSeine = Iterables.find( featuresSeine.getGearUseFeaturesMeasurement(), new Predicate<GearUseFeaturesMeasurementSeine>() { + @Override public boolean apply(GearUseFeaturesMeasurementSeine gearUseFeaturesMeasurementSeine) { return measurementSeineDto.getGearCaracteristic().getId().equals(gearUseFeaturesMeasurementSeine.getGearCaracteristic().getTopiaId()); @@ -302,6 +297,8 @@ public class GearUseFeaturesSeineServiceTopiaTest extends AbstractServiceTopiaTe @Test public void deleteTest() { + Assert.assertTrue(dataSourceResource.exists(GearUseFeaturesSeine.class, GEAR_USE_FEATURES_SEINE_ID)); + service.delete(TRIP_SEINE_ID_1, GEAR_USE_FEATURES_SEINE_ID); List<GearUseFeaturesSeineDto> featuresSeineDtos = service.getGearUseFeaturesSeineByTripSeine(TRIP_SEINE_ID_1); @@ -310,7 +307,6 @@ public class GearUseFeaturesSeineServiceTopiaTest extends AbstractServiceTopiaTe Assert.assertFalse(dataSourceResource.exists(GearUseFeaturesSeine.class, GEAR_USE_FEATURES_SEINE_ID)); - } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.