@Override public void serialize(FrameId value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { jgen.writeNumber(value.getId()); } }
@Override public FrameId deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { Long id=jp.readValueAs(Long.class); return FrameId.valueOf(id.longValue()); } }
@Override public FrameId deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { Number number = jp.getNumberValue(); return new FrameId(number.longValue()); } }
abstract Frame makeFrame(FrameId id, String path, long startMS, long endMS, List<Frame> children);
@Override public void serialize(FrameId value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { jgen.writeNumber(value.getId()); } }
public static Frame makeFrameTree(AtomicLong frameId, String path, long startMillis, long durationMillis, int depth, int childrenPerFrame, TestFrameCreator creator) { long childDuration = (durationMillis / childrenPerFrame) - 1; if (depth > 0 && childDuration > 0L && childrenPerFrame > 0) { List<Frame> children = new LinkedList<Frame>(); for (int i = 0; i < childrenPerFrame; i++) { Frame child = makeFrameTree(frameId, path, startMillis + (i * childDuration), childDuration, depth - 1, childrenPerFrame, creator); children.add(child); } return creator.makeFrame(FrameId.valueOf(frameId.incrementAndGet()), path, startMillis, startMillis + durationMillis, children); } else { return creator.makeFrame(FrameId.valueOf(frameId.incrementAndGet()), path, startMillis, startMillis + ((durationMillis > 0) ? durationMillis : 1), Collections.<Frame>emptyList()); } } }
FrameId frameId = FrameId.valueOf(builder.getFrameCount()+1);