/** * Writes the way. * * @param way The way to be processed. */ public void process(Way way) { OsmUser user; List<WayNode> wayNodes; Collection<Tag> tags; user = way.getUser(); startObject(first); addAttribute("id", way.getId(), true); addAttribute("version", way.getVersion(), false); addAttribute("timestamp", way.getFormattedTimestamp(getTimestampFormat()), false); if (!user.equals(OsmUser.NONE)) { addAttribute("uid", user.getId(), false); addAttribute("user", user.getName(), false); } if (way.getChangesetId() != 0) { addAttribute("changeset", way.getChangesetId(), false); } wayNodes = way.getWayNodes(); tags = way.getTags(); if (wayNodes.size() > 0 || tags.size() > 0) { objectKey("nodes", false); startList(); for (WayNode wayNode : wayNodes) { wayNodeWriter.processWayNode(wayNode); } wayNodeWriter.reset(); endList(); objectKey("tags", false); startObject(true); for (Tag tag : tags) { tagWriter.process(tag); } tagWriter.reset(); endObject(); } endObject(); if (first) { first = false; } }