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%2FBindingCodecContext.java;h=9842c0f0dde47c106fe2939cb7e6f9e0cff797ac;hb=578068bf0c41c9902638695d3b48ccc0e06d4c9c;hp=b8949e4dc85a0008307a472c0487b07e4291fa8c;hpb=2a1eb5ac8c50bafffc73fa656a5125bfb85871dc;p=mdsal.git diff --git a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BindingCodecContext.java b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BindingCodecContext.java index b8949e4dc8..9842c0f0dd 100644 --- a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BindingCodecContext.java +++ b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BindingCodecContext.java @@ -58,6 +58,7 @@ import org.opendaylight.yangtools.concepts.Delegator; import org.opendaylight.yangtools.concepts.Immutable; import org.opendaylight.yangtools.util.ClassLoaderUtils; import org.opendaylight.yangtools.yang.binding.Action; +import org.opendaylight.yangtools.yang.binding.Augmentation; import org.opendaylight.yangtools.yang.binding.BaseIdentity; import org.opendaylight.yangtools.yang.binding.BaseNotification; import org.opendaylight.yangtools.yang.binding.DataContainer; @@ -208,7 +209,7 @@ public final class BindingCodecContext extends AbstractBindingNormalizedNodeSeri final InstanceIdentifier path, final NormalizedNodeStreamWriter domWriter) { final var yangArgs = new ArrayList(); final var codecContext = getCodecContextNode(path, yangArgs); - return Map.entry(YangInstanceIdentifier.create(yangArgs), + return Map.entry(YangInstanceIdentifier.of(yangArgs), new BindingToNormalizedStreamWriter(codecContext, domWriter)); } @@ -508,6 +509,28 @@ public final class BindingCodecContext extends AbstractBindingNormalizedNodeSeri return root.streamChild(childClass); } + @Override + @SuppressWarnings("unchecked") + public > BindingAugmentationCodecTreeNode getAugmentationCodec( + final InstanceIdentifier path) { + final var codecContext = getCodecContextNode(path, null); + if (codecContext instanceof BindingAugmentationCodecTreeNode) { + return (BindingAugmentationCodecTreeNode) codecContext; + } + throw new IllegalArgumentException(path + " does not refer to an Augmentation"); + } + + @Override + @SuppressWarnings("unchecked") + public BindingDataObjectCodecTreeNode getDataObjectCodec( + final InstanceIdentifier path) { + final var codecContext = getCodecContextNode(path, null); + if (codecContext instanceof BindingDataObjectCodecTreeNode) { + return (BindingDataObjectCodecTreeNode) codecContext; + } + throw new IllegalArgumentException(path + " does not refer to a plain DataObject"); + } + @Override @SuppressWarnings("unchecked") public CodecWithPath getSubtreeCodecWithPath(final InstanceIdentifier path) { @@ -516,7 +539,7 @@ public final class BindingCodecContext extends AbstractBindingNormalizedNodeSeri // TODO Do we need defensive check here? return new CodecWithPath<>((CommonDataObjectCodecTreeNode) codecContext, - YangInstanceIdentifier.create(yangArgs)); + YangInstanceIdentifier.of(yangArgs)); } @Override @@ -551,7 +574,7 @@ public final class BindingCodecContext extends AbstractBindingNormalizedNodeSeri // We create Binding Stream Writer which translates from Binding to Normalized Nodes final var yangArgs = new ArrayList(); final var codecContext = getCodecContextNode(path, yangArgs); - final var yangPath = YangInstanceIdentifier.create(yangArgs); + final var yangPath = YangInstanceIdentifier.of(yangArgs); // We create DOM stream writer which produces normalized nodes final var result = new NormalizationResultHolder();