From e2c9c59568b1d68587d877d22ebf2711077d86d7 Mon Sep 17 00:00:00 2001 From: braktar Date: Wed, 7 Sep 2016 12:54:07 +0200 Subject: [PATCH] breakId fix & custom --- .../com/graphhopper/jsprit/io/problem/VrpXMLReader.java | 3 ++- .../com/graphhopper/jsprit/io/problem/VrpXMLWriter.java | 6 +++--- jsprit-io/src/main/resources/vrp_xml_schema.xsd | 1 + 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/jsprit-io/src/main/java/com/graphhopper/jsprit/io/problem/VrpXMLReader.java b/jsprit-io/src/main/java/com/graphhopper/jsprit/io/problem/VrpXMLReader.java index 0b5148c3..504d39c4 100644 --- a/jsprit-io/src/main/java/com/graphhopper/jsprit/io/problem/VrpXMLReader.java +++ b/jsprit-io/src/main/java/com/graphhopper/jsprit/io/problem/VrpXMLReader.java @@ -701,7 +701,8 @@ public class VrpXMLReader { List breakTWConfigs = vehicleConfig.configurationsAt("breaks.timeWindows.timeWindow"); if (!breakTWConfigs.isEmpty()) { String breakDurationString = vehicleConfig.getString("breaks.duration"); - Break.Builder current_break = Break.Builder.newInstance(vehicleId); + String id = vehicleConfig.getString("breaks.id"); + Break.Builder current_break = Break.Builder.newInstance(id); current_break.setServiceTime(Double.parseDouble(breakDurationString)); for (HierarchicalConfiguration twConfig : breakTWConfigs) { current_break.addTimeWindow(TimeWindow.newInstance(twConfig.getDouble("start"), twConfig.getDouble("end"))); diff --git a/jsprit-io/src/main/java/com/graphhopper/jsprit/io/problem/VrpXMLWriter.java b/jsprit-io/src/main/java/com/graphhopper/jsprit/io/problem/VrpXMLWriter.java index 15dd7913..024d4958 100644 --- a/jsprit-io/src/main/java/com/graphhopper/jsprit/io/problem/VrpXMLWriter.java +++ b/jsprit-io/src/main/java/com/graphhopper/jsprit/io/problem/VrpXMLWriter.java @@ -203,12 +203,12 @@ public class VrpXMLWriter { xmlConfig.setProperty(solutionPath + "(" + counter + ").routes.route(" + routeCounter + ").act(" + actCounter + ")[@type]", act.getName()); if (act instanceof TourActivity.JobActivity) { Job job = ((TourActivity.JobActivity) act).getJob(); - if (job instanceof Service) { + if (job instanceof Break) { + xmlConfig.setProperty(solutionPath + "(" + counter + ").routes.route(" + routeCounter + ").act(" + actCounter + ").breakId", job.getId()); + } else if (job instanceof Service) { xmlConfig.setProperty(solutionPath + "(" + counter + ").routes.route(" + routeCounter + ").act(" + actCounter + ").serviceId", job.getId()); } else if (job instanceof Shipment) { xmlConfig.setProperty(solutionPath + "(" + counter + ").routes.route(" + routeCounter + ").act(" + actCounter + ").shipmentId", job.getId()); - } else if (job instanceof Break) { - xmlConfig.setProperty(solutionPath + "(" + counter + ").routes.route(" + routeCounter + ").act(" + actCounter + ").breakId", job.getId()); } else { throw new IllegalStateException("cannot write solution correctly since job-type is not know. make sure you use either service or shipment, or another writer"); } diff --git a/jsprit-io/src/main/resources/vrp_xml_schema.xsd b/jsprit-io/src/main/resources/vrp_xml_schema.xsd index 9d67a9d9..04a36b26 100644 --- a/jsprit-io/src/main/resources/vrp_xml_schema.xsd +++ b/jsprit-io/src/main/resources/vrp_xml_schema.xsd @@ -395,6 +395,7 @@ +