Use encapsulation principal in CivilVehicle

Since every occurrence of collide should set
	currentAccident and broken for all cars, use
	setCurrentAccident() for both cars in collide()
	which sets both values.

Signed-off-by: HeshamTB <hishaminv@gmail.com>
This commit is contained in:
HeshamTB 2020-11-07 12:35:35 +03:00
parent e65d3d16e9
commit b70bad851e

View File

@ -1,6 +1,6 @@
import java.util.Date;
public abstract class CivilVehicle extends Vehicle implements Breakable {
public abstract class CivilVehicle extends Vehicle implements Breakable {
private boolean broken;
private Accident currentAccident;
@ -22,7 +22,7 @@ public abstract class CivilVehicle extends Vehicle implements Breakable {
cars[0] = this;
cars[1] = car;
Accident accident = new Accident(time, cars, location);
this.currentAccident = accident;
this.setCurrentAccident(accident);
if (car instanceof CivilVehicle)
((CivilVehicle)car).setCurrentAccident(accident);
return accident;
@ -51,6 +51,9 @@ public abstract class CivilVehicle extends Vehicle implements Breakable {
}
public void setCurrentAccident(Accident accident){
if (accident != null) this.currentAccident = accident;
if (accident != null) {
this.currentAccident = accident;
this._break(accident.getDate());
}
}
}