From ceb2a442f3fc270afbbf7b7390fa4f99963fbe3b Mon Sep 17 00:00:00 2001 From: braktar Date: Tue, 16 Aug 2016 11:28:36 +0200 Subject: [PATCH] SetupTime XML --- .../com/graphhopper/jsprit/io/problem/VrpXMLReader.java | 8 ++++++-- .../com/graphhopper/jsprit/io/problem/VrpXMLWriter.java | 1 + jsprit-io/src/main/resources/vrp_xml_schema.xsd | 3 +++ 3 files changed, 10 insertions(+), 2 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 608cb217a..7c91f8781 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 @@ -604,12 +604,16 @@ private void readVehiclesAndTheirTypes(XMLConfiguration vrpProblem) { Double waitC = typeConfig.getDouble("costs.wait"); if (waitC != null) typeBuilder.setCostPerWaitingTime(waitC); } - Double setupC = typeConfig.getDouble("costs.setup"); + + + if(typeConfig.containsKey("costs.setup")){ + Double setupC = typeConfig.getDouble("costs.setup"); + if (setupC != null) typeBuilder.setCostPerSetupTime(setupC); + } if (fix != null) typeBuilder.setFixedCost(fix); if (timeC != null) typeBuilder.setCostPerTransportTime(timeC); if (distC != null) typeBuilder.setCostPerDistance(distC); - if (setupC != null) typeBuilder.setCostPerSetupTime(setupC); VehicleType type = typeBuilder.build(); String id = type.getTypeId(); types.put(id, type); 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 b9a73d6f5..1bc2c2112 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 @@ -213,6 +213,7 @@ private void writeSolutions(XMLConf xmlConfig) { throw new IllegalStateException("cannot write solution correctly since job-type is not know. make sure you use either service or shipment, or another writer"); } } + xmlConfig.setProperty(solutionPath + "(" + counter + ").routes.route(" + routeCounter + ").act(" + actCounter + ").setupTime", act.getSetupTime()); xmlConfig.setProperty(solutionPath + "(" + counter + ").routes.route(" + routeCounter + ").act(" + actCounter + ").arrTime", act.getArrTime()); xmlConfig.setProperty(solutionPath + "(" + counter + ").routes.route(" + routeCounter + ").act(" + actCounter + ").endTime", act.getEndTime()); actCounter++; diff --git a/jsprit-io/src/main/resources/vrp_xml_schema.xsd b/jsprit-io/src/main/resources/vrp_xml_schema.xsd index 9705eb586..862c40ca8 100644 --- a/jsprit-io/src/main/resources/vrp_xml_schema.xsd +++ b/jsprit-io/src/main/resources/vrp_xml_schema.xsd @@ -358,6 +358,7 @@ + @@ -366,6 +367,7 @@ + @@ -374,6 +376,7 @@ +