From: Robert Varga Date: Mon, 5 Jun 2023 08:05:39 +0000 (+0200) Subject: Rename CaseNodeCodecContext.Prototype X-Git-Tag: v12.0.0~85 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=ad99e9b3d3e65d7cf374a194f7267167afba0716;p=mdsal.git Rename CaseNodeCodecContext.Prototype Split this class out into CaseCodecPrototype top-level class. Change-Id: I9b94a07f5b78bdec684d17ed0831e67a06cf0c0e Signed-off-by: Robert Varga --- diff --git a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/CaseCodecPrototype.java b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/CaseCodecPrototype.java new file mode 100644 index 0000000000..6759c00b52 --- /dev/null +++ b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/CaseCodecPrototype.java @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2023 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.mdsal.binding.dom.codec.impl; + +import org.opendaylight.mdsal.binding.dom.codec.impl.NodeCodecContext.CodecContextFactory; +import org.opendaylight.mdsal.binding.runtime.api.CaseRuntimeType; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; + +final class CaseCodecPrototype extends DataObjectCodecPrototype { + CaseCodecPrototype(final Class cls, final CaseRuntimeType type, final CodecContextFactory factory) { + super(cls, NodeIdentifier.create(type.statement().argument()), type, factory); + } + + @Override + DataContainerCodecContext createInstance() { + return new CaseNodeCodecContext<>(this); + } +} \ No newline at end of file diff --git a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/CaseNodeCodecContext.java b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/CaseNodeCodecContext.java index 69c94c6a93..6d15c20770 100644 --- a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/CaseNodeCodecContext.java +++ b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/CaseNodeCodecContext.java @@ -14,23 +14,11 @@ 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 extends DataObjectCodecContext { - static final class Prototype extends DataObjectCodecPrototype { - Prototype(final Class cls, final CaseRuntimeType type, final CodecContextFactory factory) { - super(cls, NodeIdentifier.create(type.statement().argument()), type, factory); - } - - @Override - DataContainerCodecContext createInstance() { - return new CaseNodeCodecContext<>(this); - } - } - - private CaseNodeCodecContext(final Prototype prototype) { + CaseNodeCodecContext(final CaseCodecPrototype prototype) { super(prototype, CodecItemFactory.of(prototype.getBindingClass())); } diff --git a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/ChoiceNodeCodecContext.java b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/ChoiceNodeCodecContext.java index 90038cac5c..ceeefcaea2 100644 --- a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/ChoiceNodeCodecContext.java +++ b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/ChoiceNodeCodecContext.java @@ -117,20 +117,19 @@ final class ChoiceNodeCodecContext extends DataContainerCo final var factory = prototype.getFactory(); final var localCases = new HashSet(); for (var caseType : choiceType.validCaseChildren()) { - final var caseProto = new CaseNodeCodecContext.Prototype(loadCase(factory.getRuntimeContext(), caseType), - caseType, factory); + @SuppressWarnings("unchecked") + final var caseClass = (Class) loadCase(factory.getRuntimeContext(), caseType); + final var caseProto = new CaseCodecPrototype(caseClass, caseType, factory); localCases.add(caseType.getIdentifier()); - byClassBuilder.put(caseProto.getBindingClass(), caseProto); + byClassBuilder.put(caseClass, caseProto); // Updates collection of case children - @SuppressWarnings("unchecked") - final var cazeCls = (Class) caseProto.getBindingClass(); - for (var cazeChild : getChildrenClasses(cazeCls)) { + for (var cazeChild : getChildrenClasses(caseClass)) { childToCase.put(cazeChild, caseProto); } // Updates collection of YANG instance identifier to case - for (var stmt : caseProto.getType().statement().effectiveSubstatements()) { + for (var stmt : caseType.statement().effectiveSubstatements()) { if (stmt instanceof DataSchemaNode cazeChild) { byYangCaseChildBuilder.put(NodeIdentifier.create(cazeChild.getQName()), caseProto); }