Bug 1443: Implemented Lazy deserialization using dynamic proxies
[mdsal.git] / code-generator / binding-data-codec / src / main / java / org / opendaylight / yangtools / binding / data / codec / impl / ContainerNodeCodecContext.java
index 2ad90d5b363953afa0e9474783418304d8fb8c12..8eb335230904de2c075189189ec7056ec32ac274 100644 (file)
@@ -7,22 +7,22 @@
  */
 package org.opendaylight.yangtools.binding.data.codec.impl;
 
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
+import com.google.common.base.Preconditions;
 
-class ContainerNodeCodecContext extends DataObjectCodecContext<ContainerSchemaNode> {
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
+import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 
-    private final YangInstanceIdentifier.PathArgument yangIdentifier;
+final class ContainerNodeCodecContext extends DataObjectCodecContext<ContainerSchemaNode> {
 
-    protected ContainerNodeCodecContext(final Class<?> cls, final ContainerSchemaNode nodeSchema,
-            final CodecContextFactory loader) {
-        super(cls, nodeSchema.getQName().getModule(), nodeSchema, loader);
-        this.yangIdentifier = (new YangInstanceIdentifier.NodeIdentifier(nodeSchema.getQName()));
+    ContainerNodeCodecContext(final DataContainerCodecPrototype<ContainerSchemaNode> prototype) {
+        super(prototype);
     }
 
     @Override
-    protected YangInstanceIdentifier.PathArgument getDomPathArgument() {
-        return yangIdentifier;
+    protected Object dataFromNormalizedNode(final NormalizedNode<?, ?> data) {
+        Preconditions.checkState(data instanceof ContainerNode);
+        return LazyDataObject.create(this, (ContainerNode) data);
     }
 
 }
\ No newline at end of file