diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/recreate/JobInsertionCostsCalculatorBuilder.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/recreate/JobInsertionCostsCalculatorBuilder.java index 1135adb8..712c0916 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/recreate/JobInsertionCostsCalculatorBuilder.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/recreate/JobInsertionCostsCalculatorBuilder.java @@ -301,6 +301,7 @@ public class JobInsertionCostsCalculatorBuilder { switcher.put(Pickup.class, serviceInsertion); switcher.put(Delivery.class, serviceInsertion); switcher.put(Break.class, breakInsertionCalculator); + switcher.put(ShipmentWithMutablePickupDeliverOptions.class, shipmentInsertion); CalculatorPlusListeners calculatorPlusListeners = new CalculatorPlusListeners(switcher); if (configLocal != null) { diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/job/ShipmentWithMutablePickupDeliverOptions.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/job/ShipmentWithMutablePickupDeliverOptions.java new file mode 100644 index 00000000..02a6ad15 --- /dev/null +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/job/ShipmentWithMutablePickupDeliverOptions.java @@ -0,0 +1,26 @@ +package com.graphhopper.jsprit.core.problem.job; + + +import com.graphhopper.jsprit.core.problem.Location; + +import java.util.ArrayList; +import java.util.List; + +public class ShipmentWithMutablePickupDeliverOptions extends Shipment { + List pickupPossibleLocations = new ArrayList<>(); + List deliverPossibleLocations = new ArrayList<>(); + + public ShipmentWithMutablePickupDeliverOptions(Builder builder, List pickupPossibleLocations, List deliverPossibleLocations) { + super(builder); + this.pickupPossibleLocations.addAll(pickupPossibleLocations); + this.deliverPossibleLocations.addAll(deliverPossibleLocations); + } + + public List getDeliverPossibleLocations() { + return deliverPossibleLocations; + } + + public List getPickupPossibleLocations() { + return pickupPossibleLocations; + } +}