From a3e3d45b810daaaac28499f577c84d526d605acf Mon Sep 17 00:00:00 2001 From: oblonski Date: Wed, 10 Jul 2019 14:46:41 +0200 Subject: [PATCH] change interface insertion ends listener --- .../jsprit/analysis/toolbox/AlgorithmEventsRecorder.java | 2 +- .../jsprit/core/algorithm/RemoveEmptyVehicles.java | 5 +++-- .../core/algorithm/recreate/AbstractInsertionStrategy.java | 2 +- .../algorithm/recreate/listener/InsertionEndsListener.java | 3 ++- .../algorithm/recreate/listener/InsertionListeners.java | 6 +++--- .../jsprit/core/algorithm/state/StateManager.java | 4 ++-- 6 files changed, 12 insertions(+), 10 deletions(-) diff --git a/jsprit-analysis/src/main/java/com/graphhopper/jsprit/analysis/toolbox/AlgorithmEventsRecorder.java b/jsprit-analysis/src/main/java/com/graphhopper/jsprit/analysis/toolbox/AlgorithmEventsRecorder.java index 44102624..6ca5e9a8 100644 --- a/jsprit-analysis/src/main/java/com/graphhopper/jsprit/analysis/toolbox/AlgorithmEventsRecorder.java +++ b/jsprit-analysis/src/main/java/com/graphhopper/jsprit/analysis/toolbox/AlgorithmEventsRecorder.java @@ -376,7 +376,7 @@ public class AlgorithmEventsRecorder implements RuinListener, IterationStartsLis } @Override - public void informInsertionEnds(Collection vehicleRoutes) { + public void informInsertionEnds(Collection vehicleRoutes, Collection badJobs) { if (!record()) return; fileSink.stepBegins(graph.getId(), 0, CLEAR_SOLUTION); removeRoutes(vehicleRoutes); diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/RemoveEmptyVehicles.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/RemoveEmptyVehicles.java index 702affd5..705a0300 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/RemoveEmptyVehicles.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/RemoveEmptyVehicles.java @@ -18,6 +18,7 @@ package com.graphhopper.jsprit.core.algorithm; import com.graphhopper.jsprit.core.algorithm.recreate.listener.InsertionEndsListener; +import com.graphhopper.jsprit.core.problem.job.Job; import com.graphhopper.jsprit.core.problem.solution.route.VehicleRoute; import com.graphhopper.jsprit.core.problem.vehicle.VehicleFleetManager; @@ -41,8 +42,8 @@ public class RemoveEmptyVehicles implements InsertionEndsListener { } @Override - public void informInsertionEnds(Collection vehicleRoutes) { - List routes = new ArrayList(vehicleRoutes); + public void informInsertionEnds(Collection vehicleRoutes, Collection badJobs) { + List routes = new ArrayList<>(vehicleRoutes); for (VehicleRoute route : routes) { if (route.isEmpty()) { fleetManager.unlock(route.getVehicle()); diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/recreate/AbstractInsertionStrategy.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/recreate/AbstractInsertionStrategy.java index 5f5973f5..8bc5a0df 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/recreate/AbstractInsertionStrategy.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/recreate/AbstractInsertionStrategy.java @@ -89,7 +89,7 @@ public abstract class AbstractInsertionStrategy implements InsertionStrategy { public Collection insertJobs(Collection vehicleRoutes, Collection unassignedJobs) { insertionsListeners.informInsertionStarts(vehicleRoutes, unassignedJobs); Collection badJobs = insertUnassignedJobs(vehicleRoutes, unassignedJobs); - insertionsListeners.informInsertionEndsListeners(vehicleRoutes); + insertionsListeners.informInsertionEndsListeners(vehicleRoutes, badJobs); return badJobs; } diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/recreate/listener/InsertionEndsListener.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/recreate/listener/InsertionEndsListener.java index c9cde4d6..96f3db20 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/recreate/listener/InsertionEndsListener.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/recreate/listener/InsertionEndsListener.java @@ -17,6 +17,7 @@ */ package com.graphhopper.jsprit.core.algorithm.recreate.listener; +import com.graphhopper.jsprit.core.problem.job.Job; import com.graphhopper.jsprit.core.problem.solution.route.VehicleRoute; import java.util.Collection; @@ -24,5 +25,5 @@ import java.util.Collection; public interface InsertionEndsListener extends InsertionListener { - public void informInsertionEnds(Collection vehicleRoutes); + void informInsertionEnds(Collection vehicleRoutes, Collection badJobs); } diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/recreate/listener/InsertionListeners.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/recreate/listener/InsertionListeners.java index f0c5e9a8..c791fd66 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/recreate/listener/InsertionListeners.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/recreate/listener/InsertionListeners.java @@ -29,7 +29,7 @@ import java.util.List; public class InsertionListeners { - private Collection listeners = new ArrayList(); + private Collection listeners = new ArrayList<>(); public Collection getListeners() { return listeners; @@ -67,10 +67,10 @@ public class InsertionListeners { } } - public void informInsertionEndsListeners(Collection vehicleRoutes) { + public void informInsertionEndsListeners(Collection vehicleRoutes, Collection badJobs) { for (InsertionListener l : listeners) { if (l instanceof InsertionEndsListener) { - ((InsertionEndsListener) l).informInsertionEnds(vehicleRoutes); + ((InsertionEndsListener) l).informInsertionEnds(vehicleRoutes, badJobs); } } } diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/state/StateManager.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/state/StateManager.java index fe10f16d..e2fffd55 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/state/StateManager.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/state/StateManager.java @@ -602,8 +602,8 @@ public class StateManager implements RouteAndActivityStateGetter, IterationStart } @Override - public void informInsertionEnds(Collection vehicleRoutes) { - insertionListeners.informInsertionEndsListeners(vehicleRoutes); + public void informInsertionEnds(Collection vehicleRoutes, Collection badJobs) { + insertionListeners.informInsertionEndsListeners(vehicleRoutes, badJobs); } /**