public void archiveDepartingVehicles(int time, boolean force)
			throws VehicleException, SimulationException {
		ArrayList<Vehicle> departingVehicles = new ArrayList<Vehicle>();
		for (int i = 0; i < spaces.size(); i++) {

			// Check to make sure vehicle is parked, throw exception if not
			if (spaces.get(i).isParked() == false)
				throw new SimulationException(
						"One or more departing Vehicles are"
								+ " currently not in the car park. Archive Departing Vehicles failure.\n");

			else if (time == spaces.get(i).getDepartureTime()) {
				spaces.get(i).exitParkedState(time);
				outgoingVehicleMonitor(spaces.get(i));
				past.add(spaces.get(i));
				status += setVehicleMsg(spaces.get(i), "P", "A");
				departingVehicles.add(spaces.get(i));

			}

			// Dumping all cars from the carpark if force is true.
			else if (force == true) {
				spaces.get(i).exitParkedState(time);
				outgoingVehicleMonitor(spaces.get(i));
				past.add(spaces.get(i));
				status += setVehicleMsg(spaces.get(i), "P", "A");
				departingVehicles.add(spaces.get(i));
			}
		}

		spaces.removeAll(departingVehicles);
	}