Professional Documents
Culture Documents
persistence;
import com.rental.constants.VehicleType;
import com.rental.model.booking.vehicle.Vehicle;
import com.rental.model.booking.vehicle.VehicleFactory;
import com.rental.model.branch.VehicleRentalBranch;
import java.util.*;
import java.util.stream.Collectors;
public PersistenceServiceImpl() {
branchIdToBranch = new HashMap<>();
vehicleFactory = new VehicleFactory();
}
@Override
public boolean addBranch(String branchId, Set<VehicleType> vehicleTypes) {
// Branch was already onboarded in the system.
if (branchIdToBranch.containsKey(branchId)) {
return false;
}
VehicleRentalBranch branch = new
VehicleRentalBranch(branchId,vehicleTypes);
branchIdToBranch.put(branchId, branch);
return true;
}
@Override
public boolean addVehicle(String branchId, VehicleType vehicleType, String
vehicleId, float price) {
// Branch doesn't exist.
if (!isValidBranch(branchId))
return false;
@Override
public float bookVehicle(String branchId, VehicleType vehicleType, int
startTime, int endTime) {
// Branch doesn't exist.
if (!isValidBranch(branchId))
return -1;
@Override
public String displayVehicles(String branchId, int startTime, int endTime) {
// Branch doesn't exist.
if (!isValidBranch(branchId))
return "";
VehicleRentalBranch branch = branchIdToBranch.get(branchId);
TreeSet<Vehicle> vehicles = branch.getVehicles();
return String.join(" ", getVehicleIds(vehicles, startTime, endTime));
}