This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit efc6fe2a35cb292dda3349cb2988fa59b2a3751d Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Jul 20 12:56:08 2016 +0200 Revue du code dans l'ui pour exporter les marées (See #7677) --- .../observe/ui/admin/export/ExportUIHandler.java | 83 +++++++++++++--------- 1 file changed, 49 insertions(+), 34 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportUIHandler.java index 13ade10..605a4de 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportUIHandler.java @@ -21,18 +21,21 @@ */ package fr.ird.observe.ui.admin.export; -import com.google.common.collect.Lists; +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Maps; import fr.ird.observe.db.ObserveSwingDataSource; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.actions.replicate.ReplicateTrip; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.services.service.BabModelVersionException; import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException; import fr.ird.observe.services.service.DatabaseNotFoundException; -import fr.ird.observe.services.service.actions.replicate.ReplicateService; -import fr.ird.observe.services.service.actions.replicate.ReplicateTripResult; +import fr.ird.observe.services.service.actions.export.ReplicateTripService; +import fr.ird.observe.services.service.actions.export.ReplicateTripsExportRequest; +import fr.ird.observe.services.service.actions.export.ReplicateTripsExportResult; +import fr.ird.observe.services.service.actions.export.ReplicateTripsImportResult; import fr.ird.observe.ui.DecoratorService; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.admin.AdminStep; @@ -56,7 +59,6 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.Date; import java.util.List; -import java.util.stream.Collectors; import static org.nuiton.i18n.I18n.n; import static org.nuiton.i18n.I18n.t; @@ -245,20 +247,17 @@ public class ExportUIHandler extends AdminTabUIHandler { ExportModel stepModel = model.getExportModel(); // on filtre les marées sélectionnées pour export - List<String> tripId = stepModel.getSelectedTrips() - .stream() - .map(TripEntry::getTrip) - .map(DataReference::getId) - .collect(Collectors.toList()); + List<TripEntry> selectedTripEntries = stepModel.getSelectedTrips(); - List<ReplicateTripResult> results = replicateData(stepModel.getSource(), stepModel.getCentralSource(), tripId); + ReplicateTripsImportResult results = replicateData(stepModel.getSource(), stepModel.getCentralSource(), selectedTripEntries); - for (ReplicateTripResult result : results) { + ImmutableMap<String, TripEntry> tripEntriesById = Maps.uniqueIndex(selectedTripEntries, tripEntry -> tripEntry.getTrip().getId()); - TripEntry tripEntry = stepModel.getSelectedTrips() - .stream() - .filter(t -> result.getTripId().equals(t.getTrip().getId())) - .findFirst().get(); + for (ReplicateTripsImportResult.ReplicateTripImportResult result : results) { + + String tripId = result.getTripId(); + + TripEntry tripEntry = tripEntriesById.get(tripId); String tripDecorated = stepModel.decorate(tripEntry.getTrip()); String programDecorated = stepModel.decorate(tripEntry.getProgram()); @@ -266,17 +265,15 @@ public class ExportUIHandler extends AdminTabUIHandler { if (result.isDeleted()) { if (log.isInfoEnabled()) { - log.info(tripId + " -- " + t("observe.message.exportData.delete.remote.maree", tripDecorated, programDecorated)); + log.info(tripId + " → " + t("observe.message.exportData.delete.remote.maree", tripDecorated, programDecorated)); } sendMessage(t("observe.message.exportData.delete.remote.maree", tripDecorated, programDecorated)); } - if (result.isDuplicated()) { - if (log.isInfoEnabled()) { - log.info(tripId + " -- " + t("observe.message.exportData.replicate.maree", tripDecorated, programDecorated)); - } - sendMessage(t("observe.message.exportData.replicate.maree", tripDecorated, programDecorated)); + if (log.isInfoEnabled()) { + log.info(tripId + " → " + t("observe.message.exportData.replicate.maree", tripDecorated, programDecorated)); } + sendMessage(t("observe.message.exportData.replicate.maree", tripDecorated, programDecorated)); } @@ -285,33 +282,51 @@ public class ExportUIHandler extends AdminTabUIHandler { return WizardState.SUCCESSED; } - private List<ReplicateTripResult> replicateData(ObserveSwingDataSource source, - ObserveSwingDataSource target, - List<String> tripIds) throws DatabaseNotFoundException, BabModelVersionException, DatabaseConnexionNotAuthorizedException { + private ReplicateTripsImportResult replicateData(ObserveSwingDataSource source, + ObserveSwingDataSource target, + List<TripEntry> tripEntries) throws DatabaseNotFoundException, BabModelVersionException, DatabaseConnexionNotAuthorizedException { - List<ReplicateTripResult> results = Lists.newArrayList(); + Preconditions.checkState(CollectionUtils.isNotEmpty(tripEntries)); - if (CollectionUtils.isNotEmpty(tripIds)) { + ReplicateTripsExportRequest.ExportTripsRequestBuilder requestBuilder = ReplicateTripsExportRequest.builder(); - openSource(source); + for (TripEntry tripEntry : tripEntries) { + + requestBuilder.addTripToReplicate(tripEntry.getTrip().getId(), tripEntry.isExist()); + + } - ReplicateService sourceReplicateService = source.newService(ReplicateService.class); + ReplicateTripsExportRequest request = requestBuilder.build(); - List<ReplicateTrip> replicateTrips = sourceReplicateService.exportTrips(tripIds); + ReplicateTripsExportResult tripExportResults; + + try { + + openSource(source); + ReplicateTripService sourceReplicateService = source.newService(ReplicateTripService.class); + tripExportResults = sourceReplicateService.exportTrips(request); + + } finally { source.close(); - openSource(target); + } + + ReplicateTripsImportResult result; - ReplicateService targetReplicateService = target.newService(ReplicateService.class); + try { + + openSource(target); + ReplicateTripService targetReplicateService = target.newService(ReplicateTripService.class); + result = targetReplicateService.importTrips(tripExportResults); - results = targetReplicateService.importTrips(replicateTrips); + } finally { target.close(); } - return results; + return result; } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.