branch develop updated (3bb7313 -> 94244a8)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository observe. See http://git.codelutin.com/observe.git from 3bb7313 Merge branch 'feature/7469-3' into develop new 94244a8 filtrer les liste de valeurs (combobox) coté service (refs #7587). 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 94244a8794f3089aaaeda5eac453253b5524caa0 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Oct 7 17:06:57 2015 +0200 filtrer les liste de valeurs (combobox) coté service (refs #7587). Summary of changes: .../observe/ui/content/ContentUIInitializer.java | 21 +---- .../ui/content/open/impl/seine/TripSeineUI.css | 5 -- .../entities/referentiel/ReferenceEntities.java | 11 ++- .../ird/observe/entities/referentiel/Vessels.java | 27 ++++++- .../java/fr/ird/observe/services/dto/FormDto.java | 18 ++++- .../ird/observe/services/dto/ReferenceSetDtos.java | 21 +++++ .../dto/ReferenceSetNotFoundException.java | 9 ++- .../ird/observe/services/ObserveServiceTopia.java | 56 ++++++++++--- .../services/builder/EntityToDtoBuilder.java | 45 ++++++----- .../observe/services/dto/ReferenceTypeName.java | 31 ++++++++ .../services/entity/ObserveEntitiesFilters.java | 93 ++++++++++++++++++++++ .../services/entity/ObserveEntityFilter.java | 72 +++++++++++++++++ .../ActivityLongLineEncouterServiceTopia.java | 6 +- .../ActivityLongLineSensorUsedServiceTopia.java | 8 +- .../GearUseFeaturesLonglineServiceTopia.java | 10 ++- .../longline/SetLonglineCatchServiceTopia.java | 30 ++++--- .../SetLonglineDetailCompositionServiceTopia.java | 15 ++-- .../SetLonglineGlobalCompositionServiceTopia.java | 19 +++-- .../services/service/longline/TdrServiceTopia.java | 16 ++-- .../seine/GearUseFeaturesSeineServiceTopia.java | 8 +- .../service/seine/NonTargetCatchServiceTopia.java | 5 +- .../seine/ObjectObservedSpeciesServiceTopia.java | 5 +- .../seine/ObjectSchoolEstimateServiceTopia.java | 5 +- .../service/seine/SchoolEstimateServiceTopia.java | 4 +- .../service/seine/TargetSampleServiceTopia.java | 4 +- .../TransmittingBuoyOperationServiceTopia.java | 6 +- .../services/builder/EntityToDtoBuilderTest.java | 18 +++-- .../service/seine/TripSeineServiceTopiaTest.java | 6 +- 28 files changed, 458 insertions(+), 116 deletions(-) create mode 100644 observe-services-topia/src/main/java/fr/ird/observe/services/dto/ReferenceTypeName.java create mode 100644 observe-services-topia/src/main/java/fr/ird/observe/services/entity/ObserveEntitiesFilters.java create mode 100644 observe-services-topia/src/main/java/fr/ird/observe/services/entity/ObserveEntityFilter.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 develop in repository observe. See http://git.codelutin.com/observe.git commit 94244a8794f3089aaaeda5eac453253b5524caa0 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Oct 7 17:06:57 2015 +0200 filtrer les liste de valeurs (combobox) coté service (refs #7587). --- .../observe/ui/content/ContentUIInitializer.java | 21 +---- .../ui/content/open/impl/seine/TripSeineUI.css | 5 -- .../entities/referentiel/ReferenceEntities.java | 11 ++- .../ird/observe/entities/referentiel/Vessels.java | 27 ++++++- .../java/fr/ird/observe/services/dto/FormDto.java | 18 ++++- .../ird/observe/services/dto/ReferenceSetDtos.java | 21 +++++ .../dto/ReferenceSetNotFoundException.java | 9 ++- .../ird/observe/services/ObserveServiceTopia.java | 56 ++++++++++--- .../services/builder/EntityToDtoBuilder.java | 45 ++++++----- .../observe/services/dto/ReferenceTypeName.java | 31 ++++++++ .../services/entity/ObserveEntitiesFilters.java | 93 ++++++++++++++++++++++ .../services/entity/ObserveEntityFilter.java | 72 +++++++++++++++++ .../ActivityLongLineEncouterServiceTopia.java | 6 +- .../ActivityLongLineSensorUsedServiceTopia.java | 8 +- .../GearUseFeaturesLonglineServiceTopia.java | 10 ++- .../longline/SetLonglineCatchServiceTopia.java | 30 ++++--- .../SetLonglineDetailCompositionServiceTopia.java | 15 ++-- .../SetLonglineGlobalCompositionServiceTopia.java | 19 +++-- .../services/service/longline/TdrServiceTopia.java | 16 ++-- .../seine/GearUseFeaturesSeineServiceTopia.java | 8 +- .../service/seine/NonTargetCatchServiceTopia.java | 5 +- .../seine/ObjectObservedSpeciesServiceTopia.java | 5 +- .../seine/ObjectSchoolEstimateServiceTopia.java | 5 +- .../service/seine/SchoolEstimateServiceTopia.java | 4 +- .../service/seine/TargetSampleServiceTopia.java | 4 +- .../TransmittingBuoyOperationServiceTopia.java | 6 +- .../services/builder/EntityToDtoBuilderTest.java | 18 +++-- .../service/seine/TripSeineServiceTopiaTest.java | 6 +- 28 files changed, 458 insertions(+), 116 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIInitializer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIInitializer.java index 116177a..da0148a 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIInitializer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIInitializer.java @@ -33,7 +33,6 @@ import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.constants.ReferenceStatus; import fr.ird.observe.services.dto.referential.ReferentialDto; -import fr.ird.observe.services.dto.referential.ReferentialDtos; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.actions.shared.AbstractUIAction; import fr.ird.observe.ui.util.BooleanEditor; @@ -859,26 +858,10 @@ public class ContentUIInitializer<E extends IdDto, UI extends ObserveContentUI<E data = new ArrayList<>(); // get complete data list from service - ReferenceSetDto<E> referenceSetDto = formDto.getReferenceSetDto(dtoClass); + ReferenceSetDto<E> referenceSetDto = formDto.getReferenceSetDto(dtoClass, comboBox.getProperty()); LinkedHashSet<ReferenceDto> reference = referenceSetDto.getReference(); - Predicate<ReferenceDto> predicate = (Predicate<ReferenceDto>) comboBox.getClientProperty(ObserveContentUI.CLIENT_PROPERTY_LIST_PREDICATE); - - if (predicate != null) { - - data.addAll(Collections2.filter(reference, predicate)); - } else { - - data.addAll(reference); - } - - } - - boolean referentialEntity = ReferentialDto.class.isAssignableFrom(dtoClass); - if (referentialEntity) { - - //TC-20100208 : on ne veut pas voir les elements du referentiel non actif - ReferentialDtos.filterReferentialReferenceListByStatus((List) data); + data.addAll(reference); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUI.css b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUI.css index 7eba914..960ce0d 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUI.css +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUI.css @@ -52,7 +52,6 @@ NumberEditor { #observer { property:{TripSeineDto.PROPERTY_OBSERVER}; selectedItem:{bean.getObserver()}; - _listPredicate:{PersonDtos.newObserverReferencePredicate(true)}; } #captainLabel { @@ -63,7 +62,6 @@ NumberEditor { #captain { property:{TripSeineDto.PROPERTY_CAPTAIN}; selectedItem:{bean.getCaptain()}; - _listPredicate:{PersonDtos.newCaptainReferencePredicate(true)}; } #dataEntryOperatorLabel { @@ -74,7 +72,6 @@ NumberEditor { #dataEntryOperator { property:{TripSeineDto.PROPERTY_DATA_ENTRY_OPERATOR}; selectedItem:{bean.getDataEntryOperator()}; - _listPredicate:{PersonDtos.newDataEntryOperatorReferencePredicate(true)}; } #vesselLabel { @@ -85,8 +82,6 @@ NumberEditor { #vessel { property:{TripSeineDto.PROPERTY_VESSEL}; selectedItem:{bean.getVessel()}; - //FIXME - //_listPredicate:{VesselDtos.newVesselByVesselTypeIdPredicate(getConfig().getSeineVesselTypeIds())}; } #oceanLabel { diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/ReferenceEntities.java b/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/ReferenceEntities.java index 35ff744..bf72832 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/ReferenceEntities.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/ReferenceEntities.java @@ -57,7 +57,7 @@ public class ReferenceEntities { */ public static <E extends ReferenceEntity> void filterReferentielListByStatus( List<E> list) { - filterReferentielList(list, (Predicate<E>) IS_ACTIF_PREDICATE); + filterReferentielList(list, ReferenceEntities.<E>newEnablePredicate()); } @@ -95,6 +95,15 @@ public class ReferenceEntities { } }; + public static <R extends ReferenceEntity> Predicate<R> newEnablePredicate() { + return new Predicate<R>() { + @Override + public boolean apply(R r) { + return ReferenceStatus.disabled != r.getStatus(); + } + }; + } + public static void walk(ReferentielWalker walker) throws Exception { for (ObserveEntityEnum constant : Entities.REFERENCE_ENTITIES) { Class<? extends TopiaEntity> contractClass = constant.getContract(); diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/Vessels.java b/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/Vessels.java index 7e841dd..1faa5d0 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/Vessels.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/Vessels.java @@ -23,6 +23,8 @@ package fr.ird.observe.entities.referentiel; */ import com.google.common.base.Predicate; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Sets; import java.util.Set; @@ -34,9 +36,30 @@ import java.util.Set; */ public class Vessels { - public static Predicate<Vessel> newVesselByVesselTypeIdPredicate(Set<String> vesselTypeIds) { + //FIXME + private static final ImmutableSet<String> LONGLINE_VESSEL_TYPE_IDS = ImmutableSet.copyOf( + Sets.newHashSet("fr.ird.observe.entities.referentiel.VesselType#1239832675735#0.044156847891821505", + "fr.ird.observe.entities.referentiel.VesselType#1239832675736#0.8708229847859869", + "fr.ird.observe.entities.referentiel.VesselType#1239832686137#0.1")); - return new VesselByVesselTypeIdPredicate(vesselTypeIds); + //FIXME + private static final ImmutableSet<String> SEINE_VESSEL_TYPE_IDS = ImmutableSet.copyOf( + Sets.newHashSet("fr.ird.observe.entities.referentiel.VesselType#1239832675735#0.044156847891821505", + "fr.ird.observe.entities.referentiel.VesselType#1239832675735#0.307197212385357", + "fr.ird.observe.entities.referentiel.VesselType#1239832675735#0.7380146830307519", + "fr.ird.observe.entities.referentiel.VesselType#1239832675735#0.9086075071905084", + "fr.ird.observe.entities.referentiel.VesselType#1239832675737#0.43324169605639407")); + + + public static Predicate<Vessel> newVesselLonglinePredicate() { + + return new VesselByVesselTypeIdPredicate(LONGLINE_VESSEL_TYPE_IDS); + + } + + public static Predicate<Vessel> newVesselSeinePredicate() { + + return new VesselByVesselTypeIdPredicate(SEINE_VESSEL_TYPE_IDS); } 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 56ee9aa..cafc603 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 @@ -55,12 +55,28 @@ public class FormDto<R extends IdDto> extends AbstractFormDto { Optional<ReferenceSetDto> referenceSetDto = Iterables.tryFind(getLabels(), ReferenceSetDtos.newTypePredicate(type)); if (!referenceSetDto.isPresent()) { - throw new ReferenceSetNotFoundException(this, type); + throw new ReferenceSetNotFoundException(this, type, null); } return referenceSetDto.get(); } + public <D extends IdDto> ReferenceSetDto<D> getReferenceSetDto(Class<D> type, String name) { + + Optional<ReferenceSetDto> referenceSetDto = Iterables.tryFind(getLabels(), ReferenceSetDtos.newTypeNamePredicate(type, name)); + + if (!referenceSetDto.isPresent()) { + referenceSetDto = Iterables.tryFind(getLabels(), ReferenceSetDtos.newTypeNamePredicate(type, null)); + } + + if (!referenceSetDto.isPresent()) { + throw new ReferenceSetNotFoundException(this, type, name); + } + + return referenceSetDto.get(); + + } + public <D extends IdDto> ReferenceDto<D> getReferenceById(Class<D> type, String id) { ReferenceSetDto<D> referenceSetDto = getReferenceSetDto(type); diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDtos.java index 08acf5b..9800782 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDtos.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDtos.java @@ -43,7 +43,16 @@ public class ReferenceSetDtos extends AbstractReferenceSetDtos { Class<D> type, LinkedHashSet<R> labels, Date lastUpdate) { + return newReferenceSetDto(type, null, labels, lastUpdate); + } + + public static <D extends IdDto, R extends ReferenceDto<D>> ReferenceSetDto<D> newReferenceSetDto( + Class<D> type, + String name, + LinkedHashSet<R> labels, + Date lastUpdate) { ReferenceSetDto<D> dto = new ReferenceSetDto<>(type); + dto.setName(name); dto.setReference((LinkedHashSet) labels); dto.setLastUpdate(lastUpdate); return dto; @@ -76,5 +85,17 @@ public class ReferenceSetDtos extends AbstractReferenceSetDtos { } + public static <D extends IdDto, BeanType extends ReferenceSetDto> Predicate<BeanType> newTypeNamePredicate(final Class<D> type, final String name) { + return new Predicate<BeanType>() { + + @Override + public boolean apply(BeanType input) { + return Objects.equals(type, input.getType()) + && Objects.equals(name, input.getName()); + } + }; + + } + } 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 index 2a1e955..5694ce9 100644 --- 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 @@ -33,11 +33,14 @@ public class ReferenceSetNotFoundException extends RuntimeException { protected final Class<?> dtoType; + protected final String name; + protected final FormDto formDto; - public ReferenceSetNotFoundException(FormDto formDto, Class<?> dtoType) { + public ReferenceSetNotFoundException(FormDto formDto, Class<?> dtoType, String name) { this.dtoType = dtoType; this.formDto = formDto; + this.name = name; } public Class<?> getDtoType() { @@ -47,4 +50,8 @@ public class ReferenceSetNotFoundException extends RuntimeException { public FormDto getFormDto() { return formDto; } + + public String getName() { + return name; + } } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java index 034d079..e16d8d5 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java @@ -24,9 +24,13 @@ package fr.ird.observe.services; import com.google.common.base.Optional; import com.google.common.base.Preconditions; +import com.google.common.base.Predicate; +import com.google.common.base.Predicates; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Iterables; import com.google.common.collect.Multimap; +import com.google.common.collect.Sets; import fr.ird.observe.ObserveTopiaApplicationContext; import fr.ird.observe.ObserveTopiaPersistenceContext; import fr.ird.observe.entities.Entities; @@ -53,8 +57,11 @@ import fr.ird.observe.services.dto.ObserveModelInitializerRunner; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.ReferenceSetDtos; +import fr.ird.observe.services.dto.ReferenceTypeName; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.entity.ObserveEntitiesFilters; +import fr.ird.observe.services.entity.ObserveEntityFilter; import fr.ird.observe.services.service.ConcurrentModificationException; import fr.ird.observe.services.service.DataNotFoundException; import fr.ird.observe.services.service.DataSourceService; @@ -280,11 +287,11 @@ public class ObserveServiceTopia implements ObserveService { D dto = dtoBuilder.build(serviceContext.getReferentialLocale(), entity); // build label sets detected while copy (keep the reference for each label, or nothing if value not set) - ImmutableSet<Class<? extends IdDto>> referentialDtoTypes = dtoBuilder.getReferenceTypes(); + ImmutableSet<ReferenceTypeName> referenceTypesNames = dtoBuilder.getReferenceTypesNames(); ImmutableSet.Builder<ReferenceSetDto> labels = new ImmutableSet.Builder<>(); - for (Class<? extends IdDto> referentialDtoType : referentialDtoTypes) { + for (ReferenceTypeName referenceTypeName : referenceTypesNames) { - ReferenceSetDto referentialLabelSet = ReferenceSetDtos.newEmptyReferenceSetDto(referentialDtoType); + ReferenceSetDto referentialLabelSet = ReferenceSetDtos.newEmptyReferenceSetDto(referenceTypeName.getType()); labels.add(referentialLabelSet); } @@ -309,18 +316,38 @@ public class ObserveServiceTopia implements ObserveService { Class<D> dtoType, Class<E> entityType, E entity, - Class<? extends IdDto>... includeReferenceDtoTypes) { + ReferenceTypeName... includeReferenceDtoTypesNames) { try (EntityToDtoBuilder<E, D> dtoBuilder = EntityToDtoBuilder.create(entityType, dtoType)) { // copy entity - D dto = dtoBuilder.build(serviceContext.getReferentialLocale(), entity, includeReferenceDtoTypes); + D dto = dtoBuilder.build(serviceContext.getReferentialLocale(), entity, includeReferenceDtoTypesNames); // build label sets detected while copy - ImmutableSet<Class<? extends IdDto>> referenceDtoTypes = dtoBuilder.getReferenceTypes(); + ImmutableSet<ReferenceTypeName> referenceDtoTypesNames = dtoBuilder.getReferenceTypesNames(); + + + Set<ObserveEntityFilter> entitiesFilters = Sets.newHashSet(); + for (ReferenceTypeName referenceDtoTypeName : referenceDtoTypesNames) { + Class<TopiaEntity> entityParentType = getEntityType(referenceDtoTypeName.getParentType()); + Class<TopiaEntity> entityChildType = getEntityType(referenceDtoTypeName.getType()); + + ObserveEntityFilter filter = ObserveEntitiesFilters.getFilter( + entityParentType, + entityChildType, + referenceDtoTypeName.getType(), + referenceDtoTypeName.getProperty()); + entitiesFilters.add(filter); + + } + ImmutableSet.Builder<ReferenceSetDto> labels = new ImmutableSet.Builder<>(); - for (Class<? extends IdDto> referenceDtoType : referenceDtoTypes) { - ReferenceSetDto referenceSet = getReferenceSet((Class<ReferentialDto>) referenceDtoType); + for (ObserveEntityFilter filter : entitiesFilters) { + ReferenceSetDto referenceSet = getReferenceSet( + filter.getDtoType(), + filter.getPropertyName(), + filter.getEntityType(), + filter.getFilter()); labels.add(referenceSet); } FormDto<D> form = FormDtos.newFormDto(dtoType, dto, labels.build()); @@ -388,7 +415,16 @@ public class ObserveServiceTopia implements ObserveService { protected <D extends IdDto> ReferenceSetDto<D> getReferenceSet(Class<D> dtoType) { Class<TopiaEntity> entityType = getEntityType(dtoType); - List<TopiaEntity> entities = loadEntities(entityType); + return getReferenceSet(dtoType, null, entityType, Predicates.alwaysTrue()); + + } + + protected <D extends IdDto, E extends TopiaEntity> ReferenceSetDto<D> getReferenceSet( + Class<D> dtoType, + String propertyName, + Class<E> entityType, + Predicate<? super E> filter) { + Iterable<E> entities = Iterables.filter(loadEntities(entityType), filter); LinkedHashSet<ReferenceDto<D>> labels = new LinkedHashSet<>(); for (TopiaEntity entity : entities) { @@ -399,7 +435,7 @@ public class ObserveServiceTopia implements ObserveService { Optional<Date> lastUpdateOptional = getLastUpdate(entityType); - ReferenceSetDto labelSetDto = ReferenceSetDtos.newReferenceSetDto(dtoType, labels, lastUpdateOptional.orNull()); + ReferenceSetDto labelSetDto = ReferenceSetDtos.newReferenceSetDto(dtoType, propertyName, labels, lastUpdateOptional.orNull()); return labelSetDto; } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToDtoBuilder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToDtoBuilder.java index 83e7f96..14deb43 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToDtoBuilder.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToDtoBuilder.java @@ -29,6 +29,7 @@ import com.google.common.reflect.TypeToken; import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.ObserveDtoBinders; import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.ReferenceTypeName; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; @@ -56,7 +57,7 @@ public class EntityToDtoBuilder<E extends TopiaEntity, D extends IdDto> implemen private final Binder<E, D> binder; - private ImmutableSet<Class<? extends IdDto>> referencesTypes; + private ImmutableSet<ReferenceTypeName> referencesTypesNames; public static <E extends TopiaEntity, D extends IdDto> EntityToDtoBuilder<E, D> create(Class<E> entityType, Class<D> dtoType) { @@ -79,14 +80,14 @@ public class EntityToDtoBuilder<E extends TopiaEntity, D extends IdDto> implemen } - public D build(ReferentialLocale referentialLocale, E entity, Class<? extends IdDto> ... includeReferenceDtoTypes) { + public D build(ReferentialLocale referentialLocale, E entity, ReferenceTypeName ... includeReferenceTypesNames) { Preconditions.checkNotNull(referentialLocale, "'referentialLocale' can't be null."); Preconditions.checkNotNull(entity, "'entity' can't be null."); - ImmutableSet.Builder<Class<? extends IdDto>> referenceTypesBuilder = new ImmutableSet.Builder<>(); + ImmutableSet.Builder<ReferenceTypeName> referenceTypesBuilder = new ImmutableSet.Builder<>(); - for (Class<? extends IdDto> includeReferenceDtoType : includeReferenceDtoTypes) { + for (ReferenceTypeName includeReferenceDtoType : includeReferenceTypesNames) { referenceTypesBuilder.add(includeReferenceDtoType); } @@ -109,7 +110,8 @@ public class EntityToDtoBuilder<E extends TopiaEntity, D extends IdDto> implemen ParameterizedType type = (ParameterizedType) typeToken; dtoType = (Class) type.getActualTypeArguments()[0]; - referenceTypesBuilder.add(dtoType); + ReferenceTypeName referenceTypeName = new ReferenceTypeName(binder.getTargetType(), dtoType, propertyName); + referenceTypesBuilder.add(referenceTypeName); } else if (IdDto.class.isAssignableFrom(dtoType)) { @@ -147,7 +149,7 @@ public class EntityToDtoBuilder<E extends TopiaEntity, D extends IdDto> implemen for (Object entityValue : collection) { - IdDto dto = addEntity(dtoType, (TopiaEntity) entityValue, referentialLocale, useReference, referenceTypesBuilder); + IdDto dto = addEntity(dtoType, propertyName, (TopiaEntity) entityValue, referentialLocale, useReference, referenceTypesBuilder); dtoCollection.add(dto); } @@ -185,7 +187,7 @@ public class EntityToDtoBuilder<E extends TopiaEntity, D extends IdDto> implemen dtoType = rawType; } - propertyValue = addEntity(dtoType, entityValue, referentialLocale, useReference, referenceTypesBuilder); + propertyValue = addEntity(dtoType, propertyName, entityValue, referentialLocale, useReference, referenceTypesBuilder); addProperty(propertyName, propertyValue, dtoPropertiesBuilder); continue; @@ -202,17 +204,18 @@ public class EntityToDtoBuilder<E extends TopiaEntity, D extends IdDto> implemen ImmutableMap<String, Object> properties = dtoPropertiesBuilder.build(); binder.injectProperties(properties, result); - referencesTypes = referenceTypesBuilder.build(); + referencesTypesNames = referenceTypesBuilder.build(); return result; } protected <EE extends TopiaEntity> IdDto addEntity(Class dtoType, - EE entityValue, + String propertyName, + TopiaEntity entityValue, ReferentialLocale referentialLocale, boolean useReference, - ImmutableSet.Builder<Class<? extends IdDto>> referenceTypesBuilder) { + ImmutableSet.Builder<ReferenceTypeName> referenceTypesBuilder) { IdDto dto; boolean isReferential = ReferentialDto.class.isAssignableFrom(dtoType); @@ -222,11 +225,11 @@ public class EntityToDtoBuilder<E extends TopiaEntity, D extends IdDto> implemen if (isReferential) { - dto = entityToReferentialRef(referentialLocale, dtoType, entityType, entityValue, referenceTypesBuilder); + dto = entityToReferentialRef(referentialLocale, dtoType, entityType, propertyName, entityValue, referenceTypesBuilder); } else { - dto = entityToRef(dtoType, referentialLocale, entityValue, referenceTypesBuilder); + dto = entityToRef(dtoType, referentialLocale, propertyName, entityValue, referenceTypesBuilder); } @@ -240,8 +243,8 @@ public class EntityToDtoBuilder<E extends TopiaEntity, D extends IdDto> implemen } - public ImmutableSet<Class<? extends IdDto>> getReferenceTypes() { - return referencesTypes; + public ImmutableSet<ReferenceTypeName> getReferenceTypesNames() { + return referencesTypesNames; } protected EntityToDtoBuilder(D result, Binder<E, D> binder) { @@ -277,29 +280,31 @@ public class EntityToDtoBuilder<E extends TopiaEntity, D extends IdDto> implemen } - protected <EE extends TopiaEntity, R extends IdDto> ReferenceDto<R> entityToRef(Class<R> dtoType, ReferentialLocale referentialLocale, EE entityValue, ImmutableSet.Builder<Class<? extends IdDto>> referenceTypesBuilder) { + protected <EE extends TopiaEntity, R extends IdDto> ReferenceDto<R> entityToRef(Class dtoType, ReferentialLocale referentialLocale, String propertyName, TopiaEntity entityValue, ImmutableSet.Builder<ReferenceTypeName> referenceTypesBuilder) { - referenceTypesBuilder.add(dtoType); + ReferenceTypeName referenceTypeName = new ReferenceTypeName(binder.getTargetType(), dtoType, propertyName); + referenceTypesBuilder.add(referenceTypeName); ReferenceDto<R> dto = EntityToReferenceDtoBuilder.build(dtoType, referentialLocale, entityValue); dto.setId(entityValue.getTopiaId()); return dto; } - protected <EE extends TopiaEntity, R extends ReferentialDto> ReferentialReferenceDto<R> entityToReferentialRef(ReferentialLocale referentialLocale, Class<R> dtoType, Class<EE> entityType, EE entityValue, ImmutableSet.Builder<Class<? extends IdDto>> referenceTypesBuilder) { + protected <EE extends TopiaEntity, R extends ReferentialDto> ReferentialReferenceDto<R> entityToReferentialRef(ReferentialLocale referentialLocale, Class dtoType, Class entityType, String propertyName, TopiaEntity entityValue, ImmutableSet.Builder<ReferenceTypeName> referenceTypesBuilder) { - referenceTypesBuilder.add(dtoType); + ReferenceTypeName referenceTypeName = new ReferenceTypeName(binder.getTargetType(), dtoType, propertyName); + referenceTypesBuilder.add(referenceTypeName); ReferentialReferenceDto<R> dto = EntityToReferentialReferenceDtoBuilder.build(dtoType, referentialLocale, entityValue); dto.setId(entityValue.getTopiaId()); return dto; } - protected <EE extends TopiaEntity, R extends IdDto> R entityToDto(ReferentialLocale referentialLocale, Class<R> dtoType, Class<EE> entityType, EE entityValue, ImmutableSet.Builder<Class<? extends IdDto>> referenceTypesBuilder) { + protected <EE extends TopiaEntity, R extends IdDto> R entityToDto(ReferentialLocale referentialLocale, Class dtoType, Class entityType, EE entityValue, ImmutableSet.Builder<ReferenceTypeName> referenceTypesBuilder) { EntityToDtoBuilder<EE, R> dtoBuilder = EntityToDtoBuilder.create(entityType, dtoType); R dto = dtoBuilder.build(referentialLocale, entityValue); - referenceTypesBuilder.addAll(dtoBuilder.getReferenceTypes()); + referenceTypesBuilder.addAll(dtoBuilder.getReferenceTypesNames()); dto.setId(entityValue.getTopiaId()); return dto; diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ReferenceTypeName.java b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ReferenceTypeName.java new file mode 100644 index 0000000..165cd06 --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ReferenceTypeName.java @@ -0,0 +1,31 @@ +package fr.ird.observe.services.dto; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class ReferenceTypeName { + + protected final Class<? extends IdDto> parentType; + + protected final Class<? extends IdDto> type; + + protected final String property; + + public ReferenceTypeName(Class<? extends IdDto> parentType, Class<? extends IdDto> type, String property) { + this.parentType = parentType; + this.type = type; + this.property = property; + } + + public Class<? extends IdDto> getParentType() { + return parentType; + } + + public Class<? extends IdDto> getType() { + return type; + } + + public String getProperty() { + return property; + } +} diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/entity/ObserveEntitiesFilters.java b/observe-services-topia/src/main/java/fr/ird/observe/services/entity/ObserveEntitiesFilters.java new file mode 100644 index 0000000..e96e87d --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/entity/ObserveEntitiesFilters.java @@ -0,0 +1,93 @@ +package fr.ird.observe.services.entity; + +import com.google.common.base.Predicate; +import com.google.common.base.Predicates; +import com.google.common.collect.Maps; +import fr.ird.observe.entities.referentiel.Persons; +import fr.ird.observe.entities.referentiel.ReferenceEntities; +import fr.ird.observe.entities.referentiel.ReferenceEntity; +import fr.ird.observe.entities.referentiel.Vessels; +import fr.ird.observe.entities.seine.TripSeine; +import fr.ird.observe.services.dto.IdDto; +import org.nuiton.topia.persistence.TopiaEntity; + +import java.util.Map; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class ObserveEntitiesFilters { + + protected static Map<Class<? extends TopiaEntity>, Map<String, Predicate<? extends TopiaEntity>>> FILTERS = null; + + protected static <P extends TopiaEntity> void addFilter(Class<P> parentType, String propertyName, Predicate<? extends TopiaEntity> filter) { + + Map<String, Predicate<? extends TopiaEntity>> filterByProperty = FILTERS.get(parentType); + + if (filterByProperty == null) { + filterByProperty = Maps.newHashMap(); + FILTERS.put(parentType, filterByProperty); + } + + filterByProperty.put(propertyName, filter); + + } + + public static <P extends TopiaEntity, C extends TopiaEntity, D extends IdDto> ObserveEntityFilter<P, C, D> getFilter( + Class<P> parentType, + Class<C> propertyType, + Class<D> dtoType, + String propertyName) { + + if (FILTERS == null) { + init(); + } + + Predicate<C> predicate = null; + + Map<String, Predicate<? extends TopiaEntity>> filterByProperty = FILTERS.get(parentType); + + if (filterByProperty != null) { + predicate = (Predicate<C>) filterByProperty.get(propertyName); + } + + ObserveEntityFilter<P, C, D> observeEntityFilter; + + if (predicate == null) { + + if (ReferenceEntity.class.isAssignableFrom(propertyType)) { + + predicate = (Predicate<C>) ReferenceEntities.newEnablePredicate(); + + } else { + + predicate = Predicates.alwaysTrue(); + } + + observeEntityFilter = new ObserveEntityFilter<P, C, D>(parentType, propertyType, dtoType, null, predicate); + + } else { + if (ReferenceEntity.class.isAssignableFrom(propertyType)) { + + predicate = Predicates.and(predicate, (Predicate<C>) ReferenceEntities.newEnablePredicate()); + + } + + observeEntityFilter = new ObserveEntityFilter<P, C, D>(parentType, propertyType, dtoType, propertyName, predicate); + } + + return observeEntityFilter; + + } + + public static void init() { + FILTERS = Maps.newHashMap(); + // TripSeine + addFilter(TripSeine.class, TripSeine.PROPERTY_CAPTAIN, Persons.newCaptainPredicate()); + addFilter(TripSeine.class, TripSeine.PROPERTY_OBSERVER, Persons.newObserverPredicate()); + addFilter(TripSeine.class, TripSeine.PROPERTY_DATA_ENTRY_OPERATOR, Persons.newDataEntryOperatorPredicate()); + addFilter(TripSeine.class, TripSeine.PROPERTY_VESSEL, Vessels.newVesselSeinePredicate()); + + } + +} diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/entity/ObserveEntityFilter.java b/observe-services-topia/src/main/java/fr/ird/observe/services/entity/ObserveEntityFilter.java new file mode 100644 index 0000000..74d8d64 --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/entity/ObserveEntityFilter.java @@ -0,0 +1,72 @@ +package fr.ird.observe.services.entity; + +import com.google.common.base.Predicate; +import fr.ird.observe.services.dto.IdDto; +import org.nuiton.topia.persistence.TopiaEntity; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class ObserveEntityFilter<P extends TopiaEntity, C extends TopiaEntity, D extends IdDto> { + + protected final Class<P> parentType; + + protected final Class<C> entityType; + + protected final Class<D> dtoType; + + protected final String propertyName; + + protected final Predicate<C> filter; + + public ObserveEntityFilter(Class<P> parentType, Class<C> entityType, Class<D> dtoType, String propertyName, Predicate<C> filter) { + this.parentType = parentType; + this.entityType = entityType; + this.dtoType = dtoType; + this.propertyName = propertyName; + this.filter = filter; + } + + public Class<P> getParentType() { + return parentType; + } + + public Class<C> getEntityType() { + return entityType; + } + + public Class<D> getDtoType() { + return dtoType; + } + + public String getPropertyName() { + return propertyName; + } + + public Predicate<C> getFilter() { + return filter; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + ObserveEntityFilter<?, ?, ?> filter = (ObserveEntityFilter<?, ?, ?>) o; + + if (!parentType.equals(filter.parentType)) return false; + if (!entityType.equals(filter.entityType)) return false; + if (!dtoType.equals(filter.dtoType)) return false; + return !(propertyName != null ? !propertyName.equals(filter.propertyName) : filter.propertyName != null); + + } + + @Override + public int hashCode() { + int result = parentType.hashCode(); + result = 31 * result + entityType.hashCode(); + result = 31 * result + dtoType.hashCode(); + result = 31 * result + (propertyName != null ? propertyName.hashCode() : 0); + return result; + } +} diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineEncouterServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineEncouterServiceTopia.java index 7d18932..03e6aaa 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineEncouterServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineEncouterServiceTopia.java @@ -25,7 +25,9 @@ package fr.ird.observe.services.service.longline; import fr.ird.observe.entities.longline.ActivityLongline; import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.ReferenceTypeName; import fr.ird.observe.services.dto.longline.ActivityLonglineEncouterDto; +import fr.ird.observe.services.dto.longline.EncounterDto; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.longline.EncounterTypeDto; @@ -54,8 +56,8 @@ public class ActivityLongLineEncouterServiceTopia extends ObserveServiceTopia im ActivityLonglineEncouterDto.class, ActivityLongline.class, activityLongline, - EncounterTypeDto.class, - SpeciesDto.class); + new ReferenceTypeName(EncounterDto.class, EncounterTypeDto.class, EncounterDto.PROPERTY_ENCOUNTER_TYPE), + new ReferenceTypeName(EncounterDto.class, SpeciesDto.class, EncounterDto.PROPERTY_SPECIES)); return form; diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineSensorUsedServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineSensorUsedServiceTopia.java index 975cc89..d44984a 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineSensorUsedServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineSensorUsedServiceTopia.java @@ -25,7 +25,9 @@ package fr.ird.observe.services.service.longline; import fr.ird.observe.entities.longline.ActivityLongline; import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.ReferenceTypeName; import fr.ird.observe.services.dto.longline.ActivityLonglineSensorUsedDto; +import fr.ird.observe.services.dto.longline.SensorUsedDto; import fr.ird.observe.services.dto.referential.longline.SensorBrandDto; import fr.ird.observe.services.dto.referential.longline.SensorDataFormatDto; import fr.ird.observe.services.dto.referential.longline.SensorTypeDto; @@ -55,9 +57,9 @@ public class ActivityLongLineSensorUsedServiceTopia extends ObserveServiceTopia ActivityLonglineSensorUsedDto.class, ActivityLongline.class, activityLongline, - SensorTypeDto.class, - SensorBrandDto.class, - SensorDataFormatDto.class); + new ReferenceTypeName(SensorUsedDto.class, SensorTypeDto.class, SensorUsedDto.PROPERTY_SENSOR_TYPE), + new ReferenceTypeName(SensorUsedDto.class, SensorBrandDto.class, SensorUsedDto.PROPERTY_SENSOR_BRAND), + new ReferenceTypeName(SensorUsedDto.class, SensorDataFormatDto.class, SensorUsedDto.PROPERTY_SENSOR_DATA_FORMAT)); return form; 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 index f4a89fd..79a88d1 100644 --- 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 @@ -27,7 +27,9 @@ 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.ReferenceTypeName; import fr.ird.observe.services.dto.longline.GearUseFeaturesLonglineDto; +import fr.ird.observe.services.dto.longline.GearUseFeaturesMeasurementLonglineDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.referential.GearCaracteristicDto; import fr.ird.observe.services.dto.referential.GearDto; @@ -76,8 +78,8 @@ public class GearUseFeaturesLonglineServiceTopia extends ObserveServiceTopia imp GearUseFeaturesLonglineDto.class, GearUseFeaturesLongline.class, featuresLongline, - GearDto.class, - GearCaracteristicDto.class); + new ReferenceTypeName(GearUseFeaturesLonglineDto.class, GearDto.class, GearUseFeaturesLonglineDto.PROPERTY_GEAR), + new ReferenceTypeName(GearUseFeaturesMeasurementLonglineDto.class, GearCaracteristicDto.class, GearUseFeaturesMeasurementLonglineDto.PROPERTY_GEAR_CARACTERISTIC)); return form; } @@ -91,8 +93,8 @@ public class GearUseFeaturesLonglineServiceTopia extends ObserveServiceTopia imp GearUseFeaturesLonglineDto.class, GearUseFeaturesLongline.class, featuresLongline, - GearDto.class, - GearCaracteristicDto.class); + new ReferenceTypeName(GearUseFeaturesLonglineDto.class, GearDto.class, GearUseFeaturesLonglineDto.PROPERTY_GEAR), + new ReferenceTypeName(GearUseFeaturesMeasurementLonglineDto.class, GearCaracteristicDto.class, GearUseFeaturesMeasurementLonglineDto.PROPERTY_GEAR_CARACTERISTIC)); return form; } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/SetLonglineCatchServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/SetLonglineCatchServiceTopia.java index ead0657..db7b96e 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/SetLonglineCatchServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/SetLonglineCatchServiceTopia.java @@ -25,10 +25,14 @@ package fr.ird.observe.services.service.longline; import fr.ird.observe.entities.longline.SetLongline; import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.ReferenceTypeName; import fr.ird.observe.services.dto.longline.BasketDto; import fr.ird.observe.services.dto.longline.BranchlineDto; +import fr.ird.observe.services.dto.longline.CatchLonglineDto; import fr.ird.observe.services.dto.longline.SectionDto; import fr.ird.observe.services.dto.longline.SetLonglineCatchDto; +import fr.ird.observe.services.dto.longline.SizeMeasureDto; +import fr.ird.observe.services.dto.longline.WeightMeasureDto; import fr.ird.observe.services.dto.referential.SexDto; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.longline.CatchFateLonglineDto; @@ -66,18 +70,20 @@ public class SetLonglineCatchServiceTopia extends ObserveServiceTopia implements SetLonglineCatchDto.class, SetLongline.class, setLongline, - SpeciesDto.class, - HealthnessDto.class, - HookPositionDto.class, - CatchFateLonglineDto.class, - StomacFullnessDto.class, - SexDto.class, - MaturityStatusDto.class, - SizeMeasureTypeDto.class, - WeightMeasureTypeDto.class, - SectionDto.class, - BasketDto.class, - BranchlineDto.class); + new ReferenceTypeName(CatchLonglineDto.class, SpeciesDto.class, CatchLonglineDto.PROPERTY_SPECIES_CATCH), + new ReferenceTypeName(CatchLonglineDto.class, HealthnessDto.class, CatchLonglineDto.PROPERTY_CATCH_HEALTHNESS), + new ReferenceTypeName(CatchLonglineDto.class, HookPositionDto.class, CatchLonglineDto.PROPERTY_HOOK_POSITION), + new ReferenceTypeName(CatchLonglineDto.class, CatchFateLonglineDto.class, CatchLonglineDto.PROPERTY_CATCH_FATE_LONGLINE), + new ReferenceTypeName(CatchLonglineDto.class, HealthnessDto.class, CatchLonglineDto.PROPERTY_DISCARD_HEALTHNESS), + new ReferenceTypeName(CatchLonglineDto.class, SpeciesDto.class, CatchLonglineDto.PROPERTY_PREDATOR), + new ReferenceTypeName(CatchLonglineDto.class, StomacFullnessDto.class, CatchLonglineDto.PROPERTY_STOMAC_FULLNESS), + new ReferenceTypeName(CatchLonglineDto.class, SexDto.class, CatchLonglineDto.PROPERTY_SEX), + new ReferenceTypeName(CatchLonglineDto.class, MaturityStatusDto.class, CatchLonglineDto.PROPERTY_MATURITY_STATUS), + new ReferenceTypeName(SizeMeasureDto.class, SizeMeasureTypeDto.class, SizeMeasureDto.PROPERTY_SIZE_MEASURE_TYPE), + new ReferenceTypeName(WeightMeasureDto.class, WeightMeasureTypeDto.class, WeightMeasureDto.PROPERTY_WEIGHT_MEASURE_TYPE), + new ReferenceTypeName(CatchLonglineDto.class, SectionDto.class, CatchLonglineDto.PROPERTY_SECTION), + new ReferenceTypeName(CatchLonglineDto.class, BasketDto.class, CatchLonglineDto.PROPERTY_BASKET), + new ReferenceTypeName(CatchLonglineDto.class, BranchlineDto.class, CatchLonglineDto.PROPERTY_BRANCHLINE)); return form; } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/SetLonglineDetailCompositionServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/SetLonglineDetailCompositionServiceTopia.java index 5ca5342..96cea89 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/SetLonglineDetailCompositionServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/SetLonglineDetailCompositionServiceTopia.java @@ -25,6 +25,8 @@ package fr.ird.observe.services.service.longline; import fr.ird.observe.entities.longline.SetLongline; import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.ReferenceTypeName; +import fr.ird.observe.services.dto.longline.BranchlineDto; import fr.ird.observe.services.dto.longline.SetLonglineDetailCompositionDto; import fr.ird.observe.services.dto.referential.longline.BaitHaulingStatusDto; import fr.ird.observe.services.dto.referential.longline.BaitSettingStatusDto; @@ -60,12 +62,13 @@ public class SetLonglineDetailCompositionServiceTopia extends ObserveServiceTopi SetLonglineDetailCompositionDto.class, SetLongline.class, setLongline, - LineTypeDto.class, - HookTypeDto.class, - HookSizeDto.class, - BaitTypeDto.class, - BaitSettingStatusDto.class, - BaitHaulingStatusDto.class); + new ReferenceTypeName(BranchlineDto.class, LineTypeDto.class, BranchlineDto.PROPERTY_TOP_TYPE), + new ReferenceTypeName(BranchlineDto.class, LineTypeDto.class, BranchlineDto.PROPERTY_TRACELINE_TYPE), + new ReferenceTypeName(BranchlineDto.class, HookTypeDto.class, BranchlineDto.PROPERTY_HOOK_TYPE), + new ReferenceTypeName(BranchlineDto.class, HookSizeDto.class, BranchlineDto.PROPERTY_HOOK_SIZE), + new ReferenceTypeName(BranchlineDto.class, BaitTypeDto.class, BranchlineDto.PROPERTY_BAIT_TYPE), + new ReferenceTypeName(BranchlineDto.class, BaitSettingStatusDto.class, BranchlineDto.PROPERTY_BAIT_SETTING_STATUS), + new ReferenceTypeName(BranchlineDto.class, BaitHaulingStatusDto.class, BranchlineDto.PROPERTY_BAIT_HAULING_STATUS)); return form; } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/SetLonglineGlobalCompositionServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/SetLonglineGlobalCompositionServiceTopia.java index 8e423bf..88f423f 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/SetLonglineGlobalCompositionServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/SetLonglineGlobalCompositionServiceTopia.java @@ -25,6 +25,11 @@ package fr.ird.observe.services.service.longline; import fr.ird.observe.entities.longline.SetLongline; import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.ReferenceTypeName; +import fr.ird.observe.services.dto.longline.BaitsCompositionDto; +import fr.ird.observe.services.dto.longline.BranchlinesCompositionDto; +import fr.ird.observe.services.dto.longline.FloatlinesCompositionDto; +import fr.ird.observe.services.dto.longline.HooksCompositionDto; import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; import fr.ird.observe.services.dto.referential.longline.BaitSettingStatusDto; import fr.ird.observe.services.dto.referential.longline.BaitTypeDto; @@ -60,12 +65,14 @@ public class SetLonglineGlobalCompositionServiceTopia extends ObserveServiceTopi SetLonglineGlobalCompositionDto.class, SetLongline.class, setLongline, - LineTypeDto.class, - HookTypeDto.class, - HookSizeDto.class, - BaitSettingStatusDto.class, - BaitTypeDto.class, - MitigationTypeDto.class); + new ReferenceTypeName(FloatlinesCompositionDto.class, LineTypeDto.class, FloatlinesCompositionDto.PROPERTY_LINE_TYPE), + new ReferenceTypeName(BranchlinesCompositionDto.class, LineTypeDto.class, BranchlinesCompositionDto.PROPERTY_TOP_TYPE), + new ReferenceTypeName(BranchlinesCompositionDto.class, LineTypeDto.class, BranchlinesCompositionDto.PROPERTY_TRACELINE_TYPE), + new ReferenceTypeName(HooksCompositionDto.class, HookTypeDto.class, HooksCompositionDto.PROPERTY_HOOK_TYPE), + new ReferenceTypeName(HooksCompositionDto.class, HookSizeDto.class, HooksCompositionDto.PROPERTY_HOOK_SIZE), + new ReferenceTypeName(BaitsCompositionDto.class, BaitSettingStatusDto.class, BaitsCompositionDto.PROPERTY_BAIT_SETTING_STATUS), + new ReferenceTypeName(BaitsCompositionDto.class, BaitTypeDto.class, BaitsCompositionDto.PROPERTY_BAIT_TYPE), + new ReferenceTypeName(SetLonglineGlobalCompositionDto.class, MitigationTypeDto.class, SetLonglineGlobalCompositionDto.PROPERTY_MITIGATION_TYPE)); return form; } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/TdrServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/TdrServiceTopia.java index 1f5c8e7..3f56923 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/TdrServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/TdrServiceTopia.java @@ -25,10 +25,12 @@ package fr.ird.observe.services.service.longline; import fr.ird.observe.entities.longline.SetLongline; import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.ReferenceTypeName; import fr.ird.observe.services.dto.longline.BasketDto; import fr.ird.observe.services.dto.longline.BranchlineDto; import fr.ird.observe.services.dto.longline.SectionDto; import fr.ird.observe.services.dto.longline.SetLonglineTdrDto; +import fr.ird.observe.services.dto.longline.TdrDto; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.longline.ItemHorizontalPositionDto; import fr.ird.observe.services.dto.referential.longline.ItemVerticalPositionDto; @@ -61,13 +63,13 @@ public class TdrServiceTopia extends ObserveServiceTopia implements TdrService { SetLonglineTdrDto.class, SetLongline.class, setLongline, - SensorBrandDto.class, - ItemHorizontalPositionDto.class, - ItemVerticalPositionDto.class, - SpeciesDto.class, - SectionDto.class, - BasketDto.class, - BranchlineDto.class); + new ReferenceTypeName(TdrDto.class, SensorBrandDto.class, TdrDto.PROPERTY_SENSOR_BRAND), + new ReferenceTypeName(TdrDto.class, ItemHorizontalPositionDto.class, TdrDto.PROPERTY_ITEM_HORIZONTAL_POSITION), + new ReferenceTypeName(TdrDto.class, ItemVerticalPositionDto.class, TdrDto.PROPERTY_ITEM_VERTICAL_POSITION), + new ReferenceTypeName(TdrDto.class, SpeciesDto.class, TdrDto.PROPERTY_SPECIES), + new ReferenceTypeName(TdrDto.class, SectionDto.class, TdrDto.PROPERTY_SECTION), + new ReferenceTypeName(TdrDto.class, BasketDto.class, TdrDto.PROPERTY_BASKET), + new ReferenceTypeName(TdrDto.class, BranchlineDto.class, TdrDto.PROPERTY_BRANCHLINE)); return form; } 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 3fb5b79..f5430af 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 @@ -27,8 +27,10 @@ import fr.ird.observe.entities.seine.GearUseFeaturesSeine; import fr.ird.observe.entities.seine.TripSeine; import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.ReferenceTypeName; import fr.ird.observe.services.dto.referential.GearCaracteristicDto; import fr.ird.observe.services.dto.referential.GearDto; +import fr.ird.observe.services.dto.seine.GearUseFeaturesMeasurementSeineDto; import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.services.service.DataNotFoundException; @@ -76,7 +78,8 @@ public class GearUseFeaturesSeineServiceTopia extends ObserveServiceTopia implem GearUseFeaturesSeineDto.class, GearUseFeaturesSeine.class, featuresSeine, - GearDto.class, GearCaracteristicDto.class); + new ReferenceTypeName(GearUseFeaturesSeineDto.class, GearDto.class, GearUseFeaturesSeineDto.PROPERTY_GEAR), + new ReferenceTypeName(GearUseFeaturesMeasurementSeineDto.class, GearCaracteristicDto.class, GearUseFeaturesMeasurementSeineDto.PROPERTY_GEAR_CARACTERISTIC)); return form; } @@ -90,7 +93,8 @@ public class GearUseFeaturesSeineServiceTopia extends ObserveServiceTopia implem GearUseFeaturesSeineDto.class, GearUseFeaturesSeine.class, featuresSeine, - GearDto.class, GearCaracteristicDto.class); + new ReferenceTypeName(GearUseFeaturesSeineDto.class, GearDto.class, GearUseFeaturesSeineDto.PROPERTY_GEAR), + new ReferenceTypeName(GearUseFeaturesMeasurementSeineDto.class, GearCaracteristicDto.class, GearUseFeaturesMeasurementSeineDto.PROPERTY_GEAR_CARACTERISTIC)); return form; } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/NonTargetCatchServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/NonTargetCatchServiceTopia.java index a7db8ca..4aee275 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/NonTargetCatchServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/NonTargetCatchServiceTopia.java @@ -25,8 +25,10 @@ package fr.ird.observe.services.service.seine; 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.ReferenceTypeName; import fr.ird.observe.services.dto.referential.seine.ReasonForDiscardDto; import fr.ird.observe.services.dto.referential.seine.SpeciesFateDto; +import fr.ird.observe.services.dto.seine.NonTargetCatchDto; import fr.ird.observe.services.dto.seine.SetSeineNonTargetCatchDto; /** @@ -53,7 +55,8 @@ public class NonTargetCatchServiceTopia extends ObserveServiceTopia implements N SetSeineNonTargetCatchDto.class, SetSeine.class, setSeine, - SpeciesFateDto.class, ReasonForDiscardDto.class); + new ReferenceTypeName(NonTargetCatchDto.class, SpeciesFateDto.class, NonTargetCatchDto.PROPERTY_SPECIES_FATE), + new ReferenceTypeName(NonTargetCatchDto.class, ReasonForDiscardDto.class, NonTargetCatchDto.PROPERTY_REASON_FOR_DISCARD)); return form; } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ObjectObservedSpeciesServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ObjectObservedSpeciesServiceTopia.java index 034d26f..9e1b4f4 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ObjectObservedSpeciesServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ObjectObservedSpeciesServiceTopia.java @@ -25,9 +25,11 @@ package fr.ird.observe.services.service.seine; import fr.ird.observe.entities.seine.FloatingObject; import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.ReferenceTypeName; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.seine.SpeciesStatusDto; import fr.ird.observe.services.dto.seine.FloatingObjectObservedSpeciesDto; +import fr.ird.observe.services.dto.seine.ObjectObservedSpeciesDto; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com @@ -60,7 +62,8 @@ public class ObjectObservedSpeciesServiceTopia extends ObserveServiceTopia imple FloatingObjectObservedSpeciesDto.class, FloatingObject.class, floatingObject, - SpeciesDto.class, SpeciesStatusDto.class); + new ReferenceTypeName(ObjectObservedSpeciesDto.class, SpeciesDto.class, ObjectObservedSpeciesDto.PROPERTY_SPECIES), + new ReferenceTypeName(ObjectObservedSpeciesDto.class, SpeciesStatusDto.class, ObjectObservedSpeciesDto.PROPERTY_SPECIES_STATUS)); return form; } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ObjectSchoolEstimateServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ObjectSchoolEstimateServiceTopia.java index 2c8626d..440a9e9 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ObjectSchoolEstimateServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ObjectSchoolEstimateServiceTopia.java @@ -25,8 +25,11 @@ package fr.ird.observe.services.service.seine; import fr.ird.observe.entities.seine.FloatingObject; import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.ReferenceTypeName; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.seine.FloatingObjectSchoolEstimateDto; +import fr.ird.observe.services.dto.seine.ObjectObservedSpeciesDto; +import fr.ird.observe.services.dto.seine.ObjectSchoolEstimateDto; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com @@ -56,7 +59,7 @@ public class ObjectSchoolEstimateServiceTopia extends ObserveServiceTopia implem FloatingObjectSchoolEstimateDto.class, FloatingObject.class, floatingObject, - SpeciesDto.class); + new ReferenceTypeName(ObjectSchoolEstimateDto.class, SpeciesDto.class, ObjectObservedSpeciesDto.PROPERTY_SPECIES)); return form; } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/SchoolEstimateServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/SchoolEstimateServiceTopia.java index 143fc31..1ffa6e7 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/SchoolEstimateServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/SchoolEstimateServiceTopia.java @@ -25,7 +25,9 @@ package fr.ird.observe.services.service.seine; 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.ReferenceTypeName; import fr.ird.observe.services.dto.referential.SpeciesDto; +import fr.ird.observe.services.dto.seine.SchoolEstimateDto; import fr.ird.observe.services.dto.seine.SetSeineSchoolEstimateDto; /** @@ -51,7 +53,7 @@ public class SchoolEstimateServiceTopia extends ObserveServiceTopia implements S SetSeineSchoolEstimateDto.class, SetSeine.class, setSeine, - SpeciesDto.class); + new ReferenceTypeName(SchoolEstimateDto.class, SpeciesDto.class, SchoolEstimateDto.PROPERTY_SPECIES)); return 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 index 8d2e108..207c70b 100644 --- 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 @@ -31,8 +31,10 @@ 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.ReferenceTypeName; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.seine.SetSeineDto; +import fr.ird.observe.services.dto.seine.TargetLengthDto; import fr.ird.observe.services.dto.seine.TargetSampleDto; import java.util.Collection; @@ -89,7 +91,7 @@ public class TargetSampleServiceTopia extends ObserveServiceTopia implements Tar TargetSampleDto.class, TargetSample.class, targetSample, - SpeciesDto.class); + new ReferenceTypeName(TargetLengthDto.class, SpeciesDto.class, TargetLengthDto.PROPERTY_SPECIES)); // on filtre la list des espéces cibles Set<Species> speciesSet = Sets.newLinkedHashSet(); diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TransmittingBuoyOperationServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TransmittingBuoyOperationServiceTopia.java index a505456..9503954 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TransmittingBuoyOperationServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TransmittingBuoyOperationServiceTopia.java @@ -25,9 +25,11 @@ package fr.ird.observe.services.service.seine; import fr.ird.observe.entities.seine.FloatingObject; import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.ReferenceTypeName; import fr.ird.observe.services.dto.referential.seine.TransmittingBuoyOperationDto; import fr.ird.observe.services.dto.referential.seine.TransmittingBuoyTypeDto; import fr.ird.observe.services.dto.seine.FloatingObjectTransmittingBuoyDto; +import fr.ird.observe.services.dto.seine.TransmittingBuoyDto; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com @@ -57,8 +59,8 @@ public class TransmittingBuoyOperationServiceTopia extends ObserveServiceTopia i FloatingObjectTransmittingBuoyDto.class, FloatingObject.class, floatingObject, - TransmittingBuoyOperationDto.class, - TransmittingBuoyTypeDto.class); + new ReferenceTypeName(TransmittingBuoyDto.class, TransmittingBuoyOperationDto.class, TransmittingBuoyDto.PROPERTY_TRANSMITTING_BUOY_OPERATION), + new ReferenceTypeName(TransmittingBuoyDto.class, TransmittingBuoyTypeDto.class, TransmittingBuoyDto.PROPERTY_TRANSMITTING_BUOY_TYPE)); return form; } diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/builder/EntityToDtoBuilderTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/builder/EntityToDtoBuilderTest.java index 3330c86..16805b2 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/builder/EntityToDtoBuilderTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/builder/EntityToDtoBuilderTest.java @@ -22,6 +22,7 @@ package fr.ird.observe.services.builder; * #L% */ +import com.google.common.base.Function; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; import fr.ird.observe.entities.constants.GearType; @@ -41,6 +42,7 @@ import fr.ird.observe.entities.seine.GearUseFeaturesSeineImpl; import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.ReferenceTypeName; import fr.ird.observe.services.dto.ReferenceValueNotFoundException; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.GearCaracteristicDto; @@ -105,13 +107,13 @@ public class EntityToDtoBuilderTest { EntityToDtoBuilder<Program, ProgramDto> builder = EntityToDtoBuilder.create(Program.class, ProgramDto.class); ProgramDto programDto = builder.build(ReferentialLocale.FR, program); - ImmutableSet<Class<? extends IdDto>> referentialDtoTypes = builder.getReferenceTypes(); + ImmutableSet<ReferenceTypeName> referentialDtoTypes = builder.getReferenceTypesNames(); // On verifie les types de listes de labels détectées Assert.assertNotNull(referentialDtoTypes); Assert.assertEquals(1, referentialDtoTypes.size()); - Assert.assertTrue(referentialDtoTypes.contains(OrganismDto.class)); + Assert.assertEquals(OrganismDto.class, Iterables.get(referentialDtoTypes, 0).getType()); // On vérife que le program a bien été copié Assert.assertEquals(program.getCode(), programDto.getCode()); @@ -214,15 +216,21 @@ public class EntityToDtoBuilderTest { EntityToDtoBuilder<GearUseFeaturesSeine, GearUseFeaturesSeineDto> builder = EntityToDtoBuilder.create(GearUseFeaturesSeine.class, GearUseFeaturesSeineDto.class); GearUseFeaturesSeineDto featuresDto = builder.build(ReferentialLocale.FR, features); - ImmutableSet<Class<? extends IdDto>> referentialDtoTypes = builder.getReferenceTypes(); + ImmutableSet<ReferenceTypeName> referentialDtoTypes = builder.getReferenceTypesNames(); // On verifie les types de listes de labels détectées Assert.assertNotNull(referentialDtoTypes); Assert.assertEquals(2, referentialDtoTypes.size()); - Assert.assertTrue(referentialDtoTypes.contains(GearDto.class)); - Assert.assertTrue(referentialDtoTypes.contains(GearCaracteristicDto.class)); + Iterable<Class<? extends IdDto>> types = Iterables.transform(referentialDtoTypes, new Function<ReferenceTypeName, Class<? extends IdDto>>() { + @Override + public Class<? extends IdDto> apply(ReferenceTypeName referenceTypeName) { + return referenceTypeName.getType(); + } + }); + Assert.assertTrue(Iterables.contains(types, GearDto.class)); + Assert.assertTrue(Iterables.contains(types, GearCaracteristicDto.class)); // On vérife que l'entité a bien été copié Assert.assertEquals(features.getTopiaId(), featuresDto.getId()); diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java index 7b01ea1..add020f 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java @@ -150,7 +150,7 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { Assert.assertTrue(types.contains(VesselDto.class)); Assert.assertTrue(types.contains(OceanDto.class)); Assert.assertTrue(types.contains(HarbourDto.class)); - Assert.assertEquals(formDto.sizeLabels(), 4); + Assert.assertEquals(formDto.sizeLabels(), 6); for (ReferenceSetDto referenceSetDto : formDto.getLabels()) { @@ -191,7 +191,7 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { Assert.assertTrue(types.contains(VesselDto.class)); Assert.assertTrue(types.contains(OceanDto.class)); Assert.assertTrue(types.contains(HarbourDto.class)); - Assert.assertEquals(formDto.sizeLabels(), 4); + Assert.assertEquals(formDto.sizeLabels(), 6); for (ReferenceSetDto referenceSetDto : formDto.getLabels()) { @@ -230,7 +230,7 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { Assert.assertTrue(types.contains(VesselDto.class)); Assert.assertTrue(types.contains(OceanDto.class)); Assert.assertTrue(types.contains(HarbourDto.class)); - Assert.assertEquals(formDto.sizeLabels(), 4); + Assert.assertEquals(formDto.sizeLabels(), 6); for (ReferenceSetDto referenceSetDto : formDto.getLabels()) { -- 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