for (JsonNode traceNode : getField(rootNode, JsonTraceCodec.TRACES))
{
final int traceId = getIntField(traceNode, JsonTraceCodec.TRACE_ID);
final String name = getTextField(traceNode, JsonTraceCodec.TRACE_NAME);
final ResultType resultType = ResultType.valueOf(getTextField(traceNode, JsonTraceCodec.TRACE_RESULT_TYPE));
final ShallowTraceBuilder shallowBuilder = new ShallowTraceBuilder(name, resultType);
if (traceNode.get(JsonTraceCodec.TRACE_HIDDEN) != null)
shallowBuilder.setHidden(getBooleanField(traceNode, JsonTraceCodec.TRACE_HIDDEN));
if (traceNode.get(JsonTraceCodec.TRACE_SYSTEM_HIDDEN) != null)
shallowBuilder.setSystemHidden(getBooleanField(traceNode, JsonTraceCodec.TRACE_SYSTEM_HIDDEN));
if (traceNode.get(JsonTraceCodec.TRACE_VALUE) != null)
shallowBuilder.setValue(getTextField(traceNode, JsonTraceCodec.TRACE_VALUE));
if (traceNode.get(JsonTraceCodec.TRACE_START_NANOS) != null)
shallowBuilder.setStartNanos(getLongField(traceNode, JsonTraceCodec.TRACE_START_NANOS));
if (traceNode.get(JsonTraceCodec.TRACE_PENDING_NANOS) != null)
shallowBuilder.setPendingNanos(getLongField(traceNode, JsonTraceCodec.TRACE_PENDING_NANOS));
if (traceNode.get(JsonTraceCodec.TRACE_END_NANOS) != null)
shallowBuilder.setEndNanos(getLongField(traceNode, JsonTraceCodec.TRACE_END_NANOS));
if(traceNode.get(JsonTraceCodec.TRACE_ATTRIBUTES) != null)
{
for(JsonNode node : getField(traceNode, JsonTraceCodec.TRACE_ATTRIBUTES))
{
String key = getTextField(node, JsonTraceCodec.TRACE_ATTRIBUTE_KEY);
String value = getTextField(node, JsonTraceCodec.TRACE_ATTRIBUTE_VALUE);
shallowBuilder.addAttribute(key, value);
}
}
builder.addTrace(traceId, shallowBuilder.build());
}
}