]> nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/storage/Utils.java
e542f4e33e949df98900bb30b7f1a7bb25bdc978
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / storage / Utils.java
1 package org.asamk.signal.manager.storage;
2
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.JsonParser;
7 import com.fasterxml.jackson.databind.DeserializationFeature;
8 import com.fasterxml.jackson.databind.JsonNode;
9 import com.fasterxml.jackson.databind.ObjectMapper;
10 import com.fasterxml.jackson.databind.SerializationFeature;
11
12 import java.io.InvalidObjectException;
13
14 public class Utils {
15
16 private Utils() {
17 }
18
19 public static ObjectMapper createStorageObjectMapper() {
20 final ObjectMapper objectMapper = new ObjectMapper();
21
22 objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.PUBLIC_ONLY);
23 objectMapper.enable(SerializationFeature.INDENT_OUTPUT); // for pretty print
24 objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
25 objectMapper.disable(JsonParser.Feature.AUTO_CLOSE_SOURCE);
26 objectMapper.disable(JsonGenerator.Feature.AUTO_CLOSE_TARGET);
27
28 return objectMapper;
29 }
30
31 public static JsonNode getNotNullNode(JsonNode parent, String name) throws InvalidObjectException {
32 var node = parent.get(name);
33 if (node == null || node.isNull()) {
34 throw new InvalidObjectException(String.format("Incorrect file format: expected parameter %s not found ",
35 name));
36 }
37
38 return node;
39 }
40 }