+ /**
+ * Serializes supplied data using stream writer with child cache enabled.
+ *
+ * @param cacheHolder Binding to Normalized Node Cache holder
+ * @param subtreeRoot Codec Node for provided data object
+ * @param data Data to be serialized
+ * @return Normalized Node representation of data.
+ */
+ static NormalizedNode serializeUsingStreamWriter(final AbstractBindingNormalizedNodeCacheHolder cacheHolder,
+ final DataContainerCodecContext<?, ?> subtreeRoot, final DataObject data) {
+ final var writer = new CachingNormalizedNodeSerializer(cacheHolder, subtreeRoot);
+ try {
+ subtreeRoot.eventStreamSerializer().serialize(data, writer);
+ } catch (final IOException e) {
+ throw new IllegalStateException(e);
+ }
+ return writer.domResult.getResult();
+ }
+