Added classes:

- Bus class that extends Vehicle and implements Breakable
	- Street class and properties
	- Route still to be updated. Add Locations for start/end?
This commit is contained in:
HeshamTB 2020-10-21 03:15:03 +03:00
parent c5db5dcac0
commit e12c5ec296
Signed by: Hesham
GPG Key ID: 74876157D199B09E
3 changed files with 107 additions and 0 deletions

46
src/Bus.java Normal file
View File

@ -0,0 +1,46 @@
import java.util.Date;
public class Bus extends Vehicle implements Breakable {
private final int TIME_TO_FIX = 20; //in minutes
private boolean broken;
private boolean inAccident;
private Date breakDownTime;//TODO: PDate
public Bus(double vehicleSize) {
super(vehicleSize);
}
@Override
public int getTimeToFix() {
return TIME_TO_FIX;
}
@Override
public boolean isBroken() {
return broken;
}
@Override
public boolean isInAccident() {
return inAccident;
}
@Override
public void collide(Breakable car, Date time) {
//Make Accident here and change return type?
// or make reference as property
}
@Override
public void _break(Date time) {
broken = true;
breakDownTime = time;
}
@Override
public void fix() {
broken = false;
inAccident = false;
}
}

21
src/Route.java Normal file
View File

@ -0,0 +1,21 @@
public class Route {
private Street[] streets;
public Route(Street[] streets) {
this.streets = streets;
}
public Street[] getStreets() {
return this.streets;
}
public double getTotalLength() {
double totalLength = 0;
for (Street st : streets){
totalLength += st.getLength();
}
return totalLength;
}
}

40
src/Street.java Normal file
View File

@ -0,0 +1,40 @@
import java.util.ArrayList;
public class Street {
private double length;
private int numberOfLanes;
private ArrayList<Vehicle> vehicles;
public Street(double length, int numberOfLanes) {
setLength(length);
setNumberOfLanes(numberOfLanes);
}
public Street(double length, int numberOfLanes, ArrayList<Vehicle> vehicles) {
this(length, numberOfLanes);
this.vehicles = vehicles;
}
private void setLength(double length) {
if (length >= 0) this.length = length;
else throw new IllegalArgumentException("Can not make a negative length street");
}
private void setNumberOfLanes(int numberOfLanes) {
if (numberOfLanes >= 1) this.numberOfLanes = numberOfLanes;
else throw new IllegalArgumentException("Street can not have less then 1 lane");
}
public double getLength() {
return length;
}
public int getNumberOfLanes() {
return numberOfLanes;
}
public ArrayList<Vehicle> getVehicles() {
return vehicles;
}
}