public static Cleaning buildFromElement(Element e, List<Item> items) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat(CleaningApplication.DATE_FORMAT); Cleaning cleaning = new Cleaning(); cleaning.setName(e.getAttribute("name")); cleaning.setPlanedDate(sdf.parse(e.getAttribute("planedDate"))); String doneDate = e.getAttribute("doneDate"); if (!doneDate.isEmpty()) { cleaning.setDoneDate(sdf.parse(doneDate)); } NodeList itemsList = e.getChildNodes(); for (int i = 0; i < itemsList.getLength(); i++) { Node childNode = itemsList.item(i); if (childNode.getNodeType() == Node.ELEMENT_NODE) { if (childNode.getNodeName().equalsIgnoreCase("itemClening")) { Element child = (Element) childNode; Integer idItem = new Integer(child.getAttribute("idItem")); for (Item item : items) { if (item.getIdItem() == idItem) { cleaning.items.add(item); break; } } } else if (childNode.getNodeName().equalsIgnoreCase("tasks")) { Element child = (Element) childNode; cleaning.getTasks().add(Task.TaskBuilder.buildFromElement(child, items)); } } } return cleaning; }
public static Cleaning buildCleaning(String name, Date scheduled) { Cleaning cleaning = new Cleaning(); cleaning.name = name; cleaning.planedDate = scheduled; cleaning.items = new ArrayList<>(); return cleaning; }