From 26a9ecfdfa296570343647484b8e85ac20f552b5 Mon Sep 17 00:00:00 2001 From: oblonski Date: Wed, 10 Apr 2019 22:12:59 +0200 Subject: [PATCH] simplify and remove redundant stuff --- .../jsprit/core/algorithm/box/Jsprit.java | 1 - .../vehicle/FiniteFleetManagerFactory.java | 10 ------- .../vehicle/InfiniteFleetManagerFactory.java | 2 +- .../problem/vehicle/InfiniteVehicles.java | 7 ++--- .../jsprit/core/problem/vehicle/Vehicle.java | 22 +++++++------- .../problem/vehicle/VehicleFleetManager.java | 24 +++++++-------- .../vehicle/VehicleFleetManagerFactory.java | 2 +- .../vehicle/VehicleFleetManagerImpl.java | 26 ++++++---------- .../core/problem/vehicle/VehicleImpl.java | 17 ++++------- .../core/problem/vehicle/VehicleType.java | 16 ++++------ .../core/problem/vehicle/VehicleTypeImpl.java | 30 +++++++------------ .../core/problem/vehicle/VehicleTypeKey.java | 6 ++-- 12 files changed, 61 insertions(+), 102 deletions(-) diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/box/Jsprit.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/box/Jsprit.java index 7225cf1f..5aeb4224 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/box/Jsprit.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/box/Jsprit.java @@ -406,7 +406,6 @@ public class Jsprit { vehicleFleetManager = new InfiniteFleetManagerFactory(vrp.getVehicles()).createFleetManager(); } else { FiniteFleetManagerFactory finiteFleetManagerFactory = new FiniteFleetManagerFactory(vrp.getVehicles()); - finiteFleetManagerFactory.setRandom(random); vehicleFleetManager = finiteFleetManagerFactory.createFleetManager(); } } diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/FiniteFleetManagerFactory.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/FiniteFleetManagerFactory.java index c9c2fe73..50ef18f6 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/FiniteFleetManagerFactory.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/FiniteFleetManagerFactory.java @@ -17,10 +17,7 @@ */ package com.graphhopper.jsprit.core.problem.vehicle; -import com.graphhopper.jsprit.core.util.RandomNumberGeneration; - import java.util.Collection; -import java.util.Random; /** * Factory that creates a finite fleetmanager. @@ -31,8 +28,6 @@ public class FiniteFleetManagerFactory implements VehicleFleetManagerFactory { private Collection vehicles; - private Random random = RandomNumberGeneration.getRandom(); - /** * Constucts the factory. * @@ -43,10 +38,6 @@ public class FiniteFleetManagerFactory implements VehicleFleetManagerFactory { this.vehicles = vehicles; } - public void setRandom(Random random) { - this.random = random; - } - /** * Creates the finite fleetmanager. * @@ -58,7 +49,6 @@ public class FiniteFleetManagerFactory implements VehicleFleetManagerFactory { if (vehicles == null) throw new IllegalStateException("vehicles is null. this must not be."); if (vehicles.isEmpty()) throw new IllegalStateException("vehicle-collection is empty. this must not be"); VehicleFleetManagerImpl vehicleFleetManager = new VehicleFleetManagerImpl(vehicles); - vehicleFleetManager.setRandom(random); vehicleFleetManager.init(); return vehicleFleetManager; } diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/InfiniteFleetManagerFactory.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/InfiniteFleetManagerFactory.java index 46d4e9d6..93269fbb 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/InfiniteFleetManagerFactory.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/InfiniteFleetManagerFactory.java @@ -32,7 +32,7 @@ public class InfiniteFleetManagerFactory implements VehicleFleetManagerFactory { /** * Constructs the factory. * - * @param vehicles + * @param vehicles that are used to initialize the fleet manager */ public InfiniteFleetManagerFactory(Collection vehicles) { super(); diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/InfiniteVehicles.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/InfiniteVehicles.java index 5fbdb93c..bd67b173 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/InfiniteVehicles.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/InfiniteVehicles.java @@ -34,11 +34,10 @@ class InfiniteVehicles implements VehicleFleetManager { private static Logger logger = LoggerFactory.getLogger(InfiniteVehicles.class); - private Map types = new HashMap(); + private Map types = new HashMap<>(); -// private List sortedTypes = new ArrayList(); - public InfiniteVehicles(Collection vehicles) { + InfiniteVehicles(Collection vehicles) { extractTypes(vehicles); logger.debug("initialise " + this); } @@ -85,7 +84,7 @@ class InfiniteVehicles implements VehicleFleetManager { @Override public Collection getAvailableVehicles(Vehicle withoutThisType) { - Collection vehicles = new ArrayList(); + Collection vehicles = new ArrayList<>(); VehicleTypeKey thisKey = new VehicleTypeKey(withoutThisType.getType().getTypeId(), withoutThisType.getStartLocation().getId(), withoutThisType.getEndLocation().getId(), withoutThisType.getEarliestDeparture(), withoutThisType.getLatestArrival(), withoutThisType.getSkills(), withoutThisType.isReturnToDepot()); for (VehicleTypeKey key : types.keySet()) { if (!key.equals(thisKey)) { diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/Vehicle.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/Vehicle.java index 6d430655..927ace88 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/Vehicle.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/Vehicle.java @@ -35,50 +35,50 @@ public interface Vehicle extends HasId, HasIndex { * * @return earliest departure time */ - public abstract double getEarliestDeparture(); + double getEarliestDeparture(); /** * Returns the latest arrival time at this vehicle's end-location which should be the upper bound of this vehicle's arrival times at end-location. * * @return latest arrival time of this vehicle */ - public abstract double getLatestArrival(); + double getLatestArrival(); /** * Returns the {@link VehicleType} of this vehicle. * * @return {@link VehicleType} of this vehicle */ - public abstract VehicleType getType(); + VehicleType getType(); /** * Returns the id of this vehicle. * * @return id */ - public abstract String getId(); + String getId(); /** * Returns true if vehicle returns to depot, false otherwise. * * @return true if isReturnToDepot */ - public abstract boolean isReturnToDepot(); + boolean isReturnToDepot(); - public abstract Location getStartLocation(); + Location getStartLocation(); - public abstract Location getEndLocation(); + Location getEndLocation(); - public abstract VehicleTypeKey getVehicleTypeIdentifier(); + VehicleTypeKey getVehicleTypeIdentifier(); - public abstract Skills getSkills(); + Skills getSkills(); /** * @return User-specific domain data associated with the vehicle */ - public Object getUserData(); + Object getUserData(); - public abstract Break getBreak(); + Break getBreak(); // Switch to this as soon as we switct to Java 8: // default Object getUserData() { // return null; diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/VehicleFleetManager.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/VehicleFleetManager.java index b6861c9b..ccbca759 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/VehicleFleetManager.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/VehicleFleetManager.java @@ -27,31 +27,31 @@ public interface VehicleFleetManager { *

*

This indicates that this vehicle is being used. Thus it is not in list of available vehicles. * - * @param vehicle + * @param vehicle to lock */ - public abstract void lock(Vehicle vehicle); + void lock(Vehicle vehicle); /** * Unlocks vehicle. *

*

This indicates that this vehicle is not being used anymore. Thus it is in list of available vehicles. * - * @param vehicle + * @param vehicle to unlock */ - public abstract void unlock(Vehicle vehicle); + void unlock(Vehicle vehicle); /** * Returns true if locked. * - * @param vehicle - * @return + * @param vehicle vehicle to lock + * @return true if locked */ - public abstract boolean isLocked(Vehicle vehicle); + boolean isLocked(Vehicle vehicle); /** * Unlocks all locked vehicles. */ - public abstract void unlockAll(); + void unlockAll(); /** * Returns a collection of available vehicles. @@ -61,11 +61,11 @@ public interface VehicleFleetManager { * This is to avoid returning too many vehicles that are basically equal. *

Look at {@link VehicleTypeKey} to figure out whether two vehicles are equal or not. * - * @return + * @return collection of available vehicles */ - public abstract Collection getAvailableVehicles(); + Collection getAvailableVehicles(); - public Collection getAvailableVehicles(Vehicle withoutThisType); + Collection getAvailableVehicles(Vehicle withoutThisType); - public Vehicle getAvailableVehicle(VehicleTypeKey vehicleTypeIdentifier); + Vehicle getAvailableVehicle(VehicleTypeKey vehicleTypeIdentifier); } diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/VehicleFleetManagerFactory.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/VehicleFleetManagerFactory.java index f5e4525e..7bfe691f 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/VehicleFleetManagerFactory.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/VehicleFleetManagerFactory.java @@ -19,6 +19,6 @@ package com.graphhopper.jsprit.core.problem.vehicle; public interface VehicleFleetManagerFactory { - public VehicleFleetManager createFleetManager(); + VehicleFleetManager createFleetManager(); } diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/VehicleFleetManagerImpl.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/VehicleFleetManagerImpl.java index 5741594a..34c91b81 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/VehicleFleetManagerImpl.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/VehicleFleetManagerImpl.java @@ -23,7 +23,6 @@ import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.Collection; import java.util.List; -import java.util.Random; class VehicleFleetManagerImpl implements VehicleFleetManager { @@ -40,7 +39,7 @@ class VehicleFleetManagerImpl implements VehicleFleetManager { TypeContainer() { super(); - vehicleList = new ArrayList(); + vehicleList = new ArrayList<>(); } void add(Vehicle vehicle) { @@ -56,8 +55,7 @@ class VehicleFleetManagerImpl implements VehicleFleetManager { Vehicle getVehicle() { if(index >= vehicleList.size()) index = 0; - Vehicle vehicle = vehicleList.get(index); - return vehicle; + return vehicleList.get(index); } void incIndex(){ @@ -80,8 +78,6 @@ class VehicleFleetManagerImpl implements VehicleFleetManager { private Vehicle[] vehicleArr; - private Random random; - VehicleFleetManagerImpl(Collection vehicles) { super(); this.vehicles = vehicles; @@ -90,10 +86,6 @@ class VehicleFleetManagerImpl implements VehicleFleetManager { vehicleArr = new Vehicle[arrSize]; } - void setRandom(Random random) { - this.random = random; - } - void init(){ initializeVehicleTypes(); logger.debug("initialise {}",this); @@ -142,10 +134,10 @@ class VehicleFleetManagerImpl implements VehicleFleetManager { */ @Override public Collection getAvailableVehicles() { - List vehicles = new ArrayList(); - for(int i=0;i< vehicleTypes.length;i++){ - if(!vehicleTypes[i].isEmpty()){ - vehicles.add(vehicleTypes[i].getVehicle()); + List vehicles = new ArrayList<>(); + for (TypeContainer vehicleType : vehicleTypes) { + if (!vehicleType.isEmpty()) { + vehicles.add(vehicleType.getVehicle()); } } return vehicles; @@ -153,7 +145,7 @@ class VehicleFleetManagerImpl implements VehicleFleetManager { @Override public Collection getAvailableVehicles(Vehicle withoutThisType) { - List vehicles = new ArrayList(); + List vehicles = new ArrayList<>(); for(int i=0;i< vehicleTypes.length;i++){ if(!vehicleTypes[i].isEmpty() && i != withoutThisType.getVehicleTypeIdentifier().getIndex()){ vehicles.add(vehicleTypes[i].getVehicle()); @@ -218,8 +210,8 @@ class VehicleFleetManagerImpl implements VehicleFleetManager { unlock(vehicleArr[i]); } } - for(int i=0;i *

by default it is 0. * - * @param fixedCost + * @param fixedCost fixed cost of vehicle type * @return this builder * @throws IllegalArgumentException if fixedCost is smaller than zero */ @@ -208,7 +203,7 @@ public class VehicleTypeImpl implements VehicleType { *

*

by default it is 1.0 * - * @param perDistance + * @param perDistance cost per distance * @return this builder * @throws IllegalArgumentException if perDistance is smaller than zero */ @@ -224,7 +219,7 @@ public class VehicleTypeImpl implements VehicleType { *

*

by default it is 0.0 * - * @param perTime + * @param perTime cost per time * @return this builder * @throws IllegalArgumentException if costPerTime is smaller than zero * @deprecated use .setCostPerTransportTime(..) instead @@ -241,7 +236,7 @@ public class VehicleTypeImpl implements VehicleType { *

*

by default it is 0.0 * - * @param perTime + * @param perTime cost per time * @return this builder * @throws IllegalArgumentException if costPerTime is smaller than zero */ @@ -256,7 +251,7 @@ public class VehicleTypeImpl implements VehicleType { *

*

by default it is 0.0 * - * @param perWaitingTime + * @param perWaitingTime cost per waiting time * @return this builder * @throws IllegalArgumentException if costPerTime is smaller than zero */ @@ -286,8 +281,8 @@ public class VehicleTypeImpl implements VehicleType { /** * Adds a capacity dimension. * - * @param dimIndex - * @param dimVal + * @param dimIndex dimension index + * @param dimVal dimension value * @return the builder * @throws IllegalArgumentException if dimVal < 0 * @throws IllegalArgumentException if capacity dimension is already set @@ -310,7 +305,7 @@ public class VehicleTypeImpl implements VehicleType { * your dimensions with addCapacityDimension(int dimIndex, int dimVal) or set the already built dimensions with * this method. * - * @param capacity + * @param capacity capacity of vehicle type * @return this builder * @throws IllegalArgumentException if capacityDimension has already been added */ @@ -358,8 +353,6 @@ public class VehicleTypeImpl implements VehicleType { private final String typeId; - private final int capacity; - private final String profile; private final VehicleTypeImpl.VehicleCostParams vehicleCostParams; @@ -373,12 +366,11 @@ public class VehicleTypeImpl implements VehicleType { /** * priv constructor constructing vehicle-type * - * @param builder + * @param builder vehicle type builder */ private VehicleTypeImpl(VehicleTypeImpl.Builder builder) { this.userData = builder.userData; typeId = builder.id; - capacity = builder.capacity; maxVelocity = builder.maxVelo; vehicleCostParams = new VehicleCostParams(builder.fixedCost, builder.perTime, builder.perDistance, builder.perWaitingTime, builder.perServiceTime); capacityDimensions = builder.capacityDimensions; diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/VehicleTypeKey.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/VehicleTypeKey.java index 4f8bdc44..807d802b 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/VehicleTypeKey.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/VehicleTypeKey.java @@ -84,10 +84,8 @@ public class VehicleTypeKey extends AbstractVehicle.AbstractTypeKey { @Override public String toString() { - StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append(type).append("_").append(startLocationId).append("_").append(endLocationId) - .append("_").append(Double.toString(earliestStart)).append("_").append(Double.toString(latestEnd)); - return stringBuilder.toString(); + return type + "_" + startLocationId + "_" + endLocationId + + "_" + Double.toString(earliestStart) + "_" + Double.toString(latestEnd); }