1
0
Fork 0
mirror of https://github.com/graphhopper/jsprit.git synced 2020-01-24 07:45:05 +01:00

change interface insertion ends listener

This commit is contained in:
oblonski 2019-07-10 14:46:41 +02:00
parent e4b5bbf5fa
commit a3e3d45b81
No known key found for this signature in database
GPG key ID: 179DE487285680D1
6 changed files with 12 additions and 10 deletions

View file

@ -376,7 +376,7 @@ public class AlgorithmEventsRecorder implements RuinListener, IterationStartsLis
} }
@Override @Override
public void informInsertionEnds(Collection<VehicleRoute> vehicleRoutes) { public void informInsertionEnds(Collection<VehicleRoute> vehicleRoutes, Collection<Job> badJobs) {
if (!record()) return; if (!record()) return;
fileSink.stepBegins(graph.getId(), 0, CLEAR_SOLUTION); fileSink.stepBegins(graph.getId(), 0, CLEAR_SOLUTION);
removeRoutes(vehicleRoutes); removeRoutes(vehicleRoutes);

View file

@ -18,6 +18,7 @@
package com.graphhopper.jsprit.core.algorithm; package com.graphhopper.jsprit.core.algorithm;
import com.graphhopper.jsprit.core.algorithm.recreate.listener.InsertionEndsListener; 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.solution.route.VehicleRoute;
import com.graphhopper.jsprit.core.problem.vehicle.VehicleFleetManager; import com.graphhopper.jsprit.core.problem.vehicle.VehicleFleetManager;
@ -41,8 +42,8 @@ public class RemoveEmptyVehicles implements InsertionEndsListener {
} }
@Override @Override
public void informInsertionEnds(Collection<VehicleRoute> vehicleRoutes) { public void informInsertionEnds(Collection<VehicleRoute> vehicleRoutes, Collection<Job> badJobs) {
List<VehicleRoute> routes = new ArrayList<VehicleRoute>(vehicleRoutes); List<VehicleRoute> routes = new ArrayList<>(vehicleRoutes);
for (VehicleRoute route : routes) { for (VehicleRoute route : routes) {
if (route.isEmpty()) { if (route.isEmpty()) {
fleetManager.unlock(route.getVehicle()); fleetManager.unlock(route.getVehicle());

View file

@ -89,7 +89,7 @@ public abstract class AbstractInsertionStrategy implements InsertionStrategy {
public Collection<Job> insertJobs(Collection<VehicleRoute> vehicleRoutes, Collection<Job> unassignedJobs) { public Collection<Job> insertJobs(Collection<VehicleRoute> vehicleRoutes, Collection<Job> unassignedJobs) {
insertionsListeners.informInsertionStarts(vehicleRoutes, unassignedJobs); insertionsListeners.informInsertionStarts(vehicleRoutes, unassignedJobs);
Collection<Job> badJobs = insertUnassignedJobs(vehicleRoutes, unassignedJobs); Collection<Job> badJobs = insertUnassignedJobs(vehicleRoutes, unassignedJobs);
insertionsListeners.informInsertionEndsListeners(vehicleRoutes); insertionsListeners.informInsertionEndsListeners(vehicleRoutes, badJobs);
return badJobs; return badJobs;
} }

View file

@ -17,6 +17,7 @@
*/ */
package com.graphhopper.jsprit.core.algorithm.recreate.listener; 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 com.graphhopper.jsprit.core.problem.solution.route.VehicleRoute;
import java.util.Collection; import java.util.Collection;
@ -24,5 +25,5 @@ import java.util.Collection;
public interface InsertionEndsListener extends InsertionListener { public interface InsertionEndsListener extends InsertionListener {
public void informInsertionEnds(Collection<VehicleRoute> vehicleRoutes); void informInsertionEnds(Collection<VehicleRoute> vehicleRoutes, Collection<Job> badJobs);
} }

View file

@ -29,7 +29,7 @@ import java.util.List;
public class InsertionListeners { public class InsertionListeners {
private Collection<InsertionListener> listeners = new ArrayList<InsertionListener>(); private Collection<InsertionListener> listeners = new ArrayList<>();
public Collection<InsertionListener> getListeners() { public Collection<InsertionListener> getListeners() {
return listeners; return listeners;
@ -67,10 +67,10 @@ public class InsertionListeners {
} }
} }
public void informInsertionEndsListeners(Collection<VehicleRoute> vehicleRoutes) { public void informInsertionEndsListeners(Collection<VehicleRoute> vehicleRoutes, Collection<Job> badJobs) {
for (InsertionListener l : listeners) { for (InsertionListener l : listeners) {
if (l instanceof InsertionEndsListener) { if (l instanceof InsertionEndsListener) {
((InsertionEndsListener) l).informInsertionEnds(vehicleRoutes); ((InsertionEndsListener) l).informInsertionEnds(vehicleRoutes, badJobs);
} }
} }
} }

View file

@ -602,8 +602,8 @@ public class StateManager implements RouteAndActivityStateGetter, IterationStart
} }
@Override @Override
public void informInsertionEnds(Collection<VehicleRoute> vehicleRoutes) { public void informInsertionEnds(Collection<VehicleRoute> vehicleRoutes, Collection<Job> badJobs) {
insertionListeners.informInsertionEndsListeners(vehicleRoutes); insertionListeners.informInsertionEndsListeners(vehicleRoutes, badJobs);
} }
/** /**