package com.revolsys.record.io.format.kml;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Map;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import com.revolsys.io.AbstractMapWriter;
import com.revolsys.io.FileUtil;
public class KmzMapWriter extends AbstractMapWriter {
private KmlMapWriter kmlWriter;
private final ZipOutputStream zipOut;
public KmzMapWriter(final OutputStream out) {
try {
this.zipOut = new ZipOutputStream(out);
final ZipEntry entry = new ZipEntry("doc.kml");
this.zipOut.putNextEntry(entry);
final java.io.Writer writer = FileUtil.newUtf8Writer(this.zipOut);
this.kmlWriter = new KmlMapWriter(writer);
} catch (final Throwable e) {
throw new RuntimeException("Unable to create KMZ file ", e);
}
}
@Override
public void close() {
try {
this.kmlWriter.close();
this.zipOut.close();
} catch (final IOException e) {
}
}
@Override
public void flush() {
try {
this.kmlWriter.flush();
this.zipOut.flush();
} catch (final IOException e) {
throw new RuntimeException("Unable to flush: ", e);
}
}
@Override
public void setProperty(final String name, final Object value) {
this.kmlWriter.setProperty(name, value);
}
@Override
public void write(final Map<String, ? extends Object> values) {
this.kmlWriter.write(values);
}
}