Rework BindingRuntimeTypes
[mdsal.git] / binding / mdsal-binding-dom-codec / src / main / java / org / opendaylight / mdsal / binding / dom / codec / impl / CaseNodeCodecContext.java
index 4dda319a073a7d8bbb553e664aeed24935e5b384..413be40bb45374b6911d1995284440b926c86070 100644 (file)
@@ -11,26 +11,28 @@ import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkState;
 
 import java.util.List;
+import org.opendaylight.mdsal.binding.runtime.api.CaseRuntimeType;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.Item;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.AddedByUsesAware;
+import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 
-final class CaseNodeCodecContext<D extends DataObject> extends DataObjectCodecContext<D, CaseSchemaNode> {
-    CaseNodeCodecContext(final DataContainerCodecPrototype<CaseSchemaNode> prototype) {
+final class CaseNodeCodecContext<D extends DataObject> extends DataObjectCodecContext<D, CaseRuntimeType> {
+    CaseNodeCodecContext(final DataContainerCodecPrototype<CaseRuntimeType> prototype) {
         super(prototype);
     }
 
     @Override
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    Item<?> createBindingArg(final Class<?> childClass, final DataSchemaNode childSchema) {
+    Item<?> createBindingArg(final Class<?> childClass, final EffectiveStatement<?, ?> childSchema) {
         // FIXME: MDSAL-697: see overridden method for further guidance
-        return childSchema.isAddedByUses() ? Item.of((Class)getBindingClass(), (Class)childClass)
-            : super.createBindingArg(childClass, childSchema);
+        return childSchema instanceof AddedByUsesAware && ((AddedByUsesAware) childSchema).isAddedByUses()
+            ? Item.of((Class)getBindingClass(), (Class)childClass)
+                : super.createBindingArg(childClass, childSchema);
     }
 
     @Override