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 f6df5185599564edb114fcf969a9b25ab47f2589 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Oct 18 23:23:54 2015 +0200 Introduction de la configuration des listes d'espèces + revue de code sur les filtrage de LabelSet --- .../ObserveSwingApplicationConfigOption.java | 17 +- .../fr/ird/observe/db/ObserveSwingDataSource.java | 16 +- .../ui/content/table/ContentTableUIHandler.java | 4 +- .../application/web/ObserveWebMotionFilter.java | 18 ++- .../web/request/ObserveWebRequestContext.java | 7 + .../entities/referentiel/ReferenceEntities.java | 9 +- .../observe/entities/referentiel/SpeciesLists.java | 15 -- .../i18n/observe-entities_en_GB.properties | 10 +- .../i18n/observe-entities_es_ES.properties | 10 +- .../i18n/observe-entities_fr_FR.properties | 10 +- .../services/ObserveServiceInitializer.java | 22 +++ .../services/ObserveSpeciesListConfiguration.java | 149 +++++++++++++++++ ...bserveDataSourceConfigurationRestConstants.java | 2 + .../services/ObserveServiceFactoryRest.java | 7 +- .../fr/ird/observe/services/TestClassResource.java | 2 + .../services/ObserveServiceContextTopia.java | 10 ++ .../ird/observe/services/ObserveServiceTopia.java | 52 +++--- .../ird/observe/services/entity/EntitiesSet.java | 30 +++- .../services/entity/EntitiesSetFactory.java | 177 +++++++++++++++++++++ .../services/entity/ObserveEntitiesFilters.java | 145 ----------------- .../services/entity/ObserveEntityFilter.java | 73 --------- .../services/entity/SpeciesListEntitiesSet.java | 17 +- .../entity/SpeciesListOceanEntitiesSet.java | 13 +- .../services/entity/UniverseEntitiesSet.java | 41 ----- .../services/ApplicationContextResource.java | 5 + .../fr/ird/observe/services/service/RigthTest.java | 7 +- .../service/seine/TripSeineServiceTopiaTest.java | 6 +- 27 files changed, 506 insertions(+), 368 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/configuration/ObserveSwingApplicationConfigOption.java b/observe-application-swing/src/main/java/fr/ird/observe/configuration/ObserveSwingApplicationConfigOption.java index ca2b649..2b76356 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/configuration/ObserveSwingApplicationConfigOption.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/configuration/ObserveSwingApplicationConfigOption.java @@ -25,6 +25,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; import fr.ird.observe.db.constantes.CreationMode; import fr.ird.observe.db.constantes.DbMode; +import fr.ird.observe.services.ObserveSpeciesListConfiguration; import org.nuiton.config.ApplicationConfig; import org.nuiton.config.ConfigOptionDef; import org.nuiton.util.version.Version; @@ -613,7 +614,7 @@ public enum ObserveSwingApplicationConfigOption implements ConfigOptionDef { "speciesList.seine.targetCatch", ObserveSwingApplicationConfig.PROPERTY_SPECIES_LIST_SEINE_TARGET_CATCH_ID, n("observe.config.speciesList.seine.targetCatch"), - "fr.ird.observe.entities.referentiel.SpeciesList#1239832675370#0.1", // espece thon + ObserveSpeciesListConfiguration.DEFAULT_SPECIES_LIST_SEINE_TARGET_CATCH_ID, String.class, false, false @@ -624,7 +625,7 @@ public enum ObserveSwingApplicationConfigOption implements ConfigOptionDef { "speciesList.seine.schoolEstimate", ObserveSwingApplicationConfig.PROPERTY_SPECIES_LIST_SEINE_SCHOOL_ESTIMATE_ID, n("observe.config.speciesList.seine.schoolEstimate"), - "fr.ird.observe.entities.referentiel.SpeciesList#1239832675370#0.1", // espece thons + ObserveSpeciesListConfiguration.DEFAULT_SPECIES_LIST_SEINE_SCHOOL_ESTIMATE_ID, String.class, false, false @@ -635,7 +636,7 @@ public enum ObserveSwingApplicationConfigOption implements ConfigOptionDef { "speciesList.seine.objectSchoolEstimate", ObserveSwingApplicationConfig.PROPERTY_SPECIES_LIST_SEINE_OBJECT_SCHOOL_ESTIMATE_ID, n("observe.config.speciesList.seine.objectSchoolEstimate"), - "fr.ird.observe.entities.referentiel.SpeciesList#1239832675370#0.1", // espece thon + ObserveSpeciesListConfiguration.DEFAULT_SPECIES_LIST_SEINE_OBJECT_SCHOOL_ESTIMATE_ID, String.class, false, false @@ -646,7 +647,7 @@ public enum ObserveSwingApplicationConfigOption implements ConfigOptionDef { "speciesList.seine.nonTargetCatch", ObserveSwingApplicationConfig.PROPERTY_SPECIES_LIST_SEINE_NON_TARGET_CATCH_ID, n("observe.config.speciesList.seine.nonTargetCatch"), - "fr.ird.observe.entities.referentiel.SpeciesList#1239832675370#0.2", // espece faune + ObserveSpeciesListConfiguration.DEFAULT_SPECIES_LIST_SEINE_NON_TARGET_CATCH_ID, String.class, false, false @@ -657,7 +658,7 @@ public enum ObserveSwingApplicationConfigOption implements ConfigOptionDef { "speciesList.seine.objectObservedSpecies", ObserveSwingApplicationConfig.PROPERTY_SPECIES_LIST_SEINE_OBJECT_OBSERVED_SPECIES_ID, n("observe.config.speciesList.seine.objectObservedSpecies"), - "fr.ird.observe.entities.referentiel.SpeciesList#1239832675370#0.2", // espece faune + ObserveSpeciesListConfiguration.DEFAULT_SPECIES_LIST_SEINE_OBJECT_OBSERVED_SPECIES_ID, String.class, false, false @@ -668,7 +669,7 @@ public enum ObserveSwingApplicationConfigOption implements ConfigOptionDef { "speciesList.longline.catch", ObserveSwingApplicationConfig.PROPERTY_SPECIES_LIST_LONGLINE_CATCH_ID, n("observe.config.speciesList.longline.catch"), - "fr.ird.observe.entities.referentiel.SpeciesList#1239832675370#0.3", // catch + ObserveSpeciesListConfiguration.DEFAULT_SPECIES_LIST_LONGLINE_CATCH_ID, String.class, false, false @@ -679,7 +680,7 @@ public enum ObserveSwingApplicationConfigOption implements ConfigOptionDef { "speciesList.longline.encounter", ObserveSwingApplicationConfig.PROPERTY_SPECIES_LIST_LONGLINE_ENCOUNTER_ID, n("observe.config.speciesList.longline.encounter"), - "fr.ird.observe.entities.referentiel.SpeciesList#1239832675370#0.4", // encounter + ObserveSpeciesListConfiguration.DEFAULT_SPECIES_LIST_LONGLINE_ENCOUNTER_ID, String.class, false, false @@ -689,7 +690,7 @@ public enum ObserveSwingApplicationConfigOption implements ConfigOptionDef { "speciesList.longline.depredator", ObserveSwingApplicationConfig.PROPERTY_SPECIES_LIST_LONGLINE_DEPREDATOR_ID, n("observe.config.speciesList.longline.encounter"), - "fr.ird.observe.entities.referentiel.SpeciesList#1239832675370#0.5", // encounter + ObserveSpeciesListConfiguration.DEFAULT_SPECIES_LIST_LONGLINE_DEPREDATOR_ID, String.class, false, false diff --git a/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveSwingDataSource.java b/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveSwingDataSource.java index 0654765..f3d808f 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveSwingDataSource.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/db/ObserveSwingDataSource.java @@ -8,6 +8,7 @@ import fr.ird.observe.db.event.ObserveSwingDataSourceListener; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.ObserveServiceInitializer; import fr.ird.observe.services.ObserveServiceMainFactory; +import fr.ird.observe.services.ObserveSpeciesListConfiguration; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationAndConnection; import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationRest; @@ -194,7 +195,6 @@ public class ObserveSwingDataSource extends AbstractSerializableBean { } - public <D extends IdDto> D getObserveDto(Class<D> dtoType, String id) { Preconditions.checkState(isOpen(), "Connection is not open"); @@ -273,12 +273,22 @@ public class ObserveSwingDataSource extends AbstractSerializableBean { ObserveDataSourceConfigurationAndConnection configurationAndConnection = new ObserveDataSourceConfigurationAndConnection(configuration, connection); + ObserveSpeciesListConfiguration speciesListConfiguration = new ObserveSpeciesListConfiguration(); + speciesListConfiguration.setSpeciesListLonglineCatchId(config.getSpeciesListLonglineCatchId()); + speciesListConfiguration.setSpeciesListLonglineDepredatorId(config.getSpeciesListLonglineDepredatorId()); + speciesListConfiguration.setSpeciesListLonglineEncounterId(config.getSpeciesListLonglineEncounterId()); + speciesListConfiguration.setSpeciesListSeineNonTargetCatchId(config.getSpeciesListSeineNonTargetCatchId()); + speciesListConfiguration.setSpeciesListSeineObjectObservedSpeciesId(config.getSpeciesListSeineObjectObservedSpeciesId()); + speciesListConfiguration.setSpeciesListSeineObjectSchoolEstimateId(config.getSpeciesListSeineObjectSchoolEstimateId()); + speciesListConfiguration.setSpeciesListSeineSchoolEstimateId(config.getSpeciesListSeineSchoolEstimateId()); + speciesListConfiguration.setSpeciesListSeineTargetCatchId(config.getSpeciesListSeineTargetCatchId()); + ObserveServiceInitializer observeServiceInitializer = ObserveServiceInitializer.create( locale, referentialLocale, tmpDirectory, - configurationAndConnection - ); + speciesListConfiguration, + configurationAndConnection); return observeServiceInitializer; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIHandler.java index 081c03b..e5e1b94 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIHandler.java @@ -255,7 +255,7 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto> ex public void initUI() throws Exception { final ContentTableUIInitializer<E, D, ObserveContentTableUI<E, D>> uiInitializer = - new ContentTableUIInitializer<E, D, ObserveContentTableUI<E, D>>(getUi()); + new ContentTableUIInitializer<>(getUi()); uiInitializer.initUI(); getModel().addPropertyChangeListener(ContentUIModel.PROPERTY_FORM_DTO, new PropertyChangeListener() { @@ -267,6 +267,7 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto> ex } + //FIXME Ne plus utiliser cela mais directement le labelSet sur la propriété Species qui contient la liste des espèces public Set<String> loadSpeciesList(String speciesListId, String errorMessage) { Set<String> speciesIds; @@ -287,6 +288,7 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto> ex } + //FIXME Ne plus utiliser cela mais directement le labelSet sur la propriété Species qui contient la liste des espèces protected void prepareSpeciesList(String speciesListId, JComponent speciesComponent, String errorMessage) { Set<String> speciesIds = loadSpeciesList(speciesListId, errorMessage); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebMotionFilter.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebMotionFilter.java index e71f6fe..c1cebd4 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebMotionFilter.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebMotionFilter.java @@ -23,7 +23,9 @@ package fr.ird.observe.application.web; */ import com.google.common.base.Strings; +import com.google.gson.Gson; import fr.ird.observe.application.web.request.ObserveWebRequestContext; +import fr.ird.observe.services.ObserveSpeciesListConfiguration; import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationRestConstants; import fr.ird.observe.services.dto.constants.ReferentialLocale; import org.apache.commons.lang3.StringUtils; @@ -39,7 +41,7 @@ import java.util.Locale; */ public class ObserveWebMotionFilter extends WebMotionFilter implements ObserveDataSourceConfigurationRestConstants { - public void inject(HttpContext context) { + public void inject(HttpContext context) { ObserveWebApplicationContext applicationContext = ObserveWebApplicationContext.getApplicationContext(context); @@ -47,6 +49,7 @@ public class ObserveWebMotionFilter extends WebMotionFilter implements ObserveDa Locale applicationLocale = getApplicationLocale(request); ReferentialLocale referentialLocale = getReferentialLocale(request); + ObserveSpeciesListConfiguration speciesListConfiguration = getSpeciesListConfiguration(applicationContext.getGsonSupplier().get(), request); String adminApiKey = getRequestHeaderOrParameterValueOrNull(request, REQUEST_ADMIN_API_KEY); if (Strings.isNullOrEmpty(adminApiKey)) { @@ -58,7 +61,7 @@ public class ObserveWebMotionFilter extends WebMotionFilter implements ObserveDa authenticationToken = null; } - ObserveWebRequestContext requestContext = new ObserveWebRequestContext(applicationContext, applicationLocale, referentialLocale, adminApiKey, authenticationToken); + ObserveWebRequestContext requestContext = new ObserveWebRequestContext(applicationContext, applicationLocale, referentialLocale, speciesListConfiguration, adminApiKey, authenticationToken); ObserveWebRequestContext.setRequestContext(context, requestContext); doProcess(); @@ -77,6 +80,17 @@ public class ObserveWebMotionFilter extends WebMotionFilter implements ObserveDa } + protected ObserveSpeciesListConfiguration getSpeciesListConfiguration(Gson gson, HttpServletRequest request) { + + ObserveSpeciesListConfiguration speciesListConfiguration = null; + String speciesListConfigurationStr = getRequestHeaderOrParameterValueOrNull(request, REQUEST_SPECIES_LIST_CONFIGURATION); + if (speciesListConfigurationStr != null) { + speciesListConfiguration = gson.fromJson(speciesListConfigurationStr, ObserveSpeciesListConfiguration.class); + } + return speciesListConfiguration; + + } + protected Locale getApplicationLocale(HttpServletRequest request) { Locale applicationLocale = null; diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/request/ObserveWebRequestContext.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/request/ObserveWebRequestContext.java index 3b3f221..251782c 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/request/ObserveWebRequestContext.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/request/ObserveWebRequestContext.java @@ -29,6 +29,7 @@ import fr.ird.observe.application.web.security.AuthenticationTokenNotFoundExcept import fr.ird.observe.application.web.security.InvalidAdminKeyApiException; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.ObserveServiceInitializer; +import fr.ird.observe.services.ObserveSpeciesListConfiguration; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationAndConnection; import fr.ird.observe.services.dto.constants.ReferentialLocale; @@ -63,6 +64,8 @@ public class ObserveWebRequestContext { protected final ReferentialLocale referentialLocale; + protected final ObserveSpeciesListConfiguration speciesListConfiguration; + protected final Optional<String> optionalAdminApiKey; protected final Optional<String> optionalAuthenticationToken; @@ -70,11 +73,13 @@ public class ObserveWebRequestContext { public ObserveWebRequestContext(ObserveWebApplicationContext applicationContext, Locale applicationLocale, ReferentialLocale referentialLocale, + ObserveSpeciesListConfiguration speciesListConfiguration, String adminApiKey, String authenticationToken) { this.applicationContext = applicationContext; this.applicationLocale = applicationLocale; this.referentialLocale = referentialLocale; + this.speciesListConfiguration = speciesListConfiguration; this.optionalAdminApiKey = Optional.fromNullable(adminApiKey); this.optionalAuthenticationToken = Optional.fromNullable(authenticationToken); } @@ -89,6 +94,7 @@ public class ObserveWebRequestContext { applicationLocale, referentialLocale, applicationContext.getApplicationConfiguration().getTemporaryDirectory(), + speciesListConfiguration, dataSourceConfiguration); S service = applicationContext.newService(observeServiceInitializer, serviceType); return service; @@ -101,6 +107,7 @@ public class ObserveWebRequestContext { applicationLocale, referentialLocale, applicationContext.getApplicationConfiguration().getTemporaryDirectory(), + speciesListConfiguration, configurationAndConnection); S service = applicationContext.newService(observeServiceInitializer, serviceType); return service; 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 bf72832..31d51c3 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 @@ -88,7 +88,7 @@ public class ReferenceEntities { } } - public static final Predicate<ReferenceEntity> IS_ACTIF_PREDICATE = new Predicate<ReferenceEntity>() { + public static final Predicate<? extends ReferenceEntity> IS_ACTIF_PREDICATE = new Predicate<ReferenceEntity>() { @Override public boolean apply(ReferenceEntity input) { return ReferenceStatus.disabled != input.getStatus(); @@ -96,12 +96,7 @@ 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(); - } - }; + return (Predicate<R>) IS_ACTIF_PREDICATE; } public static void walk(ReferentielWalker walker) throws Exception { diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/SpeciesLists.java b/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/SpeciesLists.java deleted file mode 100644 index 5f563b7..0000000 --- a/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/SpeciesLists.java +++ /dev/null @@ -1,15 +0,0 @@ -package fr.ird.observe.entities.referentiel; - -/** - * @author Sylvain Bavencoff - bavencoff@codelutin.com - */ -public class SpeciesLists { - - // FIXME ces valeurs ne sont pas au bon endroit ici - public static String SPECIES_LIST_SEINE_OBJECT_SCHOOL_ESTIMATE_ID = "fr.ird.observe.entities.referentiel.SpeciesList#1239832675370#0.1"; - - public static String SPECIES_LIST_SEINE_OBJECT_OBSERVED_SPECIES_ID = "fr.ird.observe.entities.referentiel.SpeciesList#1239832675370#0.2"; - - public static String SPECIES_LIST_SEINE_SCHOOL_ESTIMATE_ID = "fr.ird.observe.entities.referentiel.SpeciesList#1239832675370#0.1"; - -} diff --git a/observe-entities/src/main/resources/i18n/observe-entities_en_GB.properties b/observe-entities/src/main/resources/i18n/observe-entities_en_GB.properties index 3250a63..05833ca 100644 --- a/observe-entities/src/main/resources/i18n/observe-entities_en_GB.properties +++ b/observe-entities/src/main/resources/i18n/observe-entities_en_GB.properties @@ -1,8 +1,3 @@ -observe.typeTransmittingBuoyOperation.no.balise=No Beacon -observe.typeTransmittingBuoyOperation.pose=Posing -observe.typeTransmittingBuoyOperation.recupere=Grab -observe.typeTransmittingBuoyOperation.recupere.et.change=Grab and change -observe.typeTransmittingBuoyOperation.visite=Visit observe.common.endDate=End date observe.common.endPursingDate=End pursing date observe.common.gpsPointInterval=Interval %1$td/%1$tm/%1$tY %1$tH\:%1$tM\:%1$tS - %2$td/%2$tm/%2$tY %2$tH\:%2$tM\:%2$tM ( number if point(s) \: %3$s ) @@ -35,3 +30,8 @@ observe.reference.status.enabled=Enabled observe.schoolType.libre=Free school type observe.schoolType.objet=Object school type observe.schoolType.undefined=Undefined school type +observe.typeTransmittingBuoyOperation.no.balise=No Beacon +observe.typeTransmittingBuoyOperation.pose=Posing +observe.typeTransmittingBuoyOperation.recupere=Grab +observe.typeTransmittingBuoyOperation.recupere.et.change=Grab and change +observe.typeTransmittingBuoyOperation.visite=Visit diff --git a/observe-entities/src/main/resources/i18n/observe-entities_es_ES.properties b/observe-entities/src/main/resources/i18n/observe-entities_es_ES.properties index c9219a9..dec12ff 100644 --- a/observe-entities/src/main/resources/i18n/observe-entities_es_ES.properties +++ b/observe-entities/src/main/resources/i18n/observe-entities_es_ES.properties @@ -1,8 +1,3 @@ -observe.typeTransmittingBuoyOperation.no.balise=DCP sin balizar -observe.typeTransmittingBuoyOperation.pose=Colocación de nueva baliza -observe.typeTransmittingBuoyOperation.recupere=Recogida de baliza sin regreso al agua -observe.typeTransmittingBuoyOperation.recupere.et.change=Recuperación y colocación de una nueva baliza -observe.typeTransmittingBuoyOperation.visite=Visita a la baliza observe.common.endDate=Fecha de fin observe.common.endPursingDate=Fecha de final de recogida de la jareta observe.common.gpsPointInterval=Intervalo %1$td/%1$tm/%1$tY %1$tH\:%1$tM\:%1$tS - %2$td/%2$tm/%2$tY %2$tH\:%2$tM\:%2$tM ( número de punto(s) \: %3$s ) @@ -35,3 +30,8 @@ observe.reference.status.enabled=Activado observe.schoolType.libre=Banco libre observe.schoolType.objet=Banco a objeto observe.schoolType.undefined=Banco indeterminado +observe.typeTransmittingBuoyOperation.no.balise=DCP sin balizar +observe.typeTransmittingBuoyOperation.pose=Colocación de nueva baliza +observe.typeTransmittingBuoyOperation.recupere=Recogida de baliza sin regreso al agua +observe.typeTransmittingBuoyOperation.recupere.et.change=Recuperación y colocación de una nueva baliza +observe.typeTransmittingBuoyOperation.visite=Visita a la baliza diff --git a/observe-entities/src/main/resources/i18n/observe-entities_fr_FR.properties b/observe-entities/src/main/resources/i18n/observe-entities_fr_FR.properties index eb795c5..0c8bb72 100644 --- a/observe-entities/src/main/resources/i18n/observe-entities_fr_FR.properties +++ b/observe-entities/src/main/resources/i18n/observe-entities_fr_FR.properties @@ -1,8 +1,3 @@ -observe.typeTransmittingBuoyOperation.no.balise=Pas de balise liée au DCP -observe.typeTransmittingBuoyOperation.pose=Pose d'une nouvelle balise -observe.typeTransmittingBuoyOperation.recupere=Récupération d'une balise sans remise à l'eau -observe.typeTransmittingBuoyOperation.recupere.et.change=Récupération et pose d'une nouvelle balise -observe.typeTransmittingBuoyOperation.visite=Simple visite de la balise observe.common.endDate=Fin de validité observe.common.endPursingDate=Date de fin de coulissage observe.common.gpsPointInterval=Intervalle %1$td/%1$tm/%1$tY %1$tH\:%1$tM\:%1$tS - %2$td/%2$tm/%2$tY %2$tH\:%2$tM\:%2$tM ( nombre de point(s) \: %3$s ) @@ -35,3 +30,8 @@ observe.reference.status.enabled=Activé observe.schoolType.libre=Banc libre observe.schoolType.objet=Banc objet observe.schoolType.undefined=Banc indéterminé +observe.typeTransmittingBuoyOperation.no.balise=Pas de balise liée au DCP +observe.typeTransmittingBuoyOperation.pose=Pose d'une nouvelle balise +observe.typeTransmittingBuoyOperation.recupere=Récupération d'une balise sans remise à l'eau +observe.typeTransmittingBuoyOperation.recupere.et.change=Récupération et pose d'une nouvelle balise +observe.typeTransmittingBuoyOperation.visite=Simple visite de la balise diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceInitializer.java b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceInitializer.java index 52b318b..70d033e 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceInitializer.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceInitializer.java @@ -45,12 +45,14 @@ public class ObserveServiceInitializer { public static ObserveServiceInitializer create(Locale applicationLocale, ReferentialLocale referentialLocale, File temporaryDirectoryRoot, + ObserveSpeciesListConfiguration speciesListConfiguration, ObserveDataSourceConnection dataSourceConnection) { ObserveServiceInitializer observeServiceInitializer = new ObserveServiceInitializer(); observeServiceInitializer.setApplicationLocale(applicationLocale); observeServiceInitializer.setReferentialLocale(referentialLocale); observeServiceInitializer.setTemporaryDirectoryRoot(temporaryDirectoryRoot); + observeServiceInitializer.setSpeciesListConfiguration(speciesListConfiguration); observeServiceInitializer.setDataSourceConfiguration(null); observeServiceInitializer.setDataSourceConnection(dataSourceConnection); return observeServiceInitializer; @@ -60,12 +62,14 @@ public class ObserveServiceInitializer { public static ObserveServiceInitializer create(Locale applicationLocale, ReferentialLocale referentialLocale, File temporaryDirectoryRoot, + ObserveSpeciesListConfiguration speciesListConfiguration, ObserveDataSourceConfiguration dataSourceConfiguration) { ObserveServiceInitializer observeServiceInitializer = new ObserveServiceInitializer(); observeServiceInitializer.setApplicationLocale(applicationLocale); observeServiceInitializer.setReferentialLocale(referentialLocale); observeServiceInitializer.setTemporaryDirectoryRoot(temporaryDirectoryRoot); + observeServiceInitializer.setSpeciesListConfiguration(speciesListConfiguration); observeServiceInitializer.setDataSourceConfiguration(dataSourceConfiguration); observeServiceInitializer.setDataSourceConnection(null); return observeServiceInitializer; @@ -75,12 +79,14 @@ public class ObserveServiceInitializer { public static ObserveServiceInitializer create(Locale applicationLocale, ReferentialLocale referentialLocale, File temporaryDirectoryRoot, + ObserveSpeciesListConfiguration speciesListConfiguration, ObserveDataSourceConfigurationAndConnection configurationAndConnection) { ObserveServiceInitializer observeServiceInitializer = new ObserveServiceInitializer(); observeServiceInitializer.setApplicationLocale(applicationLocale); observeServiceInitializer.setReferentialLocale(referentialLocale); observeServiceInitializer.setTemporaryDirectoryRoot(temporaryDirectoryRoot); + observeServiceInitializer.setSpeciesListConfiguration(speciesListConfiguration); observeServiceInitializer.setDataSourceConfiguration(null); observeServiceInitializer.setDataSourceConnection(configurationAndConnection.getConnection()); observeServiceInitializer.setDataSourceConfiguration(configurationAndConnection.getConfiguration()); @@ -96,12 +102,14 @@ public class ObserveServiceInitializer { otherObserveServiceInitializer.getApplicationLocale(), otherObserveServiceInitializer.getReferentialLocale(), otherObserveServiceInitializer.getTemporaryDirectoryRoot(), + otherObserveServiceInitializer.getSpeciesListConfiguration(), otherObserveServiceInitializer.getDataSourceConnection()); } else { observeServiceInitializer = create( otherObserveServiceInitializer.getApplicationLocale(), otherObserveServiceInitializer.getReferentialLocale(), otherObserveServiceInitializer.getTemporaryDirectoryRoot(), + otherObserveServiceInitializer.getSpeciesListConfiguration(), otherObserveServiceInitializer.getDataSourceConfiguration()); } @@ -135,6 +143,12 @@ public class ObserveServiceInitializer { */ protected File temporaryDirectoryRoot; + /** + * La configuration des listes d'espèces (utilisé pour filtrer les listes d'espèces). + */ + protected ObserveSpeciesListConfiguration speciesListConfiguration; + + public Locale getApplicationLocale() { return applicationLocale; } @@ -155,6 +169,10 @@ public class ObserveServiceInitializer { return temporaryDirectoryRoot; } + public ObserveSpeciesListConfiguration getSpeciesListConfiguration() { + return speciesListConfiguration; + } + public boolean withDataSourceConnection() { return dataSourceConnection.isPresent(); } @@ -183,6 +201,10 @@ public class ObserveServiceInitializer { this.temporaryDirectoryRoot = temporaryDirectoryRoot; } + protected void setSpeciesListConfiguration(ObserveSpeciesListConfiguration speciesListConfiguration) { + this.speciesListConfiguration = speciesListConfiguration; + } + protected ObserveServiceInitializer() { } } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/ObserveSpeciesListConfiguration.java b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveSpeciesListConfiguration.java new file mode 100644 index 0000000..43a0e77 --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveSpeciesListConfiguration.java @@ -0,0 +1,149 @@ +package fr.ird.observe.services; + +/** + * Contient la configuration des listes de favoris d'espèces à utiliser. + * + * Created on 18/10/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveSpeciesListConfiguration { + + /** + * La valeur par défaut pour obtenir la liste des espèces capture du modèle palangre. + */ + public static final String DEFAULT_SPECIES_LIST_LONGLINE_CATCH_ID = "fr.ird.observe.entities.referentiel.SpeciesList#1239832675370#0.3"; // catch + + /** + * La valeur par défaut pour obtenir la liste des espèces rencontrées du modèle palangre. + */ + public static final String DEFAULT_SPECIES_LIST_LONGLINE_ENCOUNTER_ID = "fr.ird.observe.entities.referentiel.SpeciesList#1239832675370#0.4"; // encounter + + /** + * La valeur par défaut pour obtenir la liste des espèces de déprédation capture du modèle palangre. + */ + public static final String DEFAULT_SPECIES_LIST_LONGLINE_DEPREDATOR_ID = "fr.ird.observe.entities.referentiel.SpeciesList#1239832675370#0.5"; // depradator + + /** + * La valeur par défaut pour obtenir la liste des espèces d'estimation du modèle seine. + */ + public static final String DEFAULT_SPECIES_LIST_SEINE_SCHOOL_ESTIMATE_ID = "fr.ird.observe.entities.referentiel.SpeciesList#1239832675370#0.1"; // espece thons + + /** + * La valeur par défaut pour obtenir la liste des espèces non cible du modèle seine. + */ + public static final String DEFAULT_SPECIES_LIST_SEINE_NON_TARGET_CATCH_ID = "fr.ird.observe.entities.referentiel.SpeciesList#1239832675370#0.2"; // espece faune + + /** + * La valeur par défaut pour obtenir la liste des espèces estimées d'objet du modèle seine. + */ + public static final String DEFAULT_SPECIES_LIST_SEINE_OBJECT_SCHOOL_ESTIMATE_ID = "fr.ird.observe.entities.referentiel.SpeciesList#1239832675370#0.1"; // espece thons + + /** + * La valeur par défaut pour obtenir la liste des espèces observées sur objet du modèle seine. + */ + public static final String DEFAULT_SPECIES_LIST_SEINE_OBJECT_OBSERVED_SPECIES_ID = "fr.ird.observe.entities.referentiel.SpeciesList#1239832675370#0.2"; // espece faune + + /** + * La valeur par défaut pour obtenir la liste des espèces capture du modèle seine. + */ + public static final String DEFAULT_SPECIES_LIST_SEINE_TARGET_CATCH_ID = "fr.ird.observe.entities.referentiel.SpeciesList#1239832675370#0.1"; // espece thons + + protected String speciesListLonglineCatchId; + + protected String speciesListLonglineDepredatorId; + + protected String speciesListLonglineEncounterId; + + protected String speciesListSeineNonTargetCatchId; + + protected String speciesListSeineSchoolEstimateId; + + protected String speciesListSeineObjectSchoolEstimateId; + + protected String speciesListSeineObjectObservedSpeciesId; + + protected String speciesListSeineTargetCatchId; + + /** + * @return une configuration avec les valeurs par défaut. + */ + public static ObserveSpeciesListConfiguration newDefaultConfiguration() { + + ObserveSpeciesListConfiguration speciesListConfiguration = new ObserveSpeciesListConfiguration(); + speciesListConfiguration.setSpeciesListLonglineCatchId(DEFAULT_SPECIES_LIST_LONGLINE_CATCH_ID); + speciesListConfiguration.setSpeciesListLonglineDepredatorId(DEFAULT_SPECIES_LIST_LONGLINE_DEPREDATOR_ID); + speciesListConfiguration.setSpeciesListLonglineEncounterId(DEFAULT_SPECIES_LIST_LONGLINE_ENCOUNTER_ID); + speciesListConfiguration.setSpeciesListSeineNonTargetCatchId(DEFAULT_SPECIES_LIST_SEINE_NON_TARGET_CATCH_ID); + speciesListConfiguration.setSpeciesListSeineObjectObservedSpeciesId(DEFAULT_SPECIES_LIST_SEINE_OBJECT_OBSERVED_SPECIES_ID); + speciesListConfiguration.setSpeciesListSeineObjectSchoolEstimateId(DEFAULT_SPECIES_LIST_SEINE_OBJECT_SCHOOL_ESTIMATE_ID); + speciesListConfiguration.setSpeciesListSeineSchoolEstimateId(DEFAULT_SPECIES_LIST_SEINE_SCHOOL_ESTIMATE_ID); + speciesListConfiguration.setSpeciesListSeineTargetCatchId(DEFAULT_SPECIES_LIST_SEINE_TARGET_CATCH_ID); + return speciesListConfiguration; + } + + public String getSpeciesListLonglineCatchId() { + return speciesListLonglineCatchId; + } + + public void setSpeciesListLonglineCatchId(String speciesListLonglineCatchId) { + this.speciesListLonglineCatchId = speciesListLonglineCatchId; + } + + public String getSpeciesListLonglineDepredatorId() { + return speciesListLonglineDepredatorId; + } + + public void setSpeciesListLonglineDepredatorId(String speciesListLonglineDepredatorId) { + this.speciesListLonglineDepredatorId = speciesListLonglineDepredatorId; + } + + public String getSpeciesListLonglineEncounterId() { + return speciesListLonglineEncounterId; + } + + public void setSpeciesListLonglineEncounterId(String speciesListLonglineEncounterId) { + this.speciesListLonglineEncounterId = speciesListLonglineEncounterId; + } + + public String getSpeciesListSeineNonTargetCatchId() { + return speciesListSeineNonTargetCatchId; + } + + public void setSpeciesListSeineNonTargetCatchId(String speciesListSeineNonTargetCatchId) { + this.speciesListSeineNonTargetCatchId = speciesListSeineNonTargetCatchId; + } + + public String getSpeciesListSeineSchoolEstimateId() { + return speciesListSeineSchoolEstimateId; + } + + public void setSpeciesListSeineSchoolEstimateId(String speciesListSeineSchoolEstimateId) { + this.speciesListSeineSchoolEstimateId = speciesListSeineSchoolEstimateId; + } + + public String getSpeciesListSeineObjectSchoolEstimateId() { + return speciesListSeineObjectSchoolEstimateId; + } + + public void setSpeciesListSeineObjectSchoolEstimateId(String speciesListSeineObjectSchoolEstimateId) { + this.speciesListSeineObjectSchoolEstimateId = speciesListSeineObjectSchoolEstimateId; + } + + public String getSpeciesListSeineObjectObservedSpeciesId() { + return speciesListSeineObjectObservedSpeciesId; + } + + public void setSpeciesListSeineObjectObservedSpeciesId(String speciesListSeineObjectObservedSpeciesId) { + this.speciesListSeineObjectObservedSpeciesId = speciesListSeineObjectObservedSpeciesId; + } + + public String getSpeciesListSeineTargetCatchId() { + return speciesListSeineTargetCatchId; + } + + public void setSpeciesListSeineTargetCatchId(String speciesListSeineTargetCatchId) { + this.speciesListSeineTargetCatchId = speciesListSeineTargetCatchId; + } + +} diff --git a/observe-services-configuration-rest/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConfigurationRestConstants.java b/observe-services-configuration-rest/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConfigurationRestConstants.java index ab827b8..2570a0d 100644 --- a/observe-services-configuration-rest/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConfigurationRestConstants.java +++ b/observe-services-configuration-rest/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConfigurationRestConstants.java @@ -39,6 +39,8 @@ public interface ObserveDataSourceConfigurationRestConstants { String REQUEST_REFERENTIAL_LOCALE = "referentialLocale"; + String REQUEST_SPECIES_LIST_CONFIGURATION = "speciesListConfiguration"; + String REQUEST_AUTHENTICATION_TOKEN = "authenticationToken"; String REQUEST_ADMIN_API_KEY = "adminApiKey"; diff --git a/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java b/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java index f564b48..918a6c3 100644 --- a/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java +++ b/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java @@ -155,6 +155,8 @@ public class ObserveServiceFactoryRest extends ObserveServiceFactorySupport impl protected final String referentialLocale; + protected final String speciesListConfigurationAsString; + protected final String locateService; protected final ObserveResponseBuilder responseBuilder; @@ -174,6 +176,7 @@ public class ObserveServiceFactoryRest extends ObserveServiceFactorySupport impl this.gsonSupplier = gsonSupplier; this.applicationLocale = observeServiceInitializer.getApplicationLocale().toString(); this.referentialLocale = observeServiceInitializer.getReferentialLocale().getLocale().toString(); + this.speciesListConfigurationAsString = gsonSupplier.get().toJson(observeServiceInitializer.getSpeciesListConfiguration()); this.responseBuilder = responseBuilder; } @@ -341,7 +344,7 @@ public class ObserveServiceFactoryRest extends ObserveServiceFactorySupport impl requestBuilder.addHeader(REQUEST_AUTHENTICATION_TOKEN, dataSourceConnection.getAuthenticationToken()); } - + if (!Strings.isNullOrEmpty(applicationLocale)) { requestBuilder.addHeader(REQUEST_APPLICATION_LOCALE, applicationLocale); } @@ -349,6 +352,8 @@ public class ObserveServiceFactoryRest extends ObserveServiceFactorySupport impl requestBuilder.addHeader(REQUEST_REFERENTIAL_LOCALE, referentialLocale); } + requestBuilder.addHeader(REQUEST_SPECIES_LIST_CONFIGURATION, speciesListConfigurationAsString); + } } diff --git a/observe-services-rest/src/test/java/fr/ird/observe/services/TestClassResource.java b/observe-services-rest/src/test/java/fr/ird/observe/services/TestClassResource.java index 0286bfd..6cf42cd 100644 --- a/observe-services-rest/src/test/java/fr/ird/observe/services/TestClassResource.java +++ b/observe-services-rest/src/test/java/fr/ird/observe/services/TestClassResource.java @@ -86,6 +86,7 @@ public class TestClassResource implements TestRule { Locale.FRANCE, ReferentialLocale.FR, temporaryDirectoryRoot.toFile(), + ObserveSpeciesListConfiguration.newDefaultConfiguration(), dataSourceConfiguration ); return serviceFactory.newService(observeServiceInitializer, serviceType); @@ -96,6 +97,7 @@ public class TestClassResource implements TestRule { Locale.FRANCE, ReferentialLocale.FR, temporaryDirectoryRoot.toFile(), + ObserveSpeciesListConfiguration.newDefaultConfiguration(), dataSourceConnection ); return serviceFactory.newService(observeServiceInitializer, serviceType); diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceContextTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceContextTopia.java index b9a0a3e..91a332e 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceContextTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceContextTopia.java @@ -29,6 +29,7 @@ import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationTopia import fr.ird.observe.services.configuration.ObserveDataSourceConnection; import fr.ird.observe.services.configuration.ObserveDataSourceConnectionTopia; import fr.ird.observe.services.dto.constants.ReferentialLocale; +import fr.ird.observe.services.entity.EntitiesSetFactory; import java.io.File; import java.io.IOException; @@ -59,6 +60,8 @@ public class ObserveServiceContextTopia { protected ObserveTopiaApplicationContext topiaApplicationContext; + protected EntitiesSetFactory entitiesSetFactory; + public ObserveServiceContextTopia(ObserveServiceInitializer observeServiceInitializer, ObserveServiceFactory mainServiceFactory, ObserveServiceFactory serviceFactory) { @@ -99,6 +102,13 @@ public class ObserveServiceContextTopia { return new Date(); } + public EntitiesSetFactory getEntitiesSetFactory() { + if (entitiesSetFactory == null) { + entitiesSetFactory = new EntitiesSetFactory(observeServiceInitializer.getSpeciesListConfiguration()); + } + return entitiesSetFactory; + } + public <S extends ObserveService> S newService(Class<S> serviceType) { return serviceFactory.newService(observeServiceInitializer, serviceType); } 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 baa2bb6..bbbcfab 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 @@ -57,8 +57,7 @@ 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.EntitiesSet; -import fr.ird.observe.services.entity.ObserveEntitiesFilters; -import fr.ird.observe.services.entity.ObserveEntityFilter; +import fr.ird.observe.services.entity.EntitiesSetFactory; import fr.ird.observe.services.service.ConcurrentModificationException; import fr.ird.observe.services.service.DataNotFoundException; import fr.ird.observe.services.service.DataSourceService; @@ -285,26 +284,16 @@ public abstract class ObserveServiceTopia implements ObserveService { // copy entity 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<ReferenceTypeName> referenceTypesNames = dtoBuilder.getReferenceTypesNames(); - ImmutableSet.Builder<ReferenceSetDto> labels = new ImmutableSet.Builder<>(); - - for (ReferenceTypeName referenceDtoTypeName : referenceTypesNames) { - - Class<TopiaEntity> entityParentType = getEntityType(referenceDtoTypeName.getParentType()); - Class<TopiaEntity> entityChildType = getEntityType(referenceDtoTypeName.getType()); + // build label sets detected while copy + // For read form, we don't need to get any values in labelSet (since there is nothing to edit^^) + ImmutableSet.Builder<ReferenceSetDto> labels = ImmutableSet.builder(); - ObserveEntityFilter filter = ObserveEntitiesFilters.getFilter( - entityParentType, - entityChildType, - referenceDtoTypeName.getType(), - referenceDtoTypeName.getProperty()); + for (ReferenceTypeName referenceDtoTypeName : dtoBuilder.getReferenceTypesNames()) { - ReferenceSetDto referentialLabelSet = ReferenceSetDtos.newEmptyReferenceSetDto( - filter.getDtoType(), - filter.getPropertyName()); + Class<? extends IdDto> childDtoType = referenceDtoTypeName.getType(); + String propertyName = referenceDtoTypeName.getProperty(); - labels.add(referentialLabelSet); + labels.add(ReferenceSetDtos.newEmptyReferenceSetDto(childDtoType, propertyName)); } @@ -347,23 +336,26 @@ public abstract class ObserveServiceTopia implements ObserveService { D dto = dtoBuilder.build(serviceContext.getReferentialLocale(), entity, includeReferenceDtoTypesNames); // build label sets detected while copy - ImmutableSet<ReferenceTypeName> referenceDtoTypesNames = dtoBuilder.getReferenceTypesNames(); ImmutableSet.Builder<ReferenceSetDto> labels = new ImmutableSet.Builder<>(); - for (ReferenceTypeName referenceDtoTypeName : referenceDtoTypesNames) { + EntitiesSetFactory entityFilterFactory = serviceContext.getEntitiesSetFactory(); + + for (ReferenceTypeName referenceDtoTypeName : dtoBuilder.getReferenceTypesNames()) { + + Class<? extends IdDto> childDtoType = referenceDtoTypeName.getType(); + String propertyName = referenceDtoTypeName.getProperty(); Class<TopiaEntity> entityParentType = getEntityType(referenceDtoTypeName.getParentType()); - Class<TopiaEntity> entityChildType = getEntityType(referenceDtoTypeName.getType()); + Class<TopiaEntity> entityChildType = getEntityType(childDtoType); - ObserveEntityFilter filter = ObserveEntitiesFilters.getFilter(entityParentType, - entityChildType, - referenceDtoTypeName.getType(), - referenceDtoTypeName.getProperty()); + EntitiesSet<TopiaEntity> entitiesSet = entityFilterFactory.newEntitiesSet(entityParentType, + entityChildType, + propertyName); - ReferenceSetDto referenceSet = getReferenceSet(filter.getDtoType(), - filter.getPropertyName(), - filter.getEntityType(), - filter.getEntitiesSet(), + ReferenceSetDto referenceSet = getReferenceSet(childDtoType, + propertyName, + entityChildType, + entitiesSet, dataContext); labels.add(referenceSet); diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/entity/EntitiesSet.java b/observe-services-topia/src/main/java/fr/ird/observe/services/entity/EntitiesSet.java index 56679cf..fc3cabe 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/entity/EntitiesSet.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/entity/EntitiesSet.java @@ -1,21 +1,30 @@ package fr.ird.observe.services.entity; +import com.google.common.base.Optional; import com.google.common.base.Predicate; import com.google.common.collect.Iterables; import fr.ird.observe.ObserveTopiaPersistenceContext; +import org.nuiton.topia.persistence.TopiaDao; import org.nuiton.topia.persistence.TopiaEntity; import java.util.Map; /** * FIXME Ca sert à quoi? + * * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public abstract class EntitiesSet<E extends TopiaEntity> { +public class EntitiesSet<E extends TopiaEntity> { - protected abstract Iterable<E> getEntitiesSetBase(ObserveTopiaPersistenceContext persistenceContext); + /** + * Le type de l'entité dont on cherche des éléments. + */ + protected final Class<E> entityType; - protected abstract Predicate<E> getFilter(Map<String, Object> requestContext); + /** + * Un prédicat de filtrage optionnel. + */ + protected final Optional<Predicate<E>> optionalFilter; public Iterable<E> getEntities(ObserveTopiaPersistenceContext persistenceContext, Map<String, Object> requestContext) { Iterable<E> result = getEntitiesSetBase(persistenceContext); @@ -25,4 +34,19 @@ public abstract class EntitiesSet<E extends TopiaEntity> { } return result; } + + protected EntitiesSet(Class<E> entityType, Predicate<E> optionalFilter) { + this.entityType = entityType; + this.optionalFilter = Optional.fromNullable(optionalFilter); + } + + protected Iterable<E> getEntitiesSetBase(ObserveTopiaPersistenceContext persistenceContext) { + TopiaDao<E> dao = persistenceContext.getDao(entityType); + return dao.findAll(); + } + + protected Predicate<E> getFilter(Map<String, Object> requestContext) { + return optionalFilter.orNull(); + } + } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/entity/EntitiesSetFactory.java b/observe-services-topia/src/main/java/fr/ird/observe/services/entity/EntitiesSetFactory.java new file mode 100644 index 0000000..7bc9167 --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/entity/EntitiesSetFactory.java @@ -0,0 +1,177 @@ +package fr.ird.observe.services.entity; + +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 fr.ird.observe.entities.Entities; +import fr.ird.observe.entities.longline.TripLongline; +import fr.ird.observe.entities.referentiel.Person; +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.Species; +import fr.ird.observe.entities.referentiel.Vessel; +import fr.ird.observe.entities.referentiel.Vessels; +import fr.ird.observe.entities.seine.ObjectObservedSpecies; +import fr.ird.observe.entities.seine.ObjectSchoolEstimate; +import fr.ird.observe.entities.seine.SchoolEstimate; +import fr.ird.observe.entities.seine.TripSeine; +import fr.ird.observe.services.ObserveSpeciesListConfiguration; +import org.nuiton.topia.persistence.TopiaEntity; + +/** + * Une usine de {@link EntitiesSet}. + * + * Created on 18/10/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class EntitiesSetFactory { + + protected final ImmutableMap<String, EntitiesSet> cache; + + public EntitiesSetFactory(ObserveSpeciesListConfiguration speciesListConfiguration) { + + ImmutableMap.Builder<String, EntitiesSet> builder = ImmutableMap.builder(); + + // TripSeine + registerReferentialEntitiesSet(builder, + TripSeine.class, + TripSeine.PROPERTY_CAPTAIN, + Person.class, + Persons.newCaptainPredicate()); + registerReferentialEntitiesSet(builder, + TripSeine.class, + TripSeine.PROPERTY_OBSERVER, + Person.class, + Persons.newObserverPredicate()); + registerReferentialEntitiesSet(builder, + TripSeine.class, + TripSeine.PROPERTY_DATA_ENTRY_OPERATOR, + Person.class, + Persons.newDataEntryOperatorPredicate()); + registerReferentialEntitiesSet(builder, + TripSeine.class, + TripSeine.PROPERTY_VESSEL, + Vessel.class, + Vessels.newVesselSeinePredicate()); + + // TripLongLine + registerReferentialEntitiesSet(builder, + TripLongline.class, + TripLongline.PROPERTY_CAPTAIN, + Person.class, + Persons.newCaptainPredicate()); + registerReferentialEntitiesSet(builder, + TripLongline.class, + TripLongline.PROPERTY_OBSERVER, + Person.class, + Persons.newObserverPredicate()); + registerReferentialEntitiesSet(builder, + TripLongline.class, + TripLongline.PROPERTY_DATA_ENTRY_OPERATOR, + Person.class, + Persons.newDataEntryOperatorPredicate()); + registerReferentialEntitiesSet(builder, + TripLongline.class, + TripLongline.PROPERTY_VESSEL, + Vessel.class, + Vessels.newVesselLonglinePredicate()); + + // ObjectSchoolEstimate + registerSpeciesListEntitiesSet(builder, + ObjectSchoolEstimate.class, + ObjectSchoolEstimate.PROPERTY_SPECIES, + speciesListConfiguration.getSpeciesListSeineObjectSchoolEstimateId()); + + // ObjectObservedSpecies + registerSpeciesListEntitiesSet(builder, + ObjectObservedSpecies.class, + ObjectObservedSpecies.PROPERTY_SPECIES, + speciesListConfiguration.getSpeciesListSeineObjectObservedSpeciesId()); + + // SchoolEstimate + registerSpeciesListEntitiesSet(builder, + SchoolEstimate.class, + SchoolEstimate.PROPERTY_SPECIES, + speciesListConfiguration.getSpeciesListSeineSchoolEstimateId()); + + this.cache = builder.build(); + + } + + public <P extends TopiaEntity, C extends TopiaEntity> EntitiesSet<C> newEntitiesSet(Class<P> parentType, + Class<C> propertyType, + String propertyName) { + + Preconditions.checkNotNull(parentType, "Parent type is required"); + Preconditions.checkNotNull(propertyName, "Property name is required"); + Preconditions.checkNotNull(propertyType, "Property type is required"); + + String key = buildKey(parentType, propertyName); + EntitiesSet<C> entitiesSet = cache.get(key); + + if (entitiesSet == null) { + + // Pas de filtre spécifique trouvé, on en construit un générique + + if (Entities.isReferentielClass(propertyType)) { + + // On veut tous les référentiels sauf ceux qui sont désactivés + entitiesSet = new EntitiesSet<>(propertyType, (Predicate<C>) ReferenceEntities.newEnablePredicate()); + + } else { + + // On veut toutes les entités + entitiesSet = new EntitiesSet<>(propertyType, null); + + } + + } + + return entitiesSet; + + } + + protected <P extends TopiaEntity> String buildKey(Class<P> parentType, String propertyName) { + return parentType.getName() + "#" + propertyName; + } + + protected <P extends TopiaEntity, C extends ReferenceEntity> void registerReferentialEntitiesSet( + ImmutableMap.Builder<String, EntitiesSet> builder, + Class<P> parentType, + String propertyName, + Class<C> propertyType, + Predicate<C> filter) { + + filter = Predicates.and(filter, ReferenceEntities.newEnablePredicate()); + + EntitiesSet<C> entitiesSet = new EntitiesSet<>(propertyType, filter); + registerEntitiesSet(builder, parentType, propertyName, entitiesSet); + + } + + protected <P extends TopiaEntity> void registerSpeciesListEntitiesSet( + ImmutableMap.Builder<String, EntitiesSet> builder, + Class<P> parentType, + String propertyName, + String speciesListId) { + + EntitiesSet<Species> entitiesSet = new SpeciesListEntitiesSet(speciesListId); + registerEntitiesSet(builder, parentType, propertyName, entitiesSet); + + } + + protected <P extends TopiaEntity, C extends TopiaEntity> void registerEntitiesSet( + ImmutableMap.Builder<String, EntitiesSet> builder, + Class<P> parentType, + String propertyName, + EntitiesSet<C> entitiesSet) { + + String key = buildKey(parentType, propertyName); + builder.put(key, entitiesSet); + + } + +} 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 deleted file mode 100644 index c3e27d5..0000000 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/entity/ObserveEntitiesFilters.java +++ /dev/null @@ -1,145 +0,0 @@ -package fr.ird.observe.services.entity; - -import com.google.common.base.Preconditions; -import com.google.common.base.Predicate; -import com.google.common.base.Predicates; -import com.google.common.collect.Maps; -import fr.ird.observe.entities.longline.TripLongline; -import fr.ird.observe.entities.referentiel.Person; -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.Species; -import fr.ird.observe.entities.referentiel.SpeciesLists; -import fr.ird.observe.entities.referentiel.Vessel; -import fr.ird.observe.entities.referentiel.Vessels; -import fr.ird.observe.entities.seine.ObjectObservedSpecies; -import fr.ird.observe.entities.seine.ObjectSchoolEstimate; -import fr.ird.observe.entities.seine.SchoolEstimate; -import fr.ird.observe.entities.seine.TripSeine; -import fr.ird.observe.services.dto.IdDto; -import org.nuiton.topia.persistence.TopiaEntity; - -import java.util.Map; - -/** - * FIXME Ca sert à quoi? - * - * @author Sylvain Bavencoff - bavencoff@codelutin.com - */ -public class ObserveEntitiesFilters { - - protected static Map<Class<? extends TopiaEntity>, Map<String, EntitiesSet>> ENTITIES_SETS = null; - - protected static <P extends TopiaEntity, C extends TopiaEntity> void addFilter( - Class<P> parentType, - Class<C> propertyType, - String propertyName, - Predicate<C> filter) { - - if (ReferenceEntity.class.isAssignableFrom(propertyType)) { - - filter = Predicates.and(filter, (Predicate<C>) ReferenceEntities.newEnablePredicate()); - - } - - EntitiesSet<C> entitiesSet = new UniverseEntitiesSet<C>(propertyType, filter); - - addFilter(parentType, propertyName, entitiesSet); - - } - - protected static <P extends TopiaEntity, C extends TopiaEntity> void addFilter( - Class<P> parentType, - String propertyName, - EntitiesSet<C> entitiesSet) { - - Map<String, EntitiesSet> entitiesSetByProperty = ENTITIES_SETS.get(parentType); - - if (entitiesSetByProperty == null) { - entitiesSetByProperty = Maps.newHashMap(); - ENTITIES_SETS.put(parentType, entitiesSetByProperty); - } - - entitiesSetByProperty.put(propertyName, entitiesSet); - - } - - 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) { - - Preconditions.checkNotNull(parentType, "Parent type is required"); - Preconditions.checkNotNull(propertyType, "Property type is required"); - Preconditions.checkNotNull(dtoType, "DTO type is required"); - Preconditions.checkNotNull(propertyName, "Property name is required"); - - if (ENTITIES_SETS == null) { - init(); - } - - EntitiesSet<C> entitiesSet = null; - - Map<String, EntitiesSet> filterByProperty = ENTITIES_SETS.get(parentType); - - if (filterByProperty != null) { - entitiesSet = (EntitiesSet<C>) filterByProperty.get(propertyName); - } - - ObserveEntityFilter<P, C, D> observeEntityFilter; - - if (entitiesSet == null) { - - if (ReferenceEntity.class.isAssignableFrom(propertyType)) { - - entitiesSet = new UniverseEntitiesSet<C>(propertyType, (Predicate<C>) ReferenceEntities.newEnablePredicate()); - - } else { - - entitiesSet = new UniverseEntitiesSet<C>(propertyType); - - } - - observeEntityFilter = new ObserveEntityFilter<P, C, D>(parentType, propertyType, dtoType, null, entitiesSet); - - } else { - - observeEntityFilter = new ObserveEntityFilter<P, C, D>(parentType, propertyType, dtoType, propertyName, entitiesSet); - } - - return observeEntityFilter; - - } - - public static void init() { - ENTITIES_SETS = Maps.newHashMap(); - // TripSeine - addFilter(TripSeine.class, Person.class, TripSeine.PROPERTY_CAPTAIN, Persons.newCaptainPredicate()); - addFilter(TripSeine.class, Person.class, TripSeine.PROPERTY_OBSERVER, Persons.newObserverPredicate()); - addFilter(TripSeine.class, Person.class, TripSeine.PROPERTY_DATA_ENTRY_OPERATOR, Persons.newDataEntryOperatorPredicate()); - addFilter(TripSeine.class, Vessel.class, TripSeine.PROPERTY_VESSEL, Vessels.newVesselSeinePredicate()); - - // TripLongLine - addFilter(TripLongline.class, Person.class, TripLongline.PROPERTY_CAPTAIN, Persons.newCaptainPredicate()); - addFilter(TripLongline.class, Person.class, TripLongline.PROPERTY_OBSERVER, Persons.newObserverPredicate()); - addFilter(TripLongline.class, Person.class, TripLongline.PROPERTY_DATA_ENTRY_OPERATOR, Persons.newDataEntryOperatorPredicate()); - addFilter(TripLongline.class, Vessel.class, TripLongline.PROPERTY_VESSEL, Vessels.newVesselLonglinePredicate()); - - // ObjectSchoolEstimate - addFilter(ObjectSchoolEstimate.class, - ObjectSchoolEstimate.PROPERTY_SPECIES, - new SpeciesListEntitiesSet(ReferenceEntities.<Species>newEnablePredicate(), SpeciesLists.SPECIES_LIST_SEINE_OBJECT_SCHOOL_ESTIMATE_ID)); - - addFilter(ObjectObservedSpecies.class, - ObjectObservedSpecies.PROPERTY_SPECIES, - new SpeciesListEntitiesSet(ReferenceEntities.<Species>newEnablePredicate(), SpeciesLists.SPECIES_LIST_SEINE_OBJECT_OBSERVED_SPECIES_ID)); - - addFilter(SchoolEstimate.class, - SchoolEstimate.PROPERTY_SPECIES, - new SpeciesListOceanEntitiesSet(ReferenceEntities.<Species>newEnablePredicate(), SpeciesLists.SPECIES_LIST_SEINE_SCHOOL_ESTIMATE_ID)); - - } - -} 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 deleted file mode 100644 index ff5dbcd..0000000 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/entity/ObserveEntityFilter.java +++ /dev/null @@ -1,73 +0,0 @@ -package fr.ird.observe.services.entity; - -import fr.ird.observe.services.dto.IdDto; -import org.nuiton.topia.persistence.TopiaEntity; - -/** - * FIXME Ca sert à quoi? - * - * @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 EntitiesSet<C> entitiesSet; - - public ObserveEntityFilter(Class<P> parentType, Class<C> entityType, Class<D> dtoType, String propertyName, EntitiesSet<C> entitiesSet) { - this.parentType = parentType; - this.entityType = entityType; - this.dtoType = dtoType; - this.propertyName = propertyName; - this.entitiesSet = entitiesSet; - } - - public Class<P> getParentType() { - return parentType; - } - - public Class<C> getEntityType() { - return entityType; - } - - public Class<D> getDtoType() { - return dtoType; - } - - public String getPropertyName() { - return propertyName; - } - - public EntitiesSet<C> getEntitiesSet() { - return entitiesSet; - } - - @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/entity/SpeciesListEntitiesSet.java b/observe-services-topia/src/main/java/fr/ird/observe/services/entity/SpeciesListEntitiesSet.java index a4d6ebc..f191f76 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/entity/SpeciesListEntitiesSet.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/entity/SpeciesListEntitiesSet.java @@ -1,13 +1,11 @@ package fr.ird.observe.services.entity; -import com.google.common.base.Predicate; import fr.ird.observe.ObserveTopiaPersistenceContext; +import fr.ird.observe.entities.referentiel.ReferenceEntities; import fr.ird.observe.entities.referentiel.Species; import fr.ird.observe.entities.referentiel.SpeciesList; import fr.ird.observe.entities.referentiel.SpeciesListTopiaDao; -import java.util.Map; - /** * FIXME Ca sert à quoi? * @@ -15,12 +13,13 @@ import java.util.Map; */ public class SpeciesListEntitiesSet extends EntitiesSet<Species> { + /** + * L'id de la liste d'espèces à utiliser. + */ protected final String speciesListId; - protected final Predicate<Species> filter; - - public SpeciesListEntitiesSet(Predicate<Species> filter, String speciesListId) { - this.filter = filter; + public SpeciesListEntitiesSet(String speciesListId) { + super(Species.class, ReferenceEntities.<Species>newEnablePredicate()); this.speciesListId = speciesListId; } @@ -31,8 +30,4 @@ public class SpeciesListEntitiesSet extends EntitiesSet<Species> { return speciesList.getSpecies(); } - @Override - protected Predicate<Species> getFilter(Map<String, Object> requestContext) { - return filter; - } } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/entity/SpeciesListOceanEntitiesSet.java b/observe-services-topia/src/main/java/fr/ird/observe/services/entity/SpeciesListOceanEntitiesSet.java index 2f7468a..74505c7 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/entity/SpeciesListOceanEntitiesSet.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/entity/SpeciesListOceanEntitiesSet.java @@ -15,24 +15,21 @@ import java.util.Map; */ public class SpeciesListOceanEntitiesSet extends SpeciesListEntitiesSet { - public SpeciesListOceanEntitiesSet(Predicate<Species> filter, String speciesListId) { - super(filter, speciesListId); + public SpeciesListOceanEntitiesSet(String speciesListId) { + super(speciesListId); } @Override protected Predicate<Species> getFilter(Map<String, Object> requestContext) { + Predicate<Species> filter = super.getFilter(requestContext); Ocean ocean = (Ocean) requestContext.get(Species.PROPERTY_OCEAN); if (ocean != null) { - Predicate<Species> oceanFilter = Species2.newSpeciesByOceanPredicate(ocean); - if (filter == null) { - filter = oceanFilter; - } else { - filter = Predicates.and(filter, oceanFilter); - } + Predicate<Species> oceanFilter = Species2.newSpeciesByOceanPredicate(ocean); + filter = Predicates.and(filter, oceanFilter); } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/entity/UniverseEntitiesSet.java b/observe-services-topia/src/main/java/fr/ird/observe/services/entity/UniverseEntitiesSet.java deleted file mode 100644 index f0e0953..0000000 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/entity/UniverseEntitiesSet.java +++ /dev/null @@ -1,41 +0,0 @@ -package fr.ird.observe.services.entity; - -import com.google.common.base.Predicate; -import fr.ird.observe.ObserveTopiaPersistenceContext; -import org.nuiton.topia.persistence.TopiaDao; -import org.nuiton.topia.persistence.TopiaEntity; - -import java.util.Map; - -/** - * FIXME Ca sert à quoi? - * - * @author Sylvain Bavencoff - bavencoff@codelutin.com - */ -public class UniverseEntitiesSet<E extends TopiaEntity> extends EntitiesSet<E> { - - protected final Class<E> entityClass; - - protected final Predicate<E> filter; - - public UniverseEntitiesSet(Class<E> entityClass, Predicate<E> filter) { - this.filter = filter; - this.entityClass = entityClass; - } - - public UniverseEntitiesSet(Class<E> entityClass) { - this.filter = null; - this.entityClass = entityClass; - } - - protected Iterable<E> getEntitiesSetBase(ObserveTopiaPersistenceContext persistenceContext) { - TopiaDao<E> dao = persistenceContext.getDao(entityClass); - return dao.findAll(); - } - - @Override - protected Predicate<E> getFilter(Map<String, Object> requestContext) { - return filter; - } - -} diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/ApplicationContextResource.java b/observe-services-topia/src/test/java/fr/ird/observe/services/ApplicationContextResource.java index 16395c2..22a5b6b 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/ApplicationContextResource.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/ApplicationContextResource.java @@ -63,7 +63,10 @@ public class ApplicationContextResource implements TestRule { private Path temporaryDirectoryRoot; + private final ObserveSpeciesListConfiguration speciesListConfiguration; + public ApplicationContextResource() { + this.speciesListConfiguration = ObserveSpeciesListConfiguration.newDefaultConfiguration(); this.serviceFactory = new ObserveServiceFactoryTopia() { @Override @@ -84,6 +87,7 @@ public class ApplicationContextResource implements TestRule { Locale.FRANCE, ReferentialLocale.FR, temporaryDirectoryRoot.toFile(), + speciesListConfiguration, dataSourceConfiguration ); return serviceFactory.newService(observeServiceInitializer, serviceType); @@ -94,6 +98,7 @@ public class ApplicationContextResource implements TestRule { Locale.FRANCE, ReferentialLocale.FR, temporaryDirectoryRoot.toFile(), + speciesListConfiguration, dataSourceConnection ); return serviceFactory.newService(observeServiceInitializer, serviceType); diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/RigthTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/RigthTest.java index 94ea9a9..065ac30 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/RigthTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/RigthTest.java @@ -6,6 +6,7 @@ import fr.ird.observe.services.ObserveServiceContextTopia; import fr.ird.observe.services.ObserveServiceContextTopiaTaiste; import fr.ird.observe.services.ObserveServiceFactoryTopia; import fr.ird.observe.services.ObserveServiceInitializer; +import fr.ird.observe.services.ObserveSpeciesListConfiguration; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationTopiaPG; import fr.ird.observe.services.configuration.ObserveDataSourceConnection; @@ -25,6 +26,8 @@ import java.io.File; import java.util.Locale; /** + * FIXME Ca sert à quoi ? et je comprends pas le mot rigth ? + * * @author Sylvain Bavencoff - bavencoff@codelutin.com */ @Ignore @@ -81,13 +84,12 @@ public class RigthTest { } - - public <S extends ObserveService> S newService(ObserveDataSourceConnection dataSourceConnection, Class<S> serviceType) { ObserveServiceInitializer observeServiceInitializer = ObserveServiceInitializer.create( Locale.FRANCE, ReferentialLocale.FR, temporaryDirectoryRoot, + ObserveSpeciesListConfiguration.newDefaultConfiguration(), dataSourceConnection ); return serviceFactory.newService(observeServiceInitializer, serviceType); @@ -98,6 +100,7 @@ public class RigthTest { Locale.FRANCE, ReferentialLocale.FR, temporaryDirectoryRoot, + ObserveSpeciesListConfiguration.newDefaultConfiguration(), dataSourceConfiguration ); return serviceFactory.newService(observeServiceInitializer, serviceType); 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 f44daa5..c79d232 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(), 6); + Assert.assertEquals(formDto.sizeLabels(), 7); 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(), 6); + Assert.assertEquals(formDto.sizeLabels(), 7); 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(), 6); + Assert.assertEquals(formDto.sizeLabels(), 7); 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>.