X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=binding%2Fmdsal-binding-dom-codec%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fbinding%2Fdom%2Fcodec%2Fimpl%2FCachingNormalizedNodeCodec.java;h=6f2e3a60ba8bebf8a685c2b70e40bdb3ede6f535;hb=0ee55d1f9da11dd03ff05fc67d10cbcbfe63fd2c;hp=c8504d778fc5c2c4b16f65822fe61cfc3262eeeb;hpb=4b44410cd93cc764303175c733ebe08d1deefd6a;p=mdsal.git diff --git a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/CachingNormalizedNodeCodec.java b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/CachingNormalizedNodeCodec.java index c8504d778f..6f2e3a60ba 100644 --- a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/CachingNormalizedNodeCodec.java +++ b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/CachingNormalizedNodeCodec.java @@ -11,33 +11,35 @@ import static java.util.Objects.requireNonNull; import com.google.common.collect.ImmutableSet; import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeCachingCodec; +import org.opendaylight.yangtools.yang.binding.BindingObject; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; class CachingNormalizedNodeCodec extends AbstractBindingNormalizedNodeCacheHolder implements BindingNormalizedNodeCachingCodec { - private final DataContainerCodecContext context; CachingNormalizedNodeCodec(final DataContainerCodecContext subtreeRoot, - final ImmutableSet> cacheSpec) { + final ImmutableSet> cacheSpec) { super(cacheSpec); this.context = requireNonNull(subtreeRoot); } @Override - public D deserialize(final NormalizedNode data) { + public D deserialize(final NormalizedNode data) { return context.deserialize(data); } @Override - public NormalizedNode serialize(final D data) { - return CachingNormalizedNodeSerializer.serialize(this, context, data); + public NormalizedNode serialize(final D data) { + // Serialize data using stream writer with child cache enable or using the cache if it is available + final AbstractBindingNormalizedNodeCache cache = getCachingSerializer(context); + return cache == null ? CachingNormalizedNodeSerializer.serializeUsingStreamWriter(this, context, data) + : cache.get(data); } @Override public void close() { // NOOP as of now. } - }