import com.google.common.base.Preconditions;
import java.util.List;
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.ChoiceCaseNode;
+import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
-final class CaseNodeCodecContext<D extends DataObject> extends DataObjectCodecContext<D,ChoiceCaseNode> {
- public CaseNodeCodecContext(final DataContainerCodecPrototype<ChoiceCaseNode> prototype) {
+final class CaseNodeCodecContext<D extends DataObject> extends DataObjectCodecContext<D, CaseSchemaNode> {
+ CaseNodeCodecContext(final DataContainerCodecPrototype<CaseSchemaNode> prototype) {
super(prototype);
}
+ @Override
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ Item<?> createBindingArg(final Class<?> childClass, final DataSchemaNode childSchema) {
+ return childSchema.isAddedByUses() ? Item.of((Class)getBindingClass(), (Class)childClass)
+ : Item.of((Class<? extends DataObject>) childClass);
+ }
+
@Override
protected void addYangPathArgument(final PathArgument arg,
final List<YangInstanceIdentifier.PathArgument> builder) {
}
@Override
- public YangInstanceIdentifier.PathArgument serializePathArgument(
- final PathArgument arg) {
+ public YangInstanceIdentifier.PathArgument serializePathArgument(final PathArgument arg) {
Preconditions.checkArgument(arg == null);
return null;
}
Preconditions.checkArgument(arg == null);
return null;
}
-}
\ No newline at end of file
+}