Exemple #1
0
  /**
   * 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;
    }
  }