19package org.sleuthkit.autopsy.integrationtesting.config;
21import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
22import com.fasterxml.jackson.core.JsonParser;
23import com.fasterxml.jackson.core.JsonProcessingException;
24import com.fasterxml.jackson.databind.DeserializationContext;
25import com.fasterxml.jackson.databind.JsonNode;
26import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
27import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
28import com.fasterxml.jackson.databind.node.ArrayNode;
29import com.fasterxml.jackson.databind.node.ObjectNode;
30import com.fasterxml.jackson.databind.node.TextNode;
31import com.fasterxml.jackson.databind.node.ValueNode;
32import java.io.IOException;
33import java.util.ArrayList;
34import java.util.Collections;
35import java.util.Iterator;
36import java.util.LinkedHashMap;
43@JsonIgnoreProperties(ignoreUnknown =
true)
76 JsonNode node = jp.getCodec().readTree(jp);
81 }
else if (node instanceof TextNode) {
86 JsonNode resourceNode = node.get(
"resource");
87 String
resource = (resourceNode !=
null) ? resourceNode.asText() :
null;
90 JsonNode parametersNode = node.get(
"parameters");
91 if (parametersNode !=
null && parametersNode.isObject()) {
92 parameters = readMap((ObjectNode) parametersNode);
105 Map<String, Object> readMap(ObjectNode node) {
106 Map<String, Object> jsonObject =
new LinkedHashMap<>();
107 Iterator<Map.Entry<String, JsonNode>> keyValIter = node.fields();
108 while (keyValIter.hasNext()) {
109 Map.Entry<String, JsonNode> keyVal = keyValIter.next();
110 jsonObject.put(keyVal.getKey(), readItem(keyVal.getValue()));
121 List<Object> readList(ArrayNode node) {
122 List<Object> objArr =
new ArrayList<>();
123 for (JsonNode childNode : node) {
124 objArr.add(readItem(childNode));
136 Object readJsonPrimitive(ValueNode vNode) {
137 if (vNode.isTextual()) {
138 return vNode.asText();
139 }
else if (vNode.isBoolean()) {
140 return vNode.asBoolean();
141 }
else if (vNode.isLong()) {
142 return vNode.asLong();
143 }
else if (vNode.isInt()) {
144 return vNode.asInt();
145 }
else if (vNode.isDouble()) {
146 return vNode.asDouble();
158 Object readItem(JsonNode node) {
163 if (node.isObject()) {
164 return readMap((ObjectNode) node);
165 }
else if (node.isArray()) {
166 return readList((ArrayNode) node);
167 }
else if (node.isValueNode()) {
168 return readJsonPrimitive((ValueNode) node);
ParameterizedResourceConfig deserialize(JsonParser jp, DeserializationContext ctxt)
ParameterizedResourceConfigDeserializer(Class<?> vc)
static final long serialVersionUID
ParameterizedResourceConfigDeserializer()
Map< String, Object > getParameters()
ParameterizedResourceConfig(String resource)
final Map< String, Object > parameters
ParameterizedResourceConfig(String resource, Map< String, Object > parameters)