package com.revolsys.record.io.format.json;
import java.io.IOException;
import java.io.Writer;
import java.util.Map;
import com.revolsys.io.AbstractMapWriter;
import com.revolsys.io.FileUtil;
import com.revolsys.util.Exceptions;
public class JsonListMapWriter extends AbstractMapWriter {
/** The writer */
private Writer out;
boolean written = false;
public JsonListMapWriter(final Writer out) {
this.out = out;
try {
this.out.write('[');
} catch (final IOException e) {
throw Exceptions.wrap(e);
}
}
/**
* Closes the underlying reader.
*/
@Override
public void close() {
if (this.out != null) {
try {
this.out.write("\n]\n");
} catch (final IOException e) {
} finally {
FileUtil.closeSilent(this.out);
this.out = null;
}
}
}
@Override
public void flush() {
try {
this.out.flush();
} catch (final IOException e) {
}
}
@Override
public void write(final Map<String, ? extends Object> values) {
try {
if (this.written) {
this.out.write(',');
} else {
this.written = true;
}
this.out.write('\n');
JsonWriterUtil.write(this.out, values, null, isWriteNulls());
} catch (final IOException e) {
throw Exceptions.wrap(e);
}
}
}