From f25c9079dc542a0bad4127900c4e9618e496ba26 Mon Sep 17 00:00:00 2001 From: Stefan Schroeder <4sschroeder@gmail.com> Date: Mon, 5 Aug 2013 18:38:28 +0200 Subject: [PATCH] add maxVelocity to vehicleType --- .../java/basics/route/PenaltyVehicleType.java | 5 +++++ .../main/java/basics/route/VehicleType.java | 2 ++ .../java/basics/route/VehicleTypeImpl.java | 19 ++++++++++++++++--- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/jsprit-core/src/main/java/basics/route/PenaltyVehicleType.java b/jsprit-core/src/main/java/basics/route/PenaltyVehicleType.java index 9963a00c..29582267 100644 --- a/jsprit-core/src/main/java/basics/route/PenaltyVehicleType.java +++ b/jsprit-core/src/main/java/basics/route/PenaltyVehicleType.java @@ -26,6 +26,11 @@ public class PenaltyVehicleType implements VehicleType{ return type.getVehicleCostParams(); } + @Override + public double getMaxVelocity() { + return type.getMaxVelocity(); + } + } diff --git a/jsprit-core/src/main/java/basics/route/VehicleType.java b/jsprit-core/src/main/java/basics/route/VehicleType.java index e0870532..9558ba62 100644 --- a/jsprit-core/src/main/java/basics/route/VehicleType.java +++ b/jsprit-core/src/main/java/basics/route/VehicleType.java @@ -8,6 +8,8 @@ public interface VehicleType { public String getTypeId(); public int getCapacity(); + + public double getMaxVelocity(); public VehicleCostParams getVehicleCostParams(); diff --git a/jsprit-core/src/main/java/basics/route/VehicleTypeImpl.java b/jsprit-core/src/main/java/basics/route/VehicleTypeImpl.java index aa3a7820..3e62c292 100644 --- a/jsprit-core/src/main/java/basics/route/VehicleTypeImpl.java +++ b/jsprit-core/src/main/java/basics/route/VehicleTypeImpl.java @@ -35,6 +35,7 @@ public class VehicleTypeImpl implements VehicleType { private String id; private int capacity; + private double maxVelo = Double.MAX_VALUE; /** * default cost values for default vehicle type */ @@ -48,6 +49,8 @@ public class VehicleTypeImpl implements VehicleType { this.capacity = capacity; } + public VehicleTypeImpl.Builder setMaxVelocity(double inMeterPerSeconds){ this.maxVelo = inMeterPerSeconds; return this; } + public VehicleTypeImpl.Builder setFixedCost(double fixedCost) { this.fixedCost = fixedCost; return this; } public VehicleTypeImpl.Builder setCostPerDistance(double perDistance){ this.perDistance = perDistance; return this; } @@ -86,9 +89,13 @@ public class VehicleTypeImpl implements VehicleType { return true; } - public final String typeId; - public final int capacity; - public final VehicleTypeImpl.VehicleCostParams vehicleCostParams; + private final String typeId; + + private final int capacity; + + private final VehicleTypeImpl.VehicleCostParams vehicleCostParams; + + private double maxVelocity; public static VehicleTypeImpl newInstance(String typeId, int capacity, VehicleTypeImpl.VehicleCostParams para){ return new VehicleTypeImpl(typeId, capacity, para); @@ -97,6 +104,7 @@ public class VehicleTypeImpl implements VehicleType { private VehicleTypeImpl(VehicleTypeImpl.Builder builder){ typeId = builder.id; capacity = builder.capacity; + maxVelocity = builder.maxVelo; vehicleCostParams = new VehicleCostParams(builder.fixedCost, builder.perTime, builder.perDistance); } @@ -135,4 +143,9 @@ public class VehicleTypeImpl implements VehicleType { public String toString() { return "[typeId="+typeId+"][capacity="+capacity+"]" + vehicleCostParams; } + + @Override + public double getMaxVelocity() { + return maxVelocity; + } } \ No newline at end of file