From ad93dfeb471459e7fbaf716c8806d7f72152f3f4 Mon Sep 17 00:00:00 2001 From: Stefan Schroeder <4sschroeder@gmail.com> Date: Thu, 5 Dec 2013 18:16:18 +0100 Subject: [PATCH] issue #58 - fix bug --- .../src/main/java/jsprit/core/problem/io/VrpXMLReader.java | 7 ++++++- .../src/main/java/jsprit/core/problem/io/VrpXMLWriter.java | 1 + jsprit-core/src/main/resources/vrp_xml_schema.xsd | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/jsprit-core/src/main/java/jsprit/core/problem/io/VrpXMLReader.java b/jsprit-core/src/main/java/jsprit/core/problem/io/VrpXMLReader.java index 0429873a..d47b9e1f 100644 --- a/jsprit-core/src/main/java/jsprit/core/problem/io/VrpXMLReader.java +++ b/jsprit-core/src/main/java/jsprit/core/problem/io/VrpXMLReader.java @@ -441,10 +441,15 @@ public class VrpXMLReader{ String penalty = typeConfig.getString("[@type]"); if(penalty != null){ if(penalty.equals("penalty")){ - type = new PenaltyVehicleType(type); + String penaltyFactor = typeConfig.getString("[@penaltyFactor]"); + if(penaltyFactor != null){ + type = new PenaltyVehicleType(type,Double.parseDouble(penaltyFactor)); + } + else type = new PenaltyVehicleType(type); id = id + "_penalty"; } } + types.put(id, type); } diff --git a/jsprit-core/src/main/java/jsprit/core/problem/io/VrpXMLWriter.java b/jsprit-core/src/main/java/jsprit/core/problem/io/VrpXMLWriter.java index 3416f15b..d4ac23e2 100644 --- a/jsprit-core/src/main/java/jsprit/core/problem/io/VrpXMLWriter.java +++ b/jsprit-core/src/main/java/jsprit/core/problem/io/VrpXMLWriter.java @@ -248,6 +248,7 @@ public class VrpXMLWriter { for(VehicleType type : vrp.getTypes()){ if(type instanceof PenaltyVehicleType){ xmlConfig.setProperty(typePathString + "("+typeCounter+")[@type]", "penalty"); + xmlConfig.setProperty(typePathString + "("+typeCounter+")[@penaltyFactor]", ((PenaltyVehicleType)type).getPenaltyFactor()); } xmlConfig.setProperty(typePathString + "("+typeCounter+").id", type.getTypeId()); xmlConfig.setProperty(typePathString + "("+typeCounter+").capacity", type.getCapacity()); diff --git a/jsprit-core/src/main/resources/vrp_xml_schema.xsd b/jsprit-core/src/main/resources/vrp_xml_schema.xsd index f631f2f4..0b64fe56 100644 --- a/jsprit-core/src/main/resources/vrp_xml_schema.xsd +++ b/jsprit-core/src/main/resources/vrp_xml_schema.xsd @@ -82,6 +82,7 @@ +