This is an automated email from the git hooks/post-receive script. New commit to branch develop-5.x in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit cf888e3f3ddd959ea84dce07e74a5df87c5b975e Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Dec 10 11:13:34 2016 +0100 Classement des marées dans l'arbre (fixes #8861) --- .../application/swing/ui/admin/AdminUIModel.java | 6 ++-- .../list/impl/longline/TripLonglinesUIHandler.java | 13 ++++---- .../list/impl/seine/TripSeinesUIHandler.java | 13 ++++---- .../swing/ui/storage/tabs/DataSelectionModel.java | 14 ++++---- .../swing/ui/tree/ObserveTreeHelper.java | 5 ++- .../loadors/ProgramLonglineNodeChildLoador.java | 4 +-- .../tree/loadors/ProgramSeineNodeChildLoador.java | 4 +-- .../v1/longline/TripLonglineServiceController.java | 6 ++-- .../v1/seine/TripSeineServiceController.java | 6 ++-- .../entities/longline/TripLonglineTopiaDao.java | 4 +-- .../observe/entities/seine/TripSeineTopiaDao.java | 4 +-- ...ataReferenceSet.java => DataReferenceList.java} | 16 ++++----- .../ird/observe/services/dto/DataReferenceSet.java | 6 ++-- ...nceSet.java => ReferenceCollectionSupport.java} | 9 ++--- .../services/dto/gson/ObserveDtoGsonSupplier.java | 3 ++ ...tAdapter.java => DataReferenceListAdapter.java} | 16 ++++++--- .../gson/reference/DataReferenceSetAdapter.java | 8 ++++- ...java => ReferenceCollectionSupportAdapter.java} | 18 +++++----- .../reference/ReferentialReferenceSetAdapter.java | 8 ++++- .../dto/referential/ReferentialReferenceSet.java | 10 +++--- .../seine/TripSeineGearUseServiceRestTest.java | 6 ++-- .../service/seine/TripSeineServiceRestTest.java | 6 ++-- .../services/topia/ObserveServiceTopia.java | 38 +++++++++++++++++----- .../topia/service/ReferentialServiceTopia.java | 4 +-- .../service/longline/TripLonglineServiceTopia.java | 18 +++++----- .../topia/service/seine/TripSeineServiceTopia.java | 12 ++++--- .../service/TripManagementServiceTopiaTest.java | 5 +-- .../service/seine/TripSeineServiceTopiaTest.java | 12 +++---- .../service/longline/TripLonglineService.java | 6 ++-- .../services/service/seine/TripSeineService.java | 6 ++-- 30 files changed, 166 insertions(+), 120 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUIModel.java index 24255db..f001ac4 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUIModel.java @@ -44,7 +44,7 @@ import fr.ird.observe.application.swing.validation.ValidationModelMode; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.IdHelper; import fr.ird.observe.services.dto.ObserveModelType; import fr.ird.observe.services.dto.longline.TripLonglineDto; @@ -1443,11 +1443,11 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { List<DataReference<?>> existingTrip = Lists.newArrayList(); TripSeineService tripSeineService = source.newTripSeineService(); - DataReferenceSet<TripSeineDto> tripSeineSet = tripSeineService.getAllTripSeine(); + DataReferenceList<TripSeineDto> tripSeineSet = tripSeineService.getAllTripSeine(); existingTrip.addAll(tripSeineSet.getReferences()); TripLonglineService tripLonglineService = source.newTripLonglineService(); - DataReferenceSet<TripLonglineDto> tripLonglineSet = tripLonglineService.getAllTripLongline(); + DataReferenceList<TripLonglineDto> tripLonglineSet = tripLonglineService.getAllTripLongline(); existingTrip.addAll(tripLonglineSet.getReferences()); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUIHandler.java index 76cb0a3..a9d351d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUIHandler.java @@ -25,14 +25,14 @@ package fr.ird.observe.application.swing.ui.content.list.impl.longline; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.constants.DataContextType; +import fr.ird.observe.application.swing.ui.content.ContentMode; +import fr.ird.observe.application.swing.ui.content.list.ContentListUIHandler; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.service.longline.TripLonglineService; -import fr.ird.observe.application.swing.ui.content.ContentMode; -import fr.ird.observe.application.swing.ui.content.list.ContentListUIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -90,9 +90,8 @@ public class TripLonglinesUIHandler extends ContentListUIHandler<ProgramDto, Tri @Override protected void finalizeOpenUI() { - Class referenceType = ProgramDto.class; - ReferentialReference<ProgramDto> programRef = getDataSource().getReferentialReference(referenceType, getSelectedParentId()); - String title = getDecoratorService().getReferentialReferenceDecorator(referenceType).toString(programRef); + ReferentialReference<ProgramDto> programRef = getDataSource().getReferentialReference(ProgramDto.class, getSelectedParentId()); + String title = getDecoratorService().getReferentialReferenceDecorator(ProgramDto.class).toString(programRef); getUi().setContentTitle(title); } @@ -100,7 +99,7 @@ public class TripLonglinesUIHandler extends ContentListUIHandler<ProgramDto, Tri protected List<DataReference<TripLonglineDto>> getChilds(String parentId) { TripLonglineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripLonglineService(); - DataReferenceSet<TripLonglineDto> tripLonglineByProgram = service.getTripLonglineByProgram( parentId); + DataReferenceList<TripLonglineDto> tripLonglineByProgram = service.getTripLonglineByProgram(parentId); if (log.isDebugEnabled()) { log.debug("Will use " + tripLonglineByProgram.sizeReference() + " trips."); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUIHandler.java index bf51dcd..2ca246f 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUIHandler.java @@ -24,14 +24,14 @@ package fr.ird.observe.application.swing.ui.content.list.impl.seine; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.constants.DataContextType; +import fr.ird.observe.application.swing.ui.content.ContentMode; +import fr.ird.observe.application.swing.ui.content.list.ContentListUIHandler; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.services.service.seine.TripSeineService; -import fr.ird.observe.application.swing.ui.content.ContentMode; -import fr.ird.observe.application.swing.ui.content.list.ContentListUIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -87,9 +87,8 @@ public class TripSeinesUIHandler extends ContentListUIHandler<ProgramDto, TripSe @Override protected void finalizeOpenUI() { - Class referenceType = ProgramDto.class; - ReferentialReference<ProgramDto> programRef = getDataSource().getReferentialReference(referenceType, getSelectedParentId()); - String title = getDecoratorService().getReferentialReferenceDecorator(referenceType).toString(programRef); + ReferentialReference<ProgramDto> programRef = getDataSource().getReferentialReference(ProgramDto.class, getSelectedParentId()); + String title = getDecoratorService().getReferentialReferenceDecorator(ProgramDto.class).toString(programRef); getUi().setContentTitle(title); } @@ -97,7 +96,7 @@ public class TripSeinesUIHandler extends ContentListUIHandler<ProgramDto, TripSe protected List<DataReference<TripSeineDto>> getChilds(String parentId) { TripSeineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripSeineService(); - DataReferenceSet<TripSeineDto> tripSeineByProgram = service.getTripSeineByProgram(parentId); + DataReferenceList<TripSeineDto> tripSeineByProgram = service.getTripSeineByProgram(parentId); if (log.isDebugEnabled()) { log.debug("Will use " + tripSeineByProgram.sizeReference() + " trips."); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/DataSelectionModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/DataSelectionModel.java index 7b9ab3a..8a4df5e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/DataSelectionModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/DataSelectionModel.java @@ -22,13 +22,13 @@ package fr.ird.observe.application.swing.ui.storage.tabs; import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableSet; +import com.google.common.collect.ImmutableList; import com.google.common.collect.Maps; import com.google.common.collect.Sets; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.services.dto.AbstractReference; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ProgramHelper; @@ -81,12 +81,12 @@ public class DataSelectionModel implements Serializable { if (ProgramHelper.isProgramSeine(program)) { - DataReferenceSet<TripSeineDto> tripSeineRef = tripSeineService.getTripSeineByProgram(program.getId()); + DataReferenceList<TripSeineDto> tripSeineRef = tripSeineService.getTripSeineByProgram(program.getId()); referenceHelper.addAll(tripSeineRef.getReferences()); } else if (ProgramHelper.isProgramLongline(program)) { - DataReferenceSet<TripLonglineDto> tripLonglineRef = tripLonglineService.getTripLonglineByProgram(program.getId()); + DataReferenceList<TripLonglineDto> tripLonglineRef = tripLonglineService.getTripLonglineByProgram(program.getId()); referenceHelper.addAll(tripLonglineRef.getReferences()); } @@ -106,14 +106,14 @@ public class DataSelectionModel implements Serializable { Set<ReferentialReference<ProgramDto>> programSet = source.getReferentialReferences(ProgramDto.class); - ImmutableSet<DataReference> allTrips; + ImmutableList<DataReference> allTrips; if (tripSeine) { TripSeineService tripSeineService = source.newTripSeineService(); - allTrips = (ImmutableSet) tripSeineService.getAllTripSeine().getReferences(); + allTrips = (ImmutableList) tripSeineService.getAllTripSeine().getReferences(); } else { TripLonglineService tripLonglineService = source.newTripLonglineService(); - allTrips = (ImmutableSet) tripLonglineService.getAllTripLongline().getReferences(); + allTrips = (ImmutableList) tripLonglineService.getAllTripLongline().getReferences(); } for (ReferentialReference<ProgramDto> program : programSet) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeHelper.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeHelper.java index a29372a..193e249 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeHelper.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeHelper.java @@ -24,7 +24,6 @@ package fr.ird.observe.application.swing.ui.tree; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableListMultimap; import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Multimaps; @@ -148,11 +147,11 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { if (source.canReadData()) { // on va charger en une seule fois tous les nœuds des marées - ImmutableSet<DataReference<TripSeineDto>> tripsSeine = source.newTripSeineService().getAllTripSeine().getReferences(); + ImmutableList<DataReference<TripSeineDto>> tripsSeine = source.newTripSeineService().getAllTripSeine().getReferences(); if (log.isInfoEnabled()) { log.info("[PS] Loaded " + tripsSeine.size() + " trip(s)."); } - ImmutableSet<DataReference<TripLonglineDto>> tripsLongline = source.newTripLonglineService().getAllTripLongline().getReferences(); + ImmutableList<DataReference<TripLonglineDto>> tripsLongline = source.newTripLonglineService().getAllTripLongline().getReferences(); if (log.isInfoEnabled()) { log.info("[LL] Loaded " + tripsLongline.size() + " trip(s)."); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ProgramLonglineNodeChildLoador.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ProgramLonglineNodeChildLoador.java index 8febb26..b245f12 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ProgramLonglineNodeChildLoador.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ProgramLonglineNodeChildLoador.java @@ -28,7 +28,7 @@ import fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel; import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import fr.ird.observe.application.swing.ui.tree.node.TripLonglineNode; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.GearUseFeaturesLonglineDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; @@ -92,7 +92,7 @@ public class ProgramLonglineNodeChildLoador extends AbstractNodeChildLoador<Data } else { TripLonglineService tripLonglineService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripLonglineService(); - DataReferenceSet<TripLonglineDto> tripLonglineByProgram = tripLonglineService.getTripLonglineByProgram(parentId); + DataReferenceList<TripLonglineDto> tripLonglineByProgram = tripLonglineService.getTripLonglineByProgram(parentId); result = new ArrayList<>(tripLonglineByProgram.getReferences()); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ProgramSeineNodeChildLoador.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ProgramSeineNodeChildLoador.java index c4d178f..9df8479 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ProgramSeineNodeChildLoador.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ProgramSeineNodeChildLoador.java @@ -27,7 +27,7 @@ import fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel; import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import fr.ird.observe.application.swing.ui.tree.node.TripSeineNode; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; import fr.ird.observe.services.dto.seine.RouteDto; import fr.ird.observe.services.dto.seine.TripSeineDto; @@ -87,7 +87,7 @@ public class ProgramSeineNodeChildLoador extends AbstractNodeChildLoador<DataRef } else { TripSeineService tripSeineService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripSeineService(); - DataReferenceSet<TripSeineDto> tripSeineByProgram = tripSeineService.getTripSeineByProgram(parentId); + DataReferenceList<TripSeineDto> tripSeineByProgram = tripSeineService.getTripSeineByProgram(parentId); result = new ArrayList<>(tripSeineByProgram.getReferences()); diff --git a/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/TripLonglineServiceController.java b/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/TripLonglineServiceController.java index 00a431f..6f4c67d 100644 --- a/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/TripLonglineServiceController.java +++ b/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/TripLonglineServiceController.java @@ -25,7 +25,7 @@ package fr.ird.observe.application.web.controller.v1.longline; import com.google.common.collect.ImmutableList; import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.TripMapDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; @@ -46,12 +46,12 @@ public class TripLonglineServiceController extends ObserveAuthenticatedServiceCo } @Override - public DataReferenceSet<TripLonglineDto> getAllTripLongline() { + public DataReferenceList<TripLonglineDto> getAllTripLongline() { return service.getAllTripLongline(); } @Override - public DataReferenceSet<TripLonglineDto> getTripLonglineByProgram(String programId) { + public DataReferenceList<TripLonglineDto> getTripLonglineByProgram(String programId) { return service.getTripLonglineByProgram(programId); } diff --git a/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TripSeineServiceController.java b/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TripSeineServiceController.java index 8a9e4be..9a2d6f2 100644 --- a/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TripSeineServiceController.java +++ b/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TripSeineServiceController.java @@ -25,7 +25,7 @@ package fr.ird.observe.application.web.controller.v1.seine; import com.google.common.collect.ImmutableList; import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.TripMapDto; import fr.ird.observe.services.dto.referential.ReferentialReference; @@ -46,12 +46,12 @@ public class TripSeineServiceController extends ObserveAuthenticatedServiceContr } @Override - public DataReferenceSet<TripSeineDto> getAllTripSeine() { + public DataReferenceList<TripSeineDto> getAllTripSeine() { return service.getAllTripSeine(); } @Override - public DataReferenceSet<TripSeineDto> getTripSeineByProgram(String programId) { + public DataReferenceList<TripSeineDto> getTripSeineByProgram(String programId) { return service.getTripSeineByProgram(programId); } diff --git a/entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineTopiaDao.java b/entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineTopiaDao.java index ae0e43f..d765833 100644 --- a/entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineTopiaDao.java +++ b/entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineTopiaDao.java @@ -265,7 +265,7 @@ public class TripLonglineTopiaDao extends AbstractTripLonglineTopiaDao<TripLongl " AND t.tripType = tt.topiaId" + " AND t.observer = p.topiaId" + " AND t.vessel = v.topiaId" + - " ORDER BY t.endDate"; + " ORDER BY t.startDate"; StubSqlQuery request = new StubSqlQuery(sql, programId, referenceLocale); return context.findMultipleResult(request); @@ -291,7 +291,7 @@ public class TripLonglineTopiaDao extends AbstractTripLonglineTopiaDao<TripLongl " AND t.tripType = tt.topiaId" + " AND t.observer = p.topiaId" + " AND t.vessel = v.topiaId" + - " ORDER BY t.endDate"; + " ORDER BY t.startDate"; StubSqlQuery request = new StubSqlQuery(sql, tripId, referenceLocale); return context.findSingleResult(request); diff --git a/entities/src/main/java/fr/ird/observe/entities/seine/TripSeineTopiaDao.java b/entities/src/main/java/fr/ird/observe/entities/seine/TripSeineTopiaDao.java index b7c83d1..9e335e8 100644 --- a/entities/src/main/java/fr/ird/observe/entities/seine/TripSeineTopiaDao.java +++ b/entities/src/main/java/fr/ird/observe/entities/seine/TripSeineTopiaDao.java @@ -204,7 +204,7 @@ public class TripSeineTopiaDao extends AbstractTripSeineTopiaDao<TripSeine> { " AND t.program = pr.topiaId" + " AND t.observer = p.topiaId" + " AND t.vessel = v.topiaId" + - " ORDER BY t.endDate"; + " ORDER BY t.startDate"; StubSqlQuery request = new StubSqlQuery(sql, programId, referenceLocale); return context.findMultipleResult(request); @@ -229,7 +229,7 @@ public class TripSeineTopiaDao extends AbstractTripSeineTopiaDao<TripSeine> { " AND t.program = pr.topiaId" + " AND t.observer = p.topiaId" + " AND t.vessel = v.topiaId" + - " ORDER BY t.endDate"; + " ORDER BY t.startDate"; StubSqlQuery request = new StubSqlQuery(sql, tripId, referenceLocale); return context.findSingleResult(request); diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/DataReferenceSet.java b/services-dto/src/main/java/fr/ird/observe/services/dto/DataReferenceList.java similarity index 62% copy from services-dto/src/main/java/fr/ird/observe/services/dto/DataReferenceSet.java copy to services-dto/src/main/java/fr/ird/observe/services/dto/DataReferenceList.java index 0b459e7..ae8f9cc 100644 --- a/services-dto/src/main/java/fr/ird/observe/services/dto/DataReferenceSet.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/DataReferenceList.java @@ -23,27 +23,27 @@ package fr.ird.observe.services.dto; */ import com.google.common.base.MoreObjects; -import com.google.common.collect.ImmutableSet; +import com.google.common.collect.ImmutableList; -public class DataReferenceSet<R extends DataDto> extends AbstractReferenceSet<R, DataReference<R>> { +public class DataReferenceList<R extends DataDto> extends ReferenceCollectionSupport<R, DataReference<R>, ImmutableList<DataReference<R>>> { private static final long serialVersionUID = 1L; - public static <R extends DataDto> DataReferenceSet<R> of(Class<R> type, - ImmutableSet<DataReference<R>> references) { + public static <R extends DataDto> DataReferenceList<R> of(Class<R> type, + ImmutableList<DataReference<R>> references) { - return new DataReferenceSet<>(type, references); + return new DataReferenceList<>(type, references); } @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(PROPERTY_TYPE, type.getSimpleName()) - .toString(); + .add(PROPERTY_TYPE, type.getSimpleName()) + .toString(); } - protected DataReferenceSet(Class<R> type, ImmutableSet<DataReference<R>> references) { + protected DataReferenceList(Class<R> type, ImmutableList<DataReference<R>> references) { super(type, references); } diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/DataReferenceSet.java b/services-dto/src/main/java/fr/ird/observe/services/dto/DataReferenceSet.java index 0b459e7..ba4a7b2 100644 --- a/services-dto/src/main/java/fr/ird/observe/services/dto/DataReferenceSet.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/DataReferenceSet.java @@ -25,7 +25,7 @@ package fr.ird.observe.services.dto; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableSet; -public class DataReferenceSet<R extends DataDto> extends AbstractReferenceSet<R, DataReference<R>> { +public class DataReferenceSet<R extends DataDto> extends ReferenceCollectionSupport<R, DataReference<R>, ImmutableSet<DataReference<R>>> { private static final long serialVersionUID = 1L; @@ -39,8 +39,8 @@ public class DataReferenceSet<R extends DataDto> extends AbstractReferenceSet<R, @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(PROPERTY_TYPE, type.getSimpleName()) - .toString(); + .add(PROPERTY_TYPE, type.getSimpleName()) + .toString(); } protected DataReferenceSet(Class<R> type, ImmutableSet<DataReference<R>> references) { diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/AbstractReferenceSet.java b/services-dto/src/main/java/fr/ird/observe/services/dto/ReferenceCollectionSupport.java similarity index 83% rename from services-dto/src/main/java/fr/ird/observe/services/dto/AbstractReferenceSet.java rename to services-dto/src/main/java/fr/ird/observe/services/dto/ReferenceCollectionSupport.java index 90f1faf..60529ef 100644 --- a/services-dto/src/main/java/fr/ird/observe/services/dto/AbstractReferenceSet.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/ReferenceCollectionSupport.java @@ -22,13 +22,14 @@ package fr.ird.observe.services.dto; * #L% */ +import com.google.common.collect.ImmutableCollection; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; import java.io.Serializable; import java.util.Optional; -public abstract class AbstractReferenceSet<D extends IdDto, R extends AbstractReference<D>> implements ObserveDto, Serializable { +public abstract class ReferenceCollectionSupport<D extends IdDto, R extends AbstractReference<D>, C extends ImmutableCollection<R>> implements ObserveDto, Serializable { public static final String PROPERTY_TYPE = "type"; @@ -38,9 +39,9 @@ public abstract class AbstractReferenceSet<D extends IdDto, R extends AbstractRe protected final Class<D> type; - protected final ImmutableSet<R> references; + protected final C references; - protected AbstractReferenceSet(Class<D> type, ImmutableSet<R> references) { + protected ReferenceCollectionSupport(Class<D> type, C references) { this.type = type; this.references = references; } @@ -65,7 +66,7 @@ public abstract class AbstractReferenceSet<D extends IdDto, R extends AbstractRe return references.size(); } - public ImmutableSet<R> getReferences() { + public C getReferences() { return references; } diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java b/services-dto/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java index 40960fb..641a36d 100644 --- a/services-dto/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java @@ -30,10 +30,12 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import fr.ird.observe.services.dto.AbstractReference; import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.actions.report.ReportVariable; import fr.ird.observe.services.dto.gson.reference.DataReferenceAdapter; +import fr.ird.observe.services.dto.gson.reference.DataReferenceListAdapter; import fr.ird.observe.services.dto.gson.reference.DataReferenceSetAdapter; import fr.ird.observe.services.dto.gson.reference.ReferentialReferenceAdapter; import fr.ird.observe.services.dto.gson.reference.ReferentialReferenceSetAdapter; @@ -105,6 +107,7 @@ public class ObserveDtoGsonSupplier implements Supplier<Gson> { gsonBuilder.registerTypeAdapter(ReferentialReference.class, new ReferentialReferenceAdapter()); gsonBuilder.registerTypeAdapter(AbstractReference.class, new UnknownReferenceAdapter()); gsonBuilder.registerTypeAdapter(DataReferenceSet.class, new DataReferenceSetAdapter()); + gsonBuilder.registerTypeAdapter(DataReferenceList.class, new DataReferenceListAdapter()); gsonBuilder.registerTypeAdapter(ReferentialReferenceSet.class, new ReferentialReferenceSetAdapter()); gsonBuilder.registerTypeAdapter(Form.class, new FormAdapter()); diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/gson/reference/DataReferenceSetAdapter.java b/services-dto/src/main/java/fr/ird/observe/services/dto/gson/reference/DataReferenceListAdapter.java similarity index 71% copy from services-dto/src/main/java/fr/ird/observe/services/dto/gson/reference/DataReferenceSetAdapter.java copy to services-dto/src/main/java/fr/ird/observe/services/dto/gson/reference/DataReferenceListAdapter.java index c9fa27d..5a55a60 100644 --- a/services-dto/src/main/java/fr/ird/observe/services/dto/gson/reference/DataReferenceSetAdapter.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/gson/reference/DataReferenceListAdapter.java @@ -22,13 +22,14 @@ package fr.ird.observe.services.dto.gson.reference; * #L% */ -import com.google.common.collect.ImmutableSet; +import com.google.common.collect.ImmutableCollection; +import com.google.common.collect.ImmutableList; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import fr.ird.observe.services.dto.DataDto; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.reference.ReferenceSetDefinition; /** @@ -36,18 +37,23 @@ import fr.ird.observe.services.dto.reference.ReferenceSetDefinition; * * @author Tony Chemit - chemit@codelutin.com */ -public class DataReferenceSetAdapter<D extends DataDto> extends AbstractReferenceSetAdapter<D, DataReference<D>, DataReferenceSet<D>> { +public class DataReferenceListAdapter<D extends DataDto> extends ReferenceCollectionSupportAdapter<D, DataReference<D>, ImmutableList<DataReference<D>>, DataReferenceList<D>> { protected final DataReferenceAdapter<D> referenceAdapter = new DataReferenceAdapter<>(); @Override + protected ImmutableCollection.Builder<DataReference<D>> createBuilder() { + return ImmutableList.builder(); + } + + @Override protected ReferenceSetDefinition<D> getDefintion(Class<D> dtoType) { return referenceAdapter.getDefinition(dtoType); } @Override - protected DataReferenceSet<D> newReferenceSet(Class<D> dtoType, ImmutableSet<DataReference<D>> references, JsonObject jsonObject, JsonDeserializationContext context) { - return DataReferenceSet.of(dtoType, references); + protected DataReferenceList<D> newReferenceSet(Class<D> dtoType, ImmutableList<DataReference<D>> references, JsonObject jsonObject, JsonDeserializationContext context) { + return DataReferenceList.of(dtoType, references); } @Override diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/gson/reference/DataReferenceSetAdapter.java b/services-dto/src/main/java/fr/ird/observe/services/dto/gson/reference/DataReferenceSetAdapter.java index c9fa27d..4c3b64b 100644 --- a/services-dto/src/main/java/fr/ird/observe/services/dto/gson/reference/DataReferenceSetAdapter.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/gson/reference/DataReferenceSetAdapter.java @@ -22,6 +22,7 @@ package fr.ird.observe.services.dto.gson.reference; * #L% */ +import com.google.common.collect.ImmutableCollection; import com.google.common.collect.ImmutableSet; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonElement; @@ -36,11 +37,16 @@ import fr.ird.observe.services.dto.reference.ReferenceSetDefinition; * * @author Tony Chemit - chemit@codelutin.com */ -public class DataReferenceSetAdapter<D extends DataDto> extends AbstractReferenceSetAdapter<D, DataReference<D>, DataReferenceSet<D>> { +public class DataReferenceSetAdapter<D extends DataDto> extends ReferenceCollectionSupportAdapter<D, DataReference<D>, ImmutableSet<DataReference<D>>, DataReferenceSet<D>> { protected final DataReferenceAdapter<D> referenceAdapter = new DataReferenceAdapter<>(); @Override + protected ImmutableCollection.Builder<DataReference<D>> createBuilder() { + return ImmutableSet.builder(); + } + + @Override protected ReferenceSetDefinition<D> getDefintion(Class<D> dtoType) { return referenceAdapter.getDefinition(dtoType); } diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/gson/reference/AbstractReferenceSetAdapter.java b/services-dto/src/main/java/fr/ird/observe/services/dto/gson/reference/ReferenceCollectionSupportAdapter.java similarity index 73% rename from services-dto/src/main/java/fr/ird/observe/services/dto/gson/reference/AbstractReferenceSetAdapter.java rename to services-dto/src/main/java/fr/ird/observe/services/dto/gson/reference/ReferenceCollectionSupportAdapter.java index 3f491d6..dd832bc 100644 --- a/services-dto/src/main/java/fr/ird/observe/services/dto/gson/reference/AbstractReferenceSetAdapter.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/gson/reference/ReferenceCollectionSupportAdapter.java @@ -22,7 +22,7 @@ package fr.ird.observe.services.dto.gson.reference; * #L% */ -import com.google.common.collect.ImmutableSet; +import com.google.common.collect.ImmutableCollection; import com.google.gson.JsonArray; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonDeserializer; @@ -30,8 +30,8 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParseException; import fr.ird.observe.services.dto.AbstractReference; -import fr.ird.observe.services.dto.AbstractReferenceSet; import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.ReferenceCollectionSupport; import fr.ird.observe.services.dto.reference.ReferenceSetDefinition; import java.lang.reflect.Type; @@ -42,25 +42,25 @@ import java.lang.reflect.Type; * * @author Tony Chemit - chemit@codelutin.com */ -public abstract class AbstractReferenceSetAdapter<D extends IdDto, R extends AbstractReference<D>, S extends AbstractReferenceSet<D, R>> implements JsonDeserializer<S> { +public abstract class ReferenceCollectionSupportAdapter<D extends IdDto, R extends AbstractReference<D>, C extends ImmutableCollection<R>, S extends ReferenceCollectionSupport<D, R, C>> implements JsonDeserializer<S> { @Override public final S deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { JsonObject jsonObject = json.getAsJsonObject(); - Class<D> dtoType = context.deserialize(jsonObject.get(AbstractReferenceSet.PROPERTY_TYPE), Class.class); + Class<D> dtoType = context.deserialize(jsonObject.get(ReferenceCollectionSupport.PROPERTY_TYPE), Class.class); ReferenceSetDefinition<D> definition = getDefintion(dtoType); String[] propertyNames = definition.getPropertyNames(); Class<?>[] propertyTypes = definition.getPropertyTypes(); - JsonArray jsonPropertyValues = jsonObject.get(AbstractReferenceSet.PROPERTY_REFERENCES).getAsJsonArray(); + JsonArray jsonPropertyValues = jsonObject.get(ReferenceCollectionSupport.PROPERTY_REFERENCES).getAsJsonArray(); int referencesSize = jsonPropertyValues.size(); - ImmutableSet.Builder<R> references = ImmutableSet.builder(); + C.Builder<R> references = createBuilder(); for (int i = 0; i < referencesSize; i++) { @@ -69,14 +69,16 @@ public abstract class AbstractReferenceSetAdapter<D extends IdDto, R extends Abs } - return newReferenceSet(dtoType, references.build(), jsonObject, context); + return newReferenceSet(dtoType, (C) references.build(), jsonObject, context); } + protected abstract ImmutableCollection.Builder<R> createBuilder(); + protected abstract ReferenceSetDefinition<D> getDefintion(Class<D> dtoType); protected abstract R deserializeReference(JsonElement referenceJsonElement, JsonDeserializationContext context, Class<D> dtoType, String[] propertyNames, Class<?>... propertyTypes); - protected abstract S newReferenceSet(Class<D> dtoType, ImmutableSet<R> references, JsonObject jsonObject, JsonDeserializationContext context); + protected abstract S newReferenceSet(Class<D> dtoType, C references, JsonObject jsonObject, JsonDeserializationContext context); } diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/gson/reference/ReferentialReferenceSetAdapter.java b/services-dto/src/main/java/fr/ird/observe/services/dto/gson/reference/ReferentialReferenceSetAdapter.java index 5d04232..2fc3a11 100644 --- a/services-dto/src/main/java/fr/ird/observe/services/dto/gson/reference/ReferentialReferenceSetAdapter.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/gson/reference/ReferentialReferenceSetAdapter.java @@ -22,6 +22,7 @@ package fr.ird.observe.services.dto.gson.reference; * #L% */ +import com.google.common.collect.ImmutableCollection; import com.google.common.collect.ImmutableSet; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonElement; @@ -38,11 +39,16 @@ import java.util.Date; * * @author Tony Chemit - chemit@codelutin.com */ -public class ReferentialReferenceSetAdapter<D extends ReferentialDto> extends AbstractReferenceSetAdapter<D, ReferentialReference<D>, ReferentialReferenceSet<D>> { +public class ReferentialReferenceSetAdapter<D extends ReferentialDto> extends ReferenceCollectionSupportAdapter<D, ReferentialReference<D>, ImmutableSet<ReferentialReference<D>>, ReferentialReferenceSet<D>> { protected final ReferentialReferenceAdapter<D> referenceAdapter = new ReferentialReferenceAdapter<>(); @Override + protected ImmutableCollection.Builder<ReferentialReference<D>> createBuilder() { + return ImmutableSet.builder(); + } + + @Override protected ReferentialReferenceSet<D> newReferenceSet(Class<D> dtoType, ImmutableSet<ReferentialReference<D>> references, JsonObject jsonObject, JsonDeserializationContext context) { JsonElement lastUpdateElement = jsonObject.get(ReferentialReferenceSet.PROPERTY_LAST_UPDATE); diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceSet.java b/services-dto/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceSet.java index 7c63c13..0789572 100644 --- a/services-dto/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceSet.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceSet.java @@ -24,11 +24,11 @@ package fr.ird.observe.services.dto.referential; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableSet; -import fr.ird.observe.services.dto.AbstractReferenceSet; +import fr.ird.observe.services.dto.ReferenceCollectionSupport; import java.util.Date; -public class ReferentialReferenceSet<R extends ReferentialDto> extends AbstractReferenceSet<R, ReferentialReference<R>> { +public class ReferentialReferenceSet<R extends ReferentialDto> extends ReferenceCollectionSupport<R, ReferentialReference<R>, ImmutableSet<ReferentialReference<R>>> { public static final String PROPERTY_LAST_UPDATE = "lastUpdate"; @@ -60,8 +60,8 @@ public class ReferentialReferenceSet<R extends ReferentialDto> extends AbstractR @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(PROPERTY_TYPE, type.getName()) - .add(PROPERTY_LAST_UPDATE, lastUpdate) - .toString(); + .add(PROPERTY_TYPE, type.getName()) + .add(PROPERTY_LAST_UPDATE, lastUpdate) + .toString(); } } diff --git a/services-rest/src/test/java/fr/ird/observe/services/rest/service/seine/TripSeineGearUseServiceRestTest.java b/services-rest/src/test/java/fr/ird/observe/services/rest/service/seine/TripSeineGearUseServiceRestTest.java index 157cb14..69747fe 100644 --- a/services-rest/src/test/java/fr/ird/observe/services/rest/service/seine/TripSeineGearUseServiceRestTest.java +++ b/services-rest/src/test/java/fr/ird/observe/services/rest/service/seine/TripSeineGearUseServiceRestTest.java @@ -23,7 +23,7 @@ package fr.ird.observe.services.rest.service.seine; */ import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.IdHelper; import fr.ird.observe.services.dto.seine.GearUseFeaturesMeasurementSeineDto; @@ -59,7 +59,7 @@ public class TripSeineGearUseServiceRestTest extends AbstractServiceRestTest { public void loadToReadTest() { - DataReferenceSet<TripSeineDto> allTripSeine = newService(TripSeineService.class).getAllTripSeine(); + DataReferenceList<TripSeineDto> allTripSeine = newService(TripSeineService.class).getAllTripSeine(); Map<String, DataReference<TripSeineDto>> tripIds = DataReference.splitById(allTripSeine.getReferences()); @@ -121,7 +121,7 @@ public class TripSeineGearUseServiceRestTest extends AbstractServiceRestTest { @Test public void loadToEditTest() { - DataReferenceSet<TripSeineDto> allTripSeine = newService(TripSeineService.class).getAllTripSeine(); + DataReferenceList<TripSeineDto> allTripSeine = newService(TripSeineService.class).getAllTripSeine(); Map<String, DataReference<TripSeineDto>> tripIds = DataReference.splitById(allTripSeine.getReferences()); diff --git a/services-rest/src/test/java/fr/ird/observe/services/rest/service/seine/TripSeineServiceRestTest.java b/services-rest/src/test/java/fr/ird/observe/services/rest/service/seine/TripSeineServiceRestTest.java index 870ff43..6014502 100644 --- a/services-rest/src/test/java/fr/ird/observe/services/rest/service/seine/TripSeineServiceRestTest.java +++ b/services-rest/src/test/java/fr/ird/observe/services/rest/service/seine/TripSeineServiceRestTest.java @@ -24,7 +24,7 @@ package fr.ird.observe.services.rest.service.seine; import com.google.common.collect.Iterables; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.referential.HarbourDto; import fr.ird.observe.services.dto.referential.OceanDto; @@ -58,7 +58,7 @@ public class TripSeineServiceRestTest extends AbstractServiceRestTest { @Test public void getTripSeineByProgramTest() { - DataReferenceSet<TripSeineDto> stubDtos = service.getTripSeineByProgram(ObserveFixtures.PROGRAM_ID); + DataReferenceList<TripSeineDto> stubDtos = service.getTripSeineByProgram(ObserveFixtures.PROGRAM_ID); Assert.assertNotNull(stubDtos); @@ -216,7 +216,7 @@ public class TripSeineServiceRestTest extends AbstractServiceRestTest { service.delete(ObserveFixtures.TRIP_SEINE_ID_1); - DataReferenceSet<TripSeineDto> tripSeineByProgram = service.getTripSeineByProgram(ObserveFixtures.PROGRAM_ID); + DataReferenceList<TripSeineDto> tripSeineByProgram = service.getTripSeineByProgram(ObserveFixtures.PROGRAM_ID); Assert.assertEquals(2, tripSeineByProgram.sizeReference()); diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceTopia.java index 257f305..038ae81 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceTopia.java @@ -22,18 +22,17 @@ package fr.ird.observe.services.topia; * #L% */ +import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import fr.ird.observe.ObserveTopiaPersistenceContext; import fr.ird.observe.entities.ObserveDataEntity; import fr.ird.observe.entities.ObserveEntity; import fr.ird.observe.entities.referentiel.ObserveReferentialEntity; import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.topia.binder.BinderEngine; -import fr.ird.observe.services.topia.binder.data.DataBinderSupport; -import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; import fr.ird.observe.services.dto.DataDto; import fr.ird.observe.services.dto.DataFileDto; import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.IdDto; @@ -46,6 +45,9 @@ import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.dto.result.SaveResultHelper; import fr.ird.observe.services.service.ConcurrentModificationException; import fr.ird.observe.services.service.DataNotFoundException; +import fr.ird.observe.services.topia.binder.BinderEngine; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaDao; @@ -301,16 +303,16 @@ public abstract class ObserveServiceTopia implements ObserveService { } - protected <D extends DataDto, E extends ObserveDataEntity> DataReferenceSet<D> toDataReferenceSet(Class<D> dtoType, List<E> allStubByTripId) { + protected <D extends DataDto, E extends ObserveDataEntity> DataReferenceSet<D> toDataReferenceSet(Class<D> dtoType, List<E> entities) { DataBinderSupport<E, D> binder = getDataBinder(dtoType); ReferentialLocale referentialLocale = getReferentialLocale(); ImmutableSet.Builder<DataReference<D>> references = ImmutableSet.builder(); - for (E activitySeine : allStubByTripId) { + for (E entity : entities) { - DataReference<D> reference = binder.toDataReference(referentialLocale, activitySeine); + DataReference<D> reference = binder.toDataReference(referentialLocale, entity); references.add(reference); } @@ -319,16 +321,34 @@ public abstract class ObserveServiceTopia implements ObserveService { } - protected <D extends ReferentialDto, E extends ObserveReferentialEntity> ReferentialReferenceSet<D> toReferentialReferenceSet(Class<D> dtoType, List<E> allStubByTripId, Date lastUpdate) { + protected <D extends DataDto, E extends ObserveDataEntity> DataReferenceList<D> toDataReferenceList(Class<D> dtoType, List<E> entities) { + + DataBinderSupport<E, D> binder = getDataBinder(dtoType); + + ReferentialLocale referentialLocale = getReferentialLocale(); + + ImmutableList.Builder<DataReference<D>> references = ImmutableList.builder(); + for (E entity : entities) { + + DataReference<D> reference = binder.toDataReference(referentialLocale, entity); + references.add(reference); + + } + + return DataReferenceList.of(dtoType, references.build()); + + } + + protected <D extends ReferentialDto, E extends ObserveReferentialEntity> ReferentialReferenceSet<D> toReferentialReferenceSet(Class<D> dtoType, List<E> entities, Date lastUpdate) { ReferentialBinderSupport<E, D> binder = getReferentialBinder(dtoType); ReferentialLocale referentialLocale = getReferentialLocale(); ImmutableSet.Builder<ReferentialReference<D>> references = ImmutableSet.builder(); - for (E activitySeine : allStubByTripId) { + for (E entity : entities) { - ReferentialReference<D> reference = binder.toReferentialReference(referentialLocale, activitySeine); + ReferentialReference<D> reference = binder.toReferentialReference(referentialLocale, entity); references.add(reference); } diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/ReferentialServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/ReferentialServiceTopia.java index 12663db..7935768 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/ReferentialServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/ReferentialServiceTopia.java @@ -257,12 +257,12 @@ public class ReferentialServiceTopia extends ObserveServiceTopia implements Refe if (ObserveReferentialEntity.class.isAssignableFrom(type)) { Class<ReferentialDto> dtoType = BINDER_ENGINE.getReferentialDtoType((Class) type); - ReferentialReferenceSet referenceSet = toReferentialReferenceSet(dtoType, (List) entities, null); + ReferentialReferenceSet<?> referenceSet = toReferentialReferenceSet(dtoType, (List) entities, null); result.put(dtoType, referenceSet.getReferences()); } else { Class<DataDto> dtoType = BINDER_ENGINE.getDataDtoType((Class) type); - DataReferenceSet referenceSet = toDataReferenceSet(dtoType, (List) entities); + DataReferenceSet<?> referenceSet = toDataReferenceSet(dtoType, (List) entities); result.put(dtoType, referenceSet.getReferences()); } diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/longline/TripLonglineServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/longline/TripLonglineServiceTopia.java index 522649c..5a674ef 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/longline/TripLonglineServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/longline/TripLonglineServiceTopia.java @@ -33,11 +33,8 @@ import fr.ird.observe.entities.referentiel.Program; import fr.ird.observe.entities.referentiel.Species; import fr.ird.observe.entities.referentiel.Species2; import fr.ird.observe.entities.referentiel.SpeciesList; -import fr.ird.observe.services.service.longline.TripLonglineService; -import fr.ird.observe.services.topia.ObserveServiceTopia; -import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.TripMapDto; import fr.ird.observe.services.dto.constants.ReferentialLocale; @@ -48,6 +45,9 @@ import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.SpeciesListDto; import fr.ird.observe.services.dto.result.SaveResultDto; +import fr.ird.observe.services.service.longline.TripLonglineService; +import fr.ird.observe.services.topia.ObserveServiceTopia; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; import fr.ird.observe.services.topia.entity.TripMapDtoFactory; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -55,6 +55,7 @@ import org.nuiton.util.DateUtil; import java.util.ArrayList; import java.util.Collections; +import java.util.Comparator; import java.util.Date; import java.util.LinkedHashSet; import java.util.List; @@ -67,26 +68,27 @@ public class TripLonglineServiceTopia extends ObserveServiceTopia implements Tri private static final Log log = LogFactory.getLog(TripLonglineServiceTopia.class); @Override - public DataReferenceSet<TripLonglineDto> getAllTripLongline() { + public DataReferenceList<TripLonglineDto> getAllTripLongline() { if (log.isTraceEnabled()) { log.trace("getAllTripLongline()"); } List<TripLongline> tripLonglines = loadEntities(TripLongline.class); - return toDataReferenceSet(TripLonglineDto.class, tripLonglines); + tripLonglines.sort(Comparator.comparing(TripLongline::getStartDate)); + return toDataReferenceList(TripLonglineDto.class, tripLonglines); } @Override - public DataReferenceSet<TripLonglineDto> getTripLonglineByProgram(String programId) { + public DataReferenceList<TripLonglineDto> getTripLonglineByProgram(String programId) { if (log.isTraceEnabled()) { log.trace("getTripLonglineByProgram(" + programId + ")"); } List<TripLongline> tripLonglines = getDao().findAllStubByProgramId(programId, getReferentialLocale().ordinal()); - return toDataReferenceSet(TripLonglineDto.class, tripLonglines); + return toDataReferenceList(TripLonglineDto.class, tripLonglines); } diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/TripSeineServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/TripSeineServiceTopia.java index bf77b50..db1a1be 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/TripSeineServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/TripSeineServiceTopia.java @@ -33,7 +33,7 @@ import fr.ird.observe.entities.referentiel.SpeciesList; import fr.ird.observe.entities.seine.TripSeine; import fr.ird.observe.entities.seine.TripSeineTopiaDao; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.TripMapDto; import fr.ird.observe.services.dto.constants.ReferentialLocale; @@ -54,6 +54,7 @@ import org.nuiton.util.DateUtil; import java.util.ArrayList; import java.util.Collections; +import java.util.Comparator; import java.util.Date; import java.util.LinkedHashSet; import java.util.List; @@ -70,20 +71,21 @@ public class TripSeineServiceTopia extends ObserveServiceTopia implements TripSe } @Override - public DataReferenceSet<TripSeineDto> getAllTripSeine() { + public DataReferenceList<TripSeineDto> getAllTripSeine() { if (log.isTraceEnabled()) { log.trace("getAllTripSeine()"); } List<TripSeine> tripSeines = loadEntities(TripSeine.class); + tripSeines.sort(Comparator.comparing(TripSeine::getStartDate)); tripSeines.forEach(t -> t.setRouteCount(t.sizeRoute())); - return toDataReferenceSet(TripSeineDto.class, tripSeines); + return toDataReferenceList(TripSeineDto.class, tripSeines); } @Override - public DataReferenceSet<TripSeineDto> getTripSeineByProgram(String programId) { + public DataReferenceList<TripSeineDto> getTripSeineByProgram(String programId) { if (log.isTraceEnabled()) { log.trace("getTripSeineByProgram(" + programId + ")"); } @@ -95,7 +97,7 @@ public class TripSeineServiceTopia extends ObserveServiceTopia implements TripSe List<TripSeine> tripSeines = getDao().findAllStubByProgramId(programId, referenceLocale.ordinal()); - return toDataReferenceSet(TripSeineDto.class, tripSeines); + return toDataReferenceList(TripSeineDto.class, tripSeines); } diff --git a/services-topia/src/test/java/fr/ird/observe/services/topia/service/TripManagementServiceTopiaTest.java b/services-topia/src/test/java/fr/ird/observe/services/topia/service/TripManagementServiceTopiaTest.java index d070dbb..fb22a19 100644 --- a/services-topia/src/test/java/fr/ird/observe/services/topia/service/TripManagementServiceTopiaTest.java +++ b/services-topia/src/test/java/fr/ird/observe/services/topia/service/TripManagementServiceTopiaTest.java @@ -24,6 +24,7 @@ package fr.ird.observe.services.topia.service; import fr.ird.observe.services.configuration.ObserveDataSourceConnection; import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaH2; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; import fr.ird.observe.services.dto.DataSourceCreateWithNoReferentialImportException; @@ -88,13 +89,13 @@ public class TripManagementServiceTopiaTest extends AbstractServiceTopiaTest { @Test public void deleteTrip() { - DataReferenceSet<TripSeineDto> allTripSeineBefore = tripSeineService.getAllTripSeine(); + DataReferenceList<TripSeineDto> allTripSeineBefore = tripSeineService.getAllTripSeine(); DeleteTripRequest request = new DeleteTripRequest(ObserveFixtures.PROGRAM_ID, ObserveFixtures.TRIP_SEINE_ID_1); DeleteTripResult result = tripManagementService.deleteTrip(request); Assert.assertNotNull(result); - DataReferenceSet<TripSeineDto> allTripSeineAfter = tripSeineService.getAllTripSeine(); + DataReferenceList<TripSeineDto> allTripSeineAfter = tripSeineService.getAllTripSeine(); Assert.assertTrue(allTripSeineBefore.sizeReference() == allTripSeineAfter.sizeReference() + 1); } diff --git a/services-topia/src/test/java/fr/ird/observe/services/topia/service/seine/TripSeineServiceTopiaTest.java b/services-topia/src/test/java/fr/ird/observe/services/topia/service/seine/TripSeineServiceTopiaTest.java index 228d691..c445d8f 100644 --- a/services-topia/src/test/java/fr/ird/observe/services/topia/service/seine/TripSeineServiceTopiaTest.java +++ b/services-topia/src/test/java/fr/ird/observe/services/topia/service/seine/TripSeineServiceTopiaTest.java @@ -23,10 +23,8 @@ package fr.ird.observe.services.topia.service.seine; */ import fr.ird.observe.entities.seine.TripSeine; -import fr.ird.observe.services.service.seine.TripSeineService; -import fr.ird.observe.services.topia.ObserveServiceContextTopiaTaiste; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.referential.HarbourDto; import fr.ird.observe.services.dto.referential.OceanDto; @@ -34,12 +32,14 @@ import fr.ird.observe.services.dto.referential.PersonDto; import fr.ird.observe.services.dto.referential.VesselDto; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.dto.seine.TripSeineDto; -import fr.ird.observe.services.topia.service.AbstractServiceTopiaTest; import fr.ird.observe.services.service.BabModelVersionException; import fr.ird.observe.services.service.ConcurrentModificationException; import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException; import fr.ird.observe.services.service.DatabaseNotFoundException; import fr.ird.observe.services.service.ReferentialService; +import fr.ird.observe.services.service.seine.TripSeineService; +import fr.ird.observe.services.topia.ObserveServiceContextTopiaTaiste; +import fr.ird.observe.services.topia.service.AbstractServiceTopiaTest; import fr.ird.observe.test.DatabaseName; import fr.ird.observe.test.ObserveFixtures; import fr.ird.observe.test.spi.CopyDatabaseConfiguration; @@ -74,7 +74,7 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { @Test public void getTripSeineByProgramTest() { - DataReferenceSet<TripSeineDto> stubDtos = service.getTripSeineByProgram(ObserveFixtures.PROGRAM_ID); + DataReferenceList<TripSeineDto> stubDtos = service.getTripSeineByProgram(ObserveFixtures.PROGRAM_ID); Assert.assertNotNull(stubDtos); @@ -324,7 +324,7 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { service.delete(ObserveFixtures.TRIP_SEINE_ID_1); - DataReferenceSet<TripSeineDto> tripSeineByProgram = service.getTripSeineByProgram(ObserveFixtures.PROGRAM_ID); + DataReferenceList<TripSeineDto> tripSeineByProgram = service.getTripSeineByProgram(ObserveFixtures.PROGRAM_ID); Assert.assertEquals(2, tripSeineByProgram.sizeReference()); diff --git a/services/src/main/java/fr/ird/observe/services/service/longline/TripLonglineService.java b/services/src/main/java/fr/ird/observe/services/service/longline/TripLonglineService.java index b946db7..4757398 100644 --- a/services/src/main/java/fr/ird/observe/services/service/longline/TripLonglineService.java +++ b/services/src/main/java/fr/ird/observe/services/service/longline/TripLonglineService.java @@ -25,7 +25,7 @@ package fr.ird.observe.services.service.longline; import com.google.common.collect.ImmutableList; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.TripMapDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; @@ -46,10 +46,10 @@ import java.util.List; public interface TripLonglineService extends ObserveService { @ReadDataPermission - DataReferenceSet<TripLonglineDto> getAllTripLongline(); + DataReferenceList<TripLonglineDto> getAllTripLongline(); @ReadDataPermission - DataReferenceSet<TripLonglineDto> getTripLonglineByProgram(String programId); + DataReferenceList<TripLonglineDto> getTripLonglineByProgram(String programId); @ReadDataPermission int getTripLonglinePositionInProgram(String programId, String tripLonglineId); diff --git a/services/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java b/services/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java index f6fe28b..4d18776 100644 --- a/services/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java +++ b/services/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java @@ -25,7 +25,7 @@ package fr.ird.observe.services.service.seine; import com.google.common.collect.ImmutableList; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.TripMapDto; import fr.ird.observe.services.dto.referential.ReferentialReference; @@ -46,10 +46,10 @@ import java.util.List; public interface TripSeineService extends ObserveService { @ReadDataPermission - DataReferenceSet<TripSeineDto> getAllTripSeine(); + DataReferenceList<TripSeineDto> getAllTripSeine(); @ReadDataPermission - DataReferenceSet<TripSeineDto> getTripSeineByProgram(String programId); + DataReferenceList<TripSeineDto> getTripSeineByProgram(String programId); @ReadDataPermission int getTripSeinePositionInProgram(String programId, String tripSeineId); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.