protected Way parseWay() throws XMLStreamException { WayData wd = new WayData(); readCommon(wd); Way w = new Way(wd.getId(), wd.getVersion()); w.setVisible(wd.isVisible()); w.load(wd); externalIdMap.put(wd.getPrimitiveId(), w); Collection<Long> nodeIds = new ArrayList<Long>(); while (true) { int event = parser.next(); if (event == XMLStreamConstants.START_ELEMENT) { if (parser.getLocalName().equals("nd")) { nodeIds.add(parseWayNode(w)); } else if (parser.getLocalName().equals("tag")) { parseTag(w); } else { parseUnknown(); } } else if (event == XMLStreamConstants.END_ELEMENT) { break; } } if (w.isDeleted() && nodeIds.size() > 0) { System.out.println(tr("Deleted way {0} contains nodes", w.getUniqueId())); nodeIds = new ArrayList<Long>(); } ways.put(wd.getUniqueId(), nodeIds); return w; }