X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=binding%2Fmdsal-binding-dom-codec%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fbinding%2Fdom%2Fcodec%2Fimpl%2FAugmentationCodecContext.java;h=2006df5a5cb2aed0a44502d34781d9f63bc000d5;hb=e08dd87ee68e558e34b8016824c322e94ee048c0;hp=484e192f98bc32460ad3ce8d53dd7dc1db087672;hpb=2b732eb188c6b34a91488308318a590a14cf2c07;p=mdsal.git diff --git a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/AugmentationCodecContext.java b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/AugmentationCodecContext.java index 484e192f98..2006df5a5c 100644 --- a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/AugmentationCodecContext.java +++ b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/AugmentationCodecContext.java @@ -17,23 +17,22 @@ import java.util.Map; import org.opendaylight.mdsal.binding.dom.codec.api.BindingAugmentationCodecTreeNode; import org.opendaylight.mdsal.binding.runtime.api.AugmentRuntimeType; import org.opendaylight.yangtools.yang.binding.Augmentation; -import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.DataObjectStep; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -final class AugmentationCodecContext> - extends AbstractDataObjectCodecContext implements BindingAugmentationCodecTreeNode { +final class AugmentationCodecContext> + extends AbstractDataObjectCodecContext implements BindingAugmentationCodecTreeNode { private static final MethodType CONSTRUCTOR_TYPE = MethodType.methodType(void.class, AbstractDataObjectCodecContext.class, DataContainerNode.class); - private static final MethodType DATAOBJECT_TYPE = MethodType.methodType(DataObject.class, + private static final MethodType AUGMENTATION_TYPE = MethodType.methodType(Augmentation.class, AugmentationCodecContext.class, DataContainerNode.class); private final MethodHandle proxyConstructor; - private AugmentationCodecContext(final AugmentationCodecPrototype prototype, + private AugmentationCodecContext(final AugmentationCodecPrototype prototype, final DataContainerAnalysis analysis) { super(prototype, analysis); @@ -47,10 +46,10 @@ final class AugmentationCodecContext> throw new LinkageError("Failed to find contructor for class " + bindingClass, e); } - proxyConstructor = ctor.asType(DATAOBJECT_TYPE); + proxyConstructor = ctor.asType(AUGMENTATION_TYPE); } - AugmentationCodecContext(final AugmentationCodecPrototype prototype) { + AugmentationCodecContext(final AugmentationCodecPrototype prototype) { this(prototype, new DataContainerAnalysis<>(prototype, CodecItemFactory.of())); } @@ -72,11 +71,11 @@ final class AugmentationCodecContext> @SuppressWarnings("checkstyle:illegalCatch") @Override - public D filterFrom(final DataContainerNode parentData) { + public A filterFrom(final DataContainerNode parentData) { for (var childArg : ((AugmentationCodecPrototype) prototype()).getChildArgs()) { if (parentData.childByArg(childArg) != null) { try { - return (D) proxyConstructor.invokeExact(this, parentData); + return (A) proxyConstructor.invokeExact(this, parentData); } catch (final Throwable e) { Throwables.throwIfUnchecked(e); throw new IllegalStateException(e);