From: Robert Varga Date: Tue, 9 Jun 2020 11:50:15 +0000 (+0200) Subject: Split out addCompositeChild(CaseSchemaNode) X-Git-Tag: v5.0.3~3 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=f158b68090d09f72180c9ec5f27096fd228f3f12;p=yangtools.git Split out addCompositeChild(CaseSchemaNode) Choices seem to have this special case, which we should be able to wire without an explicit cast in most cases. Change-Id: I5a398957190ccec49b2a9072638f489bbdabd984 Signed-off-by: Robert Varga --- diff --git a/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ChoiceNodeDataWithSchema.java b/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ChoiceNodeDataWithSchema.java index 47e9081227..bd89e1d45c 100644 --- a/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ChoiceNodeDataWithSchema.java +++ b/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ChoiceNodeDataWithSchema.java @@ -7,6 +7,8 @@ */ package org.opendaylight.yangtools.yang.data.util; +import static com.google.common.base.Verify.verify; + import java.io.IOException; import org.opendaylight.yangtools.rfc7952.data.api.StreamWriterMetadataExtension; import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter; @@ -17,22 +19,28 @@ import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; /** * childs - empty augment - only one element can be. */ -class ChoiceNodeDataWithSchema extends CompositeNodeDataWithSchema { +final class ChoiceNodeDataWithSchema extends CompositeNodeDataWithSchema { private CaseNodeDataWithSchema caseNodeDataWithSchema; ChoiceNodeDataWithSchema(final ChoiceSchemaNode schema) { super(schema); } + // FIXME: 6.0.0: this should be impossible to hit @Override - protected CaseNodeDataWithSchema addCompositeChild(final DataSchemaNode schema) { - CaseNodeDataWithSchema newChild = new CaseNodeDataWithSchema((CaseSchemaNode) schema); + CaseNodeDataWithSchema addCompositeChild(final DataSchemaNode schema) { + verify(schema instanceof CaseSchemaNode, "Unexpected schema %s", schema); + return addCompositeChild((CaseSchemaNode) schema); + } + + CaseNodeDataWithSchema addCompositeChild(final CaseSchemaNode schema) { + CaseNodeDataWithSchema newChild = new CaseNodeDataWithSchema(schema); caseNodeDataWithSchema = newChild; addCompositeChild(newChild); return newChild; } - public CaseNodeDataWithSchema getCase() { + CaseNodeDataWithSchema getCase() { return caseNodeDataWithSchema; }