// License: GPL. For details, see LICENSE file. package org.openstreetmap.hot.sds; import java.io.PrintWriter; import java.util.Map; import java.util.Map.Entry; import org.openstreetmap.josm.data.osm.IPrimitive; import org.openstreetmap.josm.io.XmlWriter; /** * Save the dataset into a stream as osm intern xml format. This is not using any * xml library for storing. * @author imi */ public class SdsWriter extends XmlWriter { protected SdsWriter(PrintWriter out) { super(out); } public void header() { out.println("<?xml version='1.0' encoding='UTF-8'?>"); out.print("<osm_sds>"); } public void footer() { out.println("</osm_sds>"); } public void write(IPrimitive what, Map<String, String> tags) { out.print("<osm_shadow osm_type=\""); out.print(what.getType().getAPIName()); out.print("\" osm_id=\""); out.print(what.getId()); out.println("\">"); if (tags != null) { for (Entry<String, String> e : tags.entrySet()) { out.println(" <tag k='"+ XmlWriter.encode(e.getKey()) + "' v='"+XmlWriter.encode(e.getValue())+ "' />"); } } out.println("</osm_shadow>"); } @Override public void close() { out.close(); } @Override public void flush() { out.flush(); } }