public static void saveLabeledDumps(final File file, final Map<String, SampleNode> collected) throws IOException {
try (BufferedOutputStream bos = new BufferedOutputStream(
Files.newOutputStream(file.toPath()))) {
final SpecificDatumWriter<StackSampleElement> writer = new SpecificDatumWriter<>(StackSampleElement.SCHEMA$);
final BinaryEncoder encoder = EncoderFactory.get().directBinaryEncoder(bos, null);
encoder.writeMapStart();
encoder.setItemCount(collected.size());
for (Map.Entry<String, SampleNode> entry : collected.entrySet()) {
encoder.startItem();
encoder.writeString(entry.getKey());
encoder.writeArrayStart();
Converter.convert(Methods.ROOT, entry.getValue(),
-1, 0, (final StackSampleElement object, final long deadline) -> {
encoder.setItemCount(1L);
encoder.startItem();
writer.write(object, encoder);
});
encoder.writeArrayEnd();
}
encoder.writeMapEnd();
encoder.flush();
}
}