+ startLeaf(writer);
+ endLeaf(writer, readObject());
+ }
+
+ // Leaf inside a MapEntryNode, it can potentially be a key leaf, in which case we want to de-duplicate values.
+ private void streamLeaf(final NormalizedNodeStreamWriter writer, final NodeIdentifierWithPredicates entryId)
+ throws IOException {
+ final NodeIdentifier identifier = startLeaf(writer);
+ final Object value = readObject();
+ final Object entryValue = entryId.getValue(identifier.getNodeType());
+ endLeaf(writer, entryValue == null ? value : entryValue);
+ }
+
+ private NodeIdentifier startLeaf(final NormalizedNodeStreamWriter writer) throws IOException {