mirror of
https://github.com/graphhopper/jsprit.git
synced 2020-01-24 07:45:05 +01:00
create BreakActivity via factory rather than directly
This commit is contained in:
parent
5498239dd4
commit
7d11224bcd
1 changed files with 12 additions and 5 deletions
|
|
@ -19,6 +19,7 @@ package com.graphhopper.jsprit.core.problem;
|
||||||
import com.graphhopper.jsprit.core.problem.cost.VehicleRoutingActivityCosts;
|
import com.graphhopper.jsprit.core.problem.cost.VehicleRoutingActivityCosts;
|
||||||
import com.graphhopper.jsprit.core.problem.cost.VehicleRoutingTransportCosts;
|
import com.graphhopper.jsprit.core.problem.cost.VehicleRoutingTransportCosts;
|
||||||
import com.graphhopper.jsprit.core.problem.cost.WaitingTimeCosts;
|
import com.graphhopper.jsprit.core.problem.cost.WaitingTimeCosts;
|
||||||
|
import com.graphhopper.jsprit.core.problem.job.Break;
|
||||||
import com.graphhopper.jsprit.core.problem.job.Job;
|
import com.graphhopper.jsprit.core.problem.job.Job;
|
||||||
import com.graphhopper.jsprit.core.problem.job.Service;
|
import com.graphhopper.jsprit.core.problem.job.Service;
|
||||||
import com.graphhopper.jsprit.core.problem.job.Shipment;
|
import com.graphhopper.jsprit.core.problem.job.Shipment;
|
||||||
|
|
@ -100,7 +101,10 @@ public class VehicleRoutingProblem {
|
||||||
@Override
|
@Override
|
||||||
public List<AbstractActivity> createActivities(Job job) {
|
public List<AbstractActivity> createActivities(Job job) {
|
||||||
List<AbstractActivity> acts = new ArrayList<AbstractActivity>();
|
List<AbstractActivity> acts = new ArrayList<AbstractActivity>();
|
||||||
if (job instanceof Service) {
|
if( job instanceof Break){
|
||||||
|
acts.add(BreakActivity.newInstance((Break) job));
|
||||||
|
}
|
||||||
|
else if (job instanceof Service) {
|
||||||
acts.add(serviceActivityFactory.createActivity((Service) job));
|
acts.add(serviceActivityFactory.createActivity((Service) job));
|
||||||
} else if (job instanceof Shipment) {
|
} else if (job instanceof Shipment) {
|
||||||
acts.add(shipmentActivityFactory.createPickup((Shipment) job));
|
acts.add(shipmentActivityFactory.createPickup((Shipment) job));
|
||||||
|
|
@ -278,10 +282,13 @@ public class VehicleRoutingProblem {
|
||||||
for (Vehicle v : uniqueVehicles) {
|
for (Vehicle v : uniqueVehicles) {
|
||||||
if (v.getBreak() != null) {
|
if (v.getBreak() != null) {
|
||||||
hasBreaks = true;
|
hasBreaks = true;
|
||||||
AbstractActivity breakActivity = BreakActivity.newInstance(v.getBreak());
|
List<AbstractActivity> breakActivities = jobActivityFactory.createActivities(v.getBreak());
|
||||||
breakActivity.setIndex(activityIndexCounter);
|
if(breakActivities.isEmpty()) throw new IllegalArgumentException("at least one activity for break needs to be created by activityFactory");
|
||||||
incActivityIndexCounter();
|
for(AbstractActivity act : breakActivities){
|
||||||
activityMap.put(v.getBreak(), Arrays.asList(breakActivity));
|
act.setIndex(activityIndexCounter);
|
||||||
|
incActivityIndexCounter();
|
||||||
|
}
|
||||||
|
activityMap.put(v.getBreak(), breakActivities);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return hasBreaks;
|
return hasBreaks;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue