Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 014fc593 by Tony Chemit at 2020-12-02T11:12:38+01:00 Clean Sample move code (one more service removed) - - - - - 8 changed files: - client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/ActivitySampleUIHandler.java - client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/SampleListUIHandler.java - client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/SampleUIHandler.java - server/core/src/main/filtered-resources/mapping - services/api/src/main/java/fr/ird/observe/services/service/data/ll/logbook/ActivitySampleService.java - − services/api/src/main/java/fr/ird/observe/services/service/data/ll/logbook/SampleService.java - services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/ll/logbook/ActivitySampleServiceLocal.java - services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/ll/logbook/SampleServiceLocal.java Changes: ===================================== client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/ActivitySampleUIHandler.java ===================================== @@ -34,8 +34,6 @@ import org.nuiton.jaxx.runtime.context.JAXXContextEntryDef; import java.awt.Component; import java.awt.Container; -import static fr.ird.observe.client.datasource.editor.ll.data.logbook.SampleUIHandler.toTrip; - /** * Created on 12/5/14. * @@ -88,7 +86,7 @@ public class ActivitySampleUIHandler extends GeneratedActivitySampleUIHandler { .setAskNewParentMessage(I18n.t("observe.data.ll.logbook.Sample.action.move.choose.parent.activity.message")) .setParentCandidates(this.getLlLogbookActivityService()::getBrothers); }, - r -> toTrip(r) ? getLlLogbookActivitySampleService()::moveToTrip : getLlLogbookActivitySampleService()::move, + r -> getLlLogbookActivitySampleService()::move, r -> new ActivitySampleUIMoveTreeAdapter()); } ===================================== client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/SampleListUIHandler.java ===================================== @@ -37,7 +37,7 @@ class SampleListUIHandler extends GeneratedSampleListUIHandler { protected void installMoveAction() { MoveMultiple.installMoveAction(ui, SampleUIHandler.newSupplier(this, getModel()::toMoveRequest), - r -> SampleUIHandler.toTrip(r) ? getLlLogbookSampleService()::move : getLlLogbookSampleService()::moveToActivity, + r -> getLlLogbookSampleService()::move, r -> SampleUIHandler.toTrip(r) ? new DefaultMultipleMoveTreeAdapter() : new ActivitySampleUIMoveTreeAdapter()); } } ===================================== client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/SampleUIHandler.java ===================================== @@ -118,7 +118,7 @@ class SampleUIHandler extends GeneratedSampleUIHandler { protected void installMoveAction() { MoveOpenable.installAction(ui, newSupplier(this, getModel()::toMoveRequest), - r -> toTrip(r) ? getLlLogbookSampleService()::move : getLlLogbookSampleService()::moveToActivity, + r -> getLlLogbookSampleService()::move, r -> toTrip(r) ? new DefaultSingleMoveTreeAdapter() : new ActivitySampleUIMoveTreeAdapter()); } ===================================== server/core/src/main/filtered-resources/mapping ===================================== @@ -128,7 +128,6 @@ GET /api/v1/data/ll/logbook/ActivitySampleService/loadDto GET /api/v1/data/ll/logbook/ActivitySampleService/loadForm v1.data.ll.logbook.ActivitySampleServiceRestApi.loadForm GET /api/v1/data/ll/logbook/ActivitySampleService/loadReferenceToRead v1.data.ll.logbook.ActivitySampleServiceRestApi.loadReferenceToRead POST /api/v1/data/ll/logbook/ActivitySampleService/move v1.data.ll.logbook.ActivitySampleServiceRestApi.move -POST /api/v1/data/ll/logbook/ActivitySampleService/moveToTrip v1.data.ll.logbook.ActivitySampleServiceRestApi.moveToTrip GET /api/v1/data/ll/logbook/ActivitySampleService/preCreate v1.data.ll.logbook.ActivitySampleServiceRestApi.preCreate POST /api/v1/data/ll/logbook/ActivitySampleService/save v1.data.ll.logbook.ActivitySampleServiceRestApi.save DELETE /api/v1/data/ll/logbook/ActivityService/delete v1.data.ll.logbook.ActivityServiceRestApi.delete @@ -149,7 +148,6 @@ GET /api/v1/data/ll/logbook/SampleService/loadDto GET /api/v1/data/ll/logbook/SampleService/loadForm v1.data.ll.logbook.SampleServiceRestApi.loadForm GET /api/v1/data/ll/logbook/SampleService/loadReferenceToRead v1.data.ll.logbook.SampleServiceRestApi.loadReferenceToRead POST /api/v1/data/ll/logbook/SampleService/move v1.data.ll.logbook.SampleServiceRestApi.move -POST /api/v1/data/ll/logbook/SampleService/moveToActivity v1.data.ll.logbook.SampleServiceRestApi.moveToActivity GET /api/v1/data/ll/logbook/SampleService/preCreate v1.data.ll.logbook.SampleServiceRestApi.preCreate POST /api/v1/data/ll/logbook/SampleService/save v1.data.ll.logbook.SampleServiceRestApi.save GET /api/v1/data/ll/logbook/SetCatchService/getCatchSpecies v1.data.ll.logbook.SetCatchServiceRestApi.getCatchSpecies ===================================== services/api/src/main/java/fr/ird/observe/services/service/data/ll/logbook/ActivitySampleService.java ===================================== @@ -43,10 +43,5 @@ public interface ActivitySampleService extends GeneratedActivitySampleService { @Write @Post @MethodCredential(Permission.WRITE_DATA) - void moveToTrip(String newTripId, ImmutableSet<String> sampleIds); - - @Write - @Post - @MethodCredential(Permission.WRITE_DATA) - void move(String newActivityId, ImmutableSet<String> sampleIds); + void move(String newParentId, ImmutableSet<String> sampleIds); } ===================================== services/api/src/main/java/fr/ird/observe/services/service/data/ll/logbook/SampleService.java deleted ===================================== @@ -1,40 +0,0 @@ -package fr.ird.observe.services.service.data.ll.logbook; - -/* - * #%L - * ObServe Services :: API - * %% - * Copyright (C) 2008 - 2020 IRD, Code Lutin, Ultreia.io - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import com.google.common.collect.ImmutableSet; -import fr.ird.observe.security.Permission; -import fr.ird.observe.services.spi.MethodCredential; -import fr.ird.observe.services.spi.Write; -import io.ultreia.java4all.http.spi.Post; - -/** - * @author Tony Chemit - dev@tchemit.fr - */ -public interface SampleService extends GeneratedSampleService { - - @MethodCredential(Permission.WRITE_DATA) - @Write - @Post - void moveToActivity(String newActivityId, ImmutableSet<String> sampleIds); -} ===================================== services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/ll/logbook/ActivitySampleServiceLocal.java ===================================== @@ -29,6 +29,7 @@ import fr.ird.observe.dto.data.ll.logbook.SampleReference; import fr.ird.observe.dto.reference.DataDtoReferenceSet; import fr.ird.observe.dto.result.SaveResultDto; import fr.ird.observe.entities.DataNotFoundException; +import fr.ird.observe.entities.Entity; import fr.ird.observe.entities.data.ll.common.Trip; import fr.ird.observe.entities.data.ll.logbook.Activity; import fr.ird.observe.entities.data.ll.logbook.Sample; @@ -71,37 +72,44 @@ public class ActivitySampleServiceLocal extends EditableDataServiceLocalSupport< } @Override - public void moveToTrip(String newTripId, ImmutableSet<String> sampleIds) { - //FIXME Manage fields to remove like associated observed activity + public void move(String newParentId, ImmutableSet<String> sampleIds) { + Entity entity = loadEntity0(newParentId); + if (entity instanceof Activity) { + moveToActivity((Activity) entity, sampleIds); + } else { + moveToTrip((Trip) entity, sampleIds); + } + } + + private void moveToActivity(Activity newActivity, ImmutableSet<String> sampleIds) { String sampleLogbookId = sampleIds.iterator().next(); + //FIXME Manage fields to remove like associated observed activity Activity oldActivity = getActivityLonglineLogbook(sampleLogbookId); Sample sample = oldActivity.getSample(); if (!sampleLogbookId.equals(sample.getTopiaId())) { throw new DataNotFoundException(getApplicationLocale(), SampleDto.class, sampleLogbookId); } - Trip oldTrip = getParent(Trip.SPI, Trip.PROPERTY_ACTIVITY_LOGBOOK, oldActivity.getTopiaId()); - Trip newTrip = Trip.loadEntity(getApplicationLocale(), getTopiaPersistenceContext(), newTripId); oldActivity.setSample(null); - newTrip.addSample(sample); - TripServiceLocal.copyTripLogbookMetaData(oldTrip, newTrip); + newActivity.setSample(sample); saveEntity(Activity.SPI, oldActivity); - saveEntity(Trip.SPI, newTrip); + saveEntity(Activity.SPI, newActivity); } - @Override - public void move(String newActivityId, ImmutableSet<String> sampleIds) { - String sampleLogbookId = sampleIds.iterator().next(); + private void moveToTrip(Trip newTrip, ImmutableSet<String> sampleIds) { //FIXME Manage fields to remove like associated observed activity + String sampleLogbookId = sampleIds.iterator().next(); Activity oldActivity = getActivityLonglineLogbook(sampleLogbookId); - Activity newActivity = Activity.loadEntity(getApplicationLocale(), getTopiaPersistenceContext(), newActivityId); Sample sample = oldActivity.getSample(); if (!sampleLogbookId.equals(sample.getTopiaId())) { throw new DataNotFoundException(getApplicationLocale(), SampleDto.class, sampleLogbookId); } + Trip oldTrip = getParent(Trip.SPI, Trip.PROPERTY_ACTIVITY_LOGBOOK, oldActivity.getTopiaId()); + oldActivity.setSample(null); - newActivity.setSample(sample); + newTrip.addSample(sample); + TripServiceLocal.copyTripLogbookMetaData(oldTrip, newTrip); saveEntity(Activity.SPI, oldActivity); - saveEntity(Activity.SPI, newActivity); + saveEntity(Trip.SPI, newTrip); } private Activity getActivityLonglineLogbook(String sampleLogbookId) { ===================================== services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/ll/logbook/SampleServiceLocal.java ===================================== @@ -27,6 +27,7 @@ import com.google.common.collect.Iterables; import fr.ird.observe.dto.data.ll.logbook.SampleDto; import fr.ird.observe.dto.data.ll.logbook.SampleReference; import fr.ird.observe.dto.result.SaveResultDto; +import fr.ird.observe.entities.Entity; import fr.ird.observe.entities.data.ll.common.Trip; import fr.ird.observe.entities.data.ll.logbook.Activity; import fr.ird.observe.entities.data.ll.logbook.Sample; @@ -73,13 +74,22 @@ public class SampleServiceLocal extends OpenableDataServiceLocalSupport<Trip, Sa } @Override - public void moveToActivity(String newActivityId, ImmutableSet<String> sampleIds) { + public void move(String newParentId, ImmutableSet<String> ids) { + Entity entity = loadEntity0(newParentId); + if (entity instanceof Activity) { + moveToActivity((Activity) entity, ids); + } else { + // default behaviour + super.move(newParentId, ids); + } + } + + private void moveToActivity(Activity newActivity, ImmutableSet<String> sampleIds) { String sampleLogbookId = sampleIds.iterator().next(); Trip oldTrip = getTopiaPersistenceContext().getMultipleAssociationParent(getApplicationLocale(), Trip.class, Trip.PROPERTY_SAMPLE, sampleLogbookId); - Trip newTrip = getTopiaPersistenceContext().getMultipleAssociationParent(getApplicationLocale(), Trip.class, Trip.PROPERTY_ACTIVITY_LOGBOOK, newActivityId); + Trip newTrip = getTopiaPersistenceContext().getMultipleAssociationParent(getApplicationLocale(), Trip.class, Trip.PROPERTY_ACTIVITY_LOGBOOK, newActivity.getTopiaId()); Sample sample = Sample.loadEntity(getApplicationLocale(), getTopiaPersistenceContext(), sampleLogbookId); oldTrip.removeSample(sample); - Activity newActivity = Activity.loadEntity(getApplicationLocale(), getTopiaPersistenceContext(), newActivityId); //WARNING need to recreate entity, but ids are not changed :) newActivity.setSample(getTopiaPersistenceContext().getLlLogbookSampleDao().create(sample)); if (TripServiceLocal.copyTripLogbookMetaData(oldTrip, newTrip)) { View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/014fc593bfe01cd2878b6636e6... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/014fc593bfe01cd2878b6636e6... You're receiving this email because of your account on gitlab.com.
participants (1)
-
Tony CHEMIT