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

Break support for XMLReader

This commit is contained in:
braktar 2016-04-05 15:08:10 +02:00
parent 77d14ac0ee
commit 2b50993a7f
2 changed files with 19 additions and 0 deletions

View file

@ -564,6 +564,7 @@ public class VrpXMLReader {
typeBuilder.addCapacityDimension(index, value);
}
}
Double fix = typeConfig.getDouble("costs.fixed");
Double timeC = typeConfig.getDouble("costs.time");
Double distC = typeConfig.getDouble("costs.distance");
@ -671,6 +672,16 @@ public class VrpXMLReader {
for (String skill : skillTokens) builder.addSkill(skill.toLowerCase());
}
// read break
String breakStartString = vehicleConfig.getString("breaks.timeWindow.start");
String breakEndString = vehicleConfig.getString("breaks.timeWindow.end");
String breakDurationString = vehicleConfig.getString("breaks.duration");
if(breakStartString!=null && breakEndString!=null && breakDurationString!=null )
builder.setBreak(Break.Builder.newInstance(vehicleId)
.addTimeWindow(Double.parseDouble(breakStartString), Double.parseDouble(breakEndString))
.setServiceTime(Double.parseDouble(breakDurationString)).build());
//build vehicle
VehicleImpl vehicle = builder.build();
vrpBuilder.addVehicle(vehicle);

View file

@ -62,6 +62,7 @@
<xs:element name="timeSchedule" type="timeWindowType"/>
<xs:element name="returnToDepot" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
<xs:element name="skills" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="breaks" type="breaksType" minOccurs="0" maxOccurs="1"/>
</xs:all>
<xs:attribute name="type" type="xs:string" use="optional"/>
</xs:complexType>
@ -368,6 +369,13 @@
</xs:all>
</xs:complexType>
<xs:complexType name="breaksType">
<xs:sequence>
<xs:element name="timeWindow" type="timeWindowType" minOccurs="1" maxOccurs="1"/>
<xs:element name="duration" type="xs:double" minOccurs="1" maxOccurs="1" default="0.0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="coordType">
<xs:attribute name="x" type="xs:double" use="required"/>
<xs:attribute name="y" type="xs:double" use="required"/>