2020-10-21 02:15:03 +02:00
|
|
|
public class Route {
|
|
|
|
|
|
|
|
private Street[] streets;
|
2020-11-09 22:00:20 +01:00
|
|
|
private District hotelArea;
|
|
|
|
private Mashier mashier;
|
2020-10-21 02:15:03 +02:00
|
|
|
|
2020-11-09 22:00:20 +01:00
|
|
|
public Route(Street[] streets, District hotelArea, Mashier mashier) {
|
|
|
|
setStreets(streets);
|
|
|
|
setHotelArea(hotelArea);
|
|
|
|
setMashier(mashier);
|
2020-10-21 02:15:03 +02:00
|
|
|
}
|
|
|
|
|
2020-11-13 23:30:20 +01:00
|
|
|
public Route(Street street){
|
|
|
|
this.streets = new Street[1];
|
|
|
|
this.streets[0] = street;
|
|
|
|
}
|
|
|
|
|
2020-11-13 20:35:52 +01:00
|
|
|
public int indexOf(Street street){
|
|
|
|
for (int i = 0; i < streets.length; i++) {
|
|
|
|
if (street == streets[i]) return i;
|
|
|
|
}
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
|
2020-10-21 02:15:03 +02:00
|
|
|
public Street[] getStreets() {
|
|
|
|
return this.streets;
|
|
|
|
}
|
|
|
|
|
|
|
|
public double getTotalLength() {
|
|
|
|
double totalLength = 0;
|
|
|
|
for (Street st : streets){
|
|
|
|
totalLength += st.getLength();
|
|
|
|
}
|
|
|
|
return totalLength;
|
|
|
|
}
|
|
|
|
|
2020-11-22 23:20:48 +01:00
|
|
|
public String getFastestTimeOfTravel(Vehicle vehicle) {
|
|
|
|
double totalLength = getTotalLength();
|
|
|
|
int maxSpeed = vehicle.getMaxSpeed();
|
|
|
|
int totalTime = (int) (totalLength/maxSpeed);
|
2020-12-01 20:33:24 +01:00
|
|
|
String result = String.format("%02d:%02d",totalTime / 60, totalTime % 60);
|
2020-11-22 23:20:48 +01:00
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
2020-11-09 22:00:20 +01:00
|
|
|
public District getHotelArea() {
|
|
|
|
return hotelArea;
|
|
|
|
}
|
|
|
|
|
|
|
|
public Mashier getMashier() {
|
|
|
|
return mashier;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void setStreets(Street[] streets) {
|
|
|
|
if (streets != null) this.streets = streets;
|
|
|
|
else throwIllegal();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void setHotelArea(District hotelArea) {
|
|
|
|
if (hotelArea != null) this.hotelArea = hotelArea;
|
|
|
|
else throwIllegal();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void setMashier(Mashier mashier) {
|
|
|
|
if (mashier != null) this.mashier = mashier;
|
|
|
|
else throwIllegal();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void throwIllegal() {
|
|
|
|
throw new IllegalArgumentException();
|
|
|
|
}
|
2020-11-17 15:45:21 +01:00
|
|
|
|
2020-10-21 02:15:03 +02:00
|
|
|
}
|