protected Relation parseRelation() throws XMLStreamException { RelationData rd = new RelationData(); readCommon(rd); Relation r = new Relation(rd.getId(), rd.getVersion()); r.setVisible(rd.isVisible()); r.load(rd); externalIdMap.put(rd.getPrimitiveId(), r); Collection<RelationMemberData> members = new ArrayList<RelationMemberData>(); while (true) { int event = parser.next(); if (event == XMLStreamConstants.START_ELEMENT) { if (parser.getLocalName().equals("member")) { members.add(parseRelationMember(r)); } else if (parser.getLocalName().equals("tag")) { parseTag(r); } else { parseUnknown(); } } else if (event == XMLStreamConstants.END_ELEMENT) { break; } } if (r.isDeleted() && members.size() > 0) { System.out.println(tr("Deleted relation {0} contains members", r.getUniqueId())); members = new ArrayList<RelationMemberData>(); } relations.put(rd.getUniqueId(), members); return r; }