Split BindingNormalizedNodeCache
[mdsal.git] / binding / mdsal-binding-dom-codec / src / main / java / org / opendaylight / mdsal / binding / dom / codec / impl / CachingNormalizedNodeCodec.java
index c8504d778fc5c2c4b16f65822fe61cfc3262eeeb..30e4a458df0b0a44e2f6980d214095047ae73a18 100644 (file)
@@ -16,7 +16,6 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 
 class CachingNormalizedNodeCodec<D extends DataObject> extends AbstractBindingNormalizedNodeCacheHolder implements
         BindingNormalizedNodeCachingCodec<D> {
-
     private final DataContainerCodecContext<D, ?> context;
 
     CachingNormalizedNodeCodec(final DataContainerCodecContext<D, ?> subtreeRoot,
@@ -32,12 +31,14 @@ class CachingNormalizedNodeCodec<D extends DataObject> extends AbstractBindingNo
 
     @Override
     public NormalizedNode<?, ?> serialize(final D data) {
-        return CachingNormalizedNodeSerializer.serialize(this, context, data);
+        // Serialize data using stream writer with child cache enable or using the cache if it is available
+        final DataObjectNormalizedNodeCache cache = getCachingSerializer(context);
+        return cache == null ? CachingNormalizedNodeSerializer.serializeUsingStreamWriter(this, context, data)
+                : cache.get(data);
     }
 
     @Override
     public void close() {
         // NOOP as of now.
     }
-
 }