private static Order parseSingleOrderFromOrdersList(Element orderElement, Menu menu) {
		Vector<OrderOfDish> orderedDishes= new Vector<OrderOfDish>();
		int orderId= Integer.decode(((orderElement.getAttribute("id")).toString()));
		NodeList addressList = orderElement.getElementsByTagName("DeliveryAddress");
		Node addressNode = addressList.item(0);
		Address orderAddress= new Address(0, 0);
		if (addressNode.getNodeType() == Node.ELEMENT_NODE) {
			Element addressElement = (Element) addressNode;
			double addressX= Double.parseDouble(addressElement.getElementsByTagName("x").item(0).getTextContent());
			double addressY= Double.parseDouble(addressElement.getElementsByTagName("y").item(0).getTextContent());
			orderAddress= new Address(addressX, addressY);
		}
		NodeList dishList = orderElement.getElementsByTagName("Dish");
		for (int i= 0; i < dishList.getLength(); i++){
			Node dishNode = dishList.item(i);
			if (dishNode.getNodeType() == Node.ELEMENT_NODE) {
				Element dishElement = (Element) dishNode;
				String dishName= dishElement.getElementsByTagName("name").item(0).getTextContent();
				int dishQuantity= Integer.decode(dishElement.getElementsByTagName("quantity").item(0).getTextContent());
				Dish currentDish= menu.findDishByName(dishName);
				if (currentDish == null)
					throw (new RuntimeException("no such dish as " + dishName));
				OrderOfDish orderedOneDish= new OrderOfDish(currentDish, dishQuantity);
				orderedDishes.add(orderedOneDish);
			}
		}
		return new Order(orderId, orderedDishes, orderAddress);
	}