Split out CaseNodeCodecContext.Prototype
[mdsal.git] / binding / mdsal-binding-dom-codec / src / main / java / org / opendaylight / mdsal / binding / dom / codec / impl / CaseNodeCodecContext.java
index 0352a82676e869c7ca1eef8f4ac75e7f9348fbeb..69c94c6a93f07c14bf7356a07da27cb973a6e146 100644 (file)
@@ -14,11 +14,23 @@ import org.opendaylight.mdsal.binding.runtime.api.CaseRuntimeType;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 
 final class CaseNodeCodecContext<D extends DataObject> extends DataObjectCodecContext<D, CaseRuntimeType> {
-    CaseNodeCodecContext(final DataContainerCodecPrototype<CaseRuntimeType> prototype) {
+    static final class Prototype extends DataObjectCodecPrototype<CaseRuntimeType> {
+        Prototype(final Class<?> cls, final CaseRuntimeType type, final CodecContextFactory factory) {
+            super(cls, NodeIdentifier.create(type.statement().argument()), type, factory);
+        }
+
+        @Override
+        DataContainerCodecContext<?, CaseRuntimeType> createInstance() {
+            return new CaseNodeCodecContext<>(this);
+        }
+    }
+
+    private CaseNodeCodecContext(final Prototype prototype) {
         super(prototype, CodecItemFactory.of(prototype.getBindingClass()));
     }