This is an automated email from the git hooks/post-receive script. New commit to branch feature/7017 in repository observe. See http://git.codelutin.com/observe.git commit bdeaecf4a0ecd57cffb2829a3df40acf877fb1ba Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Tue Apr 28 08:29:47 2015 +0200 refactor delete action for seine and longline --- .../observe/services/AbstractObserveService.java | 43 ++++++++++++++++++++++ .../data/longline/ActivityLonglineServiceImpl.java | 13 ++++--- .../data/longline/TripLonglineServiceImpl.java | 6 +-- .../data/seine/ActivitySeineServiceImpl.java | 12 +++--- .../services/data/seine/RouteServiceImpl.java | 18 +++++---- .../services/data/seine/TripSeineService.java | 2 +- .../services/data/seine/TripSeineServiceImpl.java | 8 +--- 7 files changed, 71 insertions(+), 31 deletions(-) diff --git a/observe-services/src/main/java/fr/ird/observe/services/AbstractObserveService.java b/observe-services/src/main/java/fr/ird/observe/services/AbstractObserveService.java index 7af5a7a..0e6e506 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/AbstractObserveService.java +++ b/observe-services/src/main/java/fr/ird/observe/services/AbstractObserveService.java @@ -273,6 +273,49 @@ public abstract class AbstractObserveService implements ObserveService { } + public <P extends TopiaEntity, E extends TopiaEntity> void doDelete(String parentId, String idToDelete, DeleteAction<P, E> deleteAction) { + + P parent = null; + + if (parentId != null) { + + parent = findByTopiaId(deleteAction.parentClass, parentId); + + checkNotNullAndExistingEntity(PARENT_BEAN, parent); + } + + E toDelete = findByTopiaId(deleteAction.entityClass, idToDelete); + + checkNotNullAndExistingEntity(BEAN, toDelete); + + deleteAction.onDelete(parent, toDelete); + + if (parentId != null) { + + getDao(deleteAction.parentClass).update(parent); + } + + + } + + protected class DeleteAction<P extends TopiaEntity, E extends TopiaEntity> { + + protected final Class<P> parentClass; + + protected final Class<E> entityClass; + + public DeleteAction(Class<P> parentClass, Class<E> entityClass) { + this.parentClass = parentClass; + this.entityClass = entityClass; + } + + public void onDelete(P parent, E toDelete) { + getDao(entityClass).delete(toDelete); + } + + } + + public <E extends TopiaEntity> void checkNotNullAndNoneExistingEntity(String variableName, E entity) { TopiaEntityHelper.checkNotNullAndNoneExistingEntity(variableName, entity); } diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/longline/ActivityLonglineServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/longline/ActivityLonglineServiceImpl.java index 14a8e39..8e992bc 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/longline/ActivityLonglineServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/longline/ActivityLonglineServiceImpl.java @@ -132,12 +132,13 @@ public class ActivityLonglineServiceImpl extends AbstractObserveService implemen @Override public void delete(String tripLonglineId, String activityLonglineId) { - - ActivityLonglineDAO dao = getDao(); - ActivityLongline toDelete = dao.findByTopiaId(activityLonglineId); - - TripLongline tripLongline = findByTopiaId(TripLongline.class, tripLonglineId); - tripLongline.removeActivityLongline(toDelete); + doDelete(tripLonglineId, activityLonglineId, new DeleteAction<TripLongline, ActivityLongline>(TripLongline.class, ActivityLongline.class) { + @Override + public void onDelete(TripLongline parent, ActivityLongline toDelete) { + super.onDelete(parent, toDelete); + parent.removeActivityLongline(toDelete); + } + }); } diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/longline/TripLonglineServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/longline/TripLonglineServiceImpl.java index 5a6501d..d832799 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/longline/TripLonglineServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/longline/TripLonglineServiceImpl.java @@ -122,11 +122,7 @@ public class TripLonglineServiceImpl extends AbstractObserveService implements T @Override public void delete(String tripLonglineId) { - - TripLonglineDAO dao = getDao(); - TripLongline toDelete = dao.findByTopiaId(tripLonglineId); - dao.delete(toDelete); - + doDelete(null, tripLonglineId, new DeleteAction<Program, TripLongline>(Program.class, TripLongline.class)); } @Override diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/ActivitySeineServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/ActivitySeineServiceImpl.java index 59e4265..2dea317 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/ActivitySeineServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/ActivitySeineServiceImpl.java @@ -194,12 +194,14 @@ public class ActivitySeineServiceImpl extends AbstractObserveService implements @Override public void delete(String routeId, String activitySeineId) { + doDelete(routeId, activitySeineId, new DeleteAction<Route, ActivitySeine>(Route.class, ActivitySeine.class) { + @Override + public void onDelete(Route parent, ActivitySeine toDelete) { + super.onDelete(parent, toDelete); + parent.removeActivitySeine(toDelete); - ActivitySeineDAO dao = getDao(); - ActivitySeine toDelete = dao.findByTopiaId(activitySeineId); - - Route route = findByTopiaId(Route.class, routeId); - route.removeActivitySeine(toDelete); + } + }); } diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/RouteServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/RouteServiceImpl.java index a7f832b..7fde18e 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/RouteServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/RouteServiceImpl.java @@ -146,16 +146,18 @@ public class RouteServiceImpl extends AbstractObserveService implements RouteSer @Override public void delete(String tripSeineId, String routeId) { + doDelete(tripSeineId, routeId, new DeleteAction<TripSeine, Route>(TripSeine.class, Route.class) { + @Override + public void onDelete(TripSeine parent, Route toDelete) { + super.onDelete(parent, toDelete); - RouteDAO dao = getDao(); - Route toDelete = dao.findByTopiaId(routeId); - - TripSeine tripSeine = findByTopiaId(TripSeine.class, tripSeineId); - tripSeine.removeRoute(toDelete); - tripSeine.updateDateFin(); - - dao.delete(toDelete); + // suppression de la route + parent.removeRoute(toDelete); + // mise à jour de la date de fin de marée + parent.updateDateFin(); + } + }); } @Override diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/TripSeineService.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/TripSeineService.java index bbc6fd1..4ba8a05 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/TripSeineService.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/TripSeineService.java @@ -30,7 +30,7 @@ public interface TripSeineService extends ObserveService { String save(TripSeine toSave); @Commit - void delete(String tripSeineId); + void delete(String idToDelete); @NoTransaction TopiaEntityBinder<TripSeine> getBinderForEdit(); diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/TripSeineServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/TripSeineServiceImpl.java index 985bd35..b092415 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/TripSeineServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/TripSeineServiceImpl.java @@ -124,12 +124,8 @@ public class TripSeineServiceImpl extends AbstractObserveService implements Trip } @Override - public void delete(String tripSeineId) { - - TripSeineDAO dao = getDao(); - TripSeine toDelete = dao.findByTopiaId(tripSeineId); - dao.delete(toDelete); - + public void delete(String idtoDelete) { + doDelete(null, idtoDelete, new DeleteAction<Program, TripSeine>(Program.class, TripSeine.class)); } @Override -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.