From ab17e93a63f8cff098e7bd09456eef9f53c9b8fb Mon Sep 17 00:00:00 2001 From: Michal Maciejewski Date: Thu, 19 Oct 2017 20:31:01 +0200 Subject: [PATCH 1/5] small refinements --- .gitignore | 3 ++- .../java/com/graphhopper/jsprit/core/problem/Skills.java | 2 +- .../java/com/graphhopper/jsprit/core/util/Coordinate.java | 4 ++-- .../com/graphhopper/jsprit/core/util/EuclideanCosts.java | 7 ++----- jsprit-examples/.gitignore | 1 + 5 files changed, 8 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 82606be8..ad4df13a 100644 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,5 @@ # Eclipse .project -.classpath \ No newline at end of file +.classpath +/.settings/ diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/Skills.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/Skills.java index 6a23c154..ddc7df8e 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/Skills.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/Skills.java @@ -109,7 +109,7 @@ public class Skills { * @return true if skill is included, false otherwise */ public boolean containsSkill(String skill) { - return skills.contains(skill.toLowerCase()); + return skills.contains(skill.trim().toLowerCase());// trim to be consistent with addSkill() } @Override diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/util/Coordinate.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/util/Coordinate.java index 53c20147..6c1c26c8 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/util/Coordinate.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/util/Coordinate.java @@ -23,9 +23,9 @@ public class Coordinate { return new Coordinate(x, y); } - private double x; + private final double x; - private double y; + private final double y; public Coordinate(double x, double y) { super(); diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/util/EuclideanCosts.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/util/EuclideanCosts.java index 15b18704..6a9e37ae 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/util/EuclideanCosts.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/util/EuclideanCosts.java @@ -60,11 +60,8 @@ public class EuclideanCosts extends AbstractForwardVehicleRoutingTransportCosts private double calculateDistance(Location fromLocation, Location toLocation) { Coordinate from = null; Coordinate to = null; - if (fromLocation.getCoordinate() != null & toLocation.getCoordinate() != null) { - from = fromLocation.getCoordinate(); - to = toLocation.getCoordinate(); - } - if (from == null || to == null) throw new NullPointerException(); + from = fromLocation.getCoordinate(); + to = toLocation.getCoordinate(); return calculateDistance(from, to); } diff --git a/jsprit-examples/.gitignore b/jsprit-examples/.gitignore index d1980dba..77f4a590 100644 --- a/jsprit-examples/.gitignore +++ b/jsprit-examples/.gitignore @@ -13,3 +13,4 @@ .project .classpath .settings +/.factorypath From 0dfffdd9dd824e9d0027dede0b12cb212e2abff9 Mon Sep 17 00:00:00 2001 From: oblonski Date: Mon, 23 Oct 2017 21:57:17 +0200 Subject: [PATCH 2/5] add helper methods - related to #380 --- .../jsprit/core/problem/job/Service.java | 9 +++++++-- .../jsprit/core/problem/job/Shipment.java | 14 ++++++++++++-- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/job/Service.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/job/Service.java index ab54929e..4f8a1e96 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/job/Service.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/job/Service.java @@ -17,8 +17,6 @@ */ package com.graphhopper.jsprit.core.problem.job; -import java.util.Collection; - import com.graphhopper.jsprit.core.problem.AbstractJob; import com.graphhopper.jsprit.core.problem.Capacity; import com.graphhopper.jsprit.core.problem.Location; @@ -28,6 +26,8 @@ import com.graphhopper.jsprit.core.problem.solution.route.activity.TimeWindows; import com.graphhopper.jsprit.core.problem.solution.route.activity.TimeWindowsImpl; import com.graphhopper.jsprit.core.util.Coordinate; +import java.util.Collection; + /** * Service implementation of a job. *

@@ -194,6 +194,11 @@ public class Service extends AbstractJob { return addTimeWindow(TimeWindow.newInstance(earliest, latest)); } + public Builder addAllTimeWindows(Collection timeWindows) { + for (TimeWindow tw : timeWindows) addTimeWindow(tw); + return this; + } + /** * Builds the service. * diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/job/Shipment.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/job/Shipment.java index 22c551cd..6b1a75cd 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/job/Shipment.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/job/Shipment.java @@ -17,8 +17,6 @@ */ package com.graphhopper.jsprit.core.problem.job; -import java.util.Collection; - import com.graphhopper.jsprit.core.problem.AbstractJob; import com.graphhopper.jsprit.core.problem.Capacity; import com.graphhopper.jsprit.core.problem.Location; @@ -26,6 +24,8 @@ import com.graphhopper.jsprit.core.problem.Skills; import com.graphhopper.jsprit.core.problem.solution.route.activity.TimeWindow; import com.graphhopper.jsprit.core.problem.solution.route.activity.TimeWindowsImpl; +import java.util.Collection; + /** * Shipment is an implementation of Job and consists of a pickup and a delivery of something. @@ -277,6 +277,11 @@ public class Shipment extends AbstractJob { return this; } + public Builder addAllDeliveryTimeWindows(Collection timeWindow) { + for (TimeWindow tw : timeWindow) addDeliveryTimeWindow(tw); + return this; + } + public Builder addPickupTimeWindow(TimeWindow timeWindow) { if(timeWindow == null) throw new IllegalArgumentException("time-window arg must not be null"); if(!pickupTimeWindowAdded){ @@ -291,6 +296,11 @@ public class Shipment extends AbstractJob { return addPickupTimeWindow(TimeWindow.newInstance(earliest, latest)); } + public Builder addAllPickupTimeWindows(Collection timeWindow) { + for (TimeWindow tw : timeWindow) addPickupTimeWindow(tw); + return this; + } + /** * Set priority to shipment. Only 1 (high) to 10 (low) are allowed. *

From 6166c0ea104ab6116dba0844197c8c767dddb8d8 Mon Sep 17 00:00:00 2001 From: oblonski Date: Mon, 23 Oct 2017 22:16:10 +0200 Subject: [PATCH 3/5] add helper methods - related to #380 --- .../jsprit/core/problem/job/Service.java | 2 +- .../jsprit/core/problem/job/Shipment.java | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/job/Service.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/job/Service.java index 4f8a1e96..3be5dad5 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/job/Service.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/job/Service.java @@ -232,7 +232,7 @@ public class Service extends AbstractJob { public Builder addAllSizeDimensions(Capacity size){ for(int i=0;i Date: Tue, 24 Oct 2017 14:19:19 +0200 Subject: [PATCH 4/5] reverted change in jsprit-examples/.gitignore --- jsprit-examples/.gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/jsprit-examples/.gitignore b/jsprit-examples/.gitignore index 77f4a590..d1980dba 100644 --- a/jsprit-examples/.gitignore +++ b/jsprit-examples/.gitignore @@ -13,4 +13,3 @@ .project .classpath .settings -/.factorypath From 49c6d3694533f2c7129664aa1c1bceb9e2a5b9f8 Mon Sep 17 00:00:00 2001 From: Michal Maciejewski Date: Tue, 24 Oct 2017 14:31:36 +0200 Subject: [PATCH 5/5] EuclideanCosts.calculateDistance(Location,Location) is a one-liner now --- .../com/graphhopper/jsprit/core/util/EuclideanCosts.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/util/EuclideanCosts.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/util/EuclideanCosts.java index 6a9e37ae..265ac70e 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/util/EuclideanCosts.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/util/EuclideanCosts.java @@ -58,11 +58,7 @@ public class EuclideanCosts extends AbstractForwardVehicleRoutingTransportCosts } private double calculateDistance(Location fromLocation, Location toLocation) { - Coordinate from = null; - Coordinate to = null; - from = fromLocation.getCoordinate(); - to = toLocation.getCoordinate(); - return calculateDistance(from, to); + return calculateDistance(fromLocation.getCoordinate(), toLocation.getCoordinate()); } private double calculateDistance(Coordinate from, Coordinate to) {