1 package org
.asamk
.signal
;
3 import com
.fasterxml
.jackson
.core
.JsonProcessingException
;
4 import com
.fasterxml
.jackson
.databind
.ObjectMapper
;
6 import org
.asamk
.signal
.util
.Util
;
8 import java
.io
.BufferedWriter
;
9 import java
.io
.IOException
;
10 import java
.io
.OutputStream
;
11 import java
.io
.OutputStreamWriter
;
12 import java
.io
.Writer
;
13 import java
.nio
.charset
.StandardCharsets
;
15 public class JsonWriterImpl
implements JsonWriter
{
17 private final Writer writer
;
18 private final ObjectMapper objectMapper
;
20 public JsonWriterImpl(final OutputStream outputStream
) {
21 this.writer
= new BufferedWriter(new OutputStreamWriter(outputStream
, StandardCharsets
.UTF_8
));
23 objectMapper
= Util
.createJsonObjectMapper();
26 public synchronized void write(final Object object
) {
29 objectMapper
.writeValue(writer
, object
);
30 } catch (JsonProcessingException e
) {
31 // Some issue with json serialization, probably caused by a bug
32 throw new AssertionError(e
);
34 writer
.write(System
.lineSeparator());
36 } catch (IOException e
) {
37 throw new AssertionError(e
);