public void archiveQueueFailures(int time) throws VehicleException {

		for (int i = 0; i < vehiclesInQueue.size(); i++) {
			if ((vehiclesInQueue.get(i).isQueued() != true)) {
				throw new VehicleException("The vehicle is not in the queue");
			} else if (time < 0 || time > Constants.CLOSING_TIME) {
				throw new VehicleException(
						"The vehicle has been queued for too long");
			} else {
				Vehicle v;
				v = vehiclesInQueue.get(i);
				/*
				 * If the vehicles been in queue for longer than the maximum
				 * queue time then leave the queue and get archived.
				 */
				if ((time - v.getArrivalTime()) > Constants.MAXIMUM_QUEUE_TIME) {
					dissatifiedVehicles.add(v);
					vehiclesInQueue.remove(v);

					if (v instanceof Car) {
						if (((Car) v).isSmall()) {
							carParkStatus += "|S:Q>A|";
						}
						// Else if the car is normal size.
						else if (((Car) v).isSmall() == false) {
							carParkStatus += "|C:Q>A|";
						}
					} else if (v instanceof MotorCycle) {
						carParkStatus += "|M:Q>A|";
					} else {
						throw new VehicleException("Invalid vehicle types.");
					}
				}

			}
		}
	}