From: Robert Varga Date: Tue, 3 May 2022 21:02:32 +0000 (+0200) Subject: Seal ValueNode X-Git-Tag: v9.0.0~94 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=yangtools.git;a=commitdiff_plain;h=b5f83aca674b8d42cce8f2ef8603ec508d6911d5 Seal ValueNode ValueNode is a common trait for Leaf(SetEntry)Node. Make sure javac enforces this invariant. Change-Id: I04a2173a0f1bddeb3c27b292b416c5e1a8a163d6 Signed-off-by: Robert Varga --- diff --git a/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/LeafNode.java b/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/LeafNode.java index a7f5a9e400..e320e04584 100644 --- a/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/LeafNode.java +++ b/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/LeafNode.java @@ -18,7 +18,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent * * @param Value type */ -public interface LeafNode extends ValueNode, DataContainerChild { +public non-sealed interface LeafNode extends ValueNode, DataContainerChild { @Override @SuppressWarnings("rawtypes") default Class contract() { diff --git a/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/LeafSetEntryNode.java b/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/LeafSetEntryNode.java index d4db64bd4a..9c7df8a6c4 100644 --- a/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/LeafSetEntryNode.java +++ b/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/LeafSetEntryNode.java @@ -15,7 +15,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeWithV * * @param Value type */ -public interface LeafSetEntryNode extends ValueNode { +public non-sealed interface LeafSetEntryNode extends ValueNode { @Override @SuppressWarnings("rawtypes") default Class contract() { diff --git a/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/ValueNode.java b/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/ValueNode.java index 1decdc691c..c5b56858ba 100644 --- a/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/ValueNode.java +++ b/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/ValueNode.java @@ -12,7 +12,7 @@ package org.opendaylight.yangtools.yang.data.api.schema; * * @param Value of node, which needs to be a well-published simple value type. */ -public interface ValueNode extends NormalizedNode { +public sealed interface ValueNode extends NormalizedNode permits LeafNode, LeafSetEntryNode { /** * {@inheritDoc} *