1 package org
.asamk
.signal
;
3 import com
.fasterxml
.jackson
.annotation
.JsonAutoDetect
;
4 import com
.fasterxml
.jackson
.annotation
.PropertyAccessor
;
5 import com
.fasterxml
.jackson
.core
.JsonGenerator
;
6 import com
.fasterxml
.jackson
.core
.JsonProcessingException
;
7 import com
.fasterxml
.jackson
.databind
.ObjectMapper
;
9 import java
.io
.IOException
;
10 import java
.io
.OutputStream
;
11 import java
.io
.OutputStreamWriter
;
12 import java
.nio
.charset
.StandardCharsets
;
14 public class JsonWriter
{
16 private final OutputStreamWriter writer
;
17 private final ObjectMapper objectMapper
;
19 public JsonWriter(final OutputStream writer
) {
20 this.writer
= new OutputStreamWriter(writer
, StandardCharsets
.UTF_8
);
22 objectMapper
= new ObjectMapper();
23 objectMapper
.setVisibility(PropertyAccessor
.ALL
, JsonAutoDetect
.Visibility
.PUBLIC_ONLY
);
24 objectMapper
.disable(JsonGenerator
.Feature
.AUTO_CLOSE_TARGET
);
27 public void write(final Object object
) throws IOException
{
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());