class EdgeEvaluatorTravelTime implements EdgeEvaluator {

  @Override
  public double computeWeight(ModelEdge edge, Vehicle vehicle) {
    int maxVelocity;
    if (edge.isTravellingReverse()) {
      maxVelocity = Math.min(vehicle.getMaxReverseVelocity(),
                             edge.getModelPath().getMaxReverseVelocity());
    }
    else {
      maxVelocity = Math.min(vehicle.getMaxVelocity(), edge.getModelPath().getMaxVelocity());
    }
    return (maxVelocity == 0) ? INFINITE_COSTS : edge.getModelPath().getLength() / maxVelocity;
  }

  public  EdgeEvaluatorTravelTime();

}