// This software is released into the Public Domain. See copying.txt for details. package org.openstreetmap.osmosis.xml.v0_6.impl; import java.util.Map.Entry; import org.openstreetmap.osmosis.core.domain.v0_6.Entity; import org.openstreetmap.osmosis.core.domain.v0_6.OsmUser; import org.openstreetmap.osmosis.xml.common.ElementWriter; /** * Provides common functionality for all classes writing OSM entities to xml. * * @author Brett Henderson */ public class EntityWriter extends ElementWriter { /** * Creates a new instance. * * @param elementName * The name of the element to be written. * @param indentionLevel * The indent level of the element. */ protected EntityWriter(String elementName, int indentionLevel) { super(elementName, indentionLevel); } /** * Add common entity attributes. * * @param entity * The entity being written. */ protected void addCommonAttributes(Entity entity) { addAttribute("id", Long.toString(entity.getId())); addAttribute("version", Integer.toString(entity.getVersion())); addAttribute("timestamp", entity.getFormattedTimestamp(getTimestampFormat())); OsmUser user = entity.getUser(); if (!user.equals(OsmUser.NONE)) { addAttribute("uid", Integer.toString(user.getId())); addAttribute("user", user.getName()); } if (entity.getChangesetId() != 0) { addAttribute("changeset", Long.toString(entity.getChangesetId())); } } /** * Add metatag attributes. * * @param entity * The entity being written. */ protected void addMetatags(Entity entity) { for (Entry<String, Object> metaTag : entity.getMetaTags().entrySet()) { addAttribute(metaTag.getKey(), metaTag.getValue().toString()); } } }