From b5f83aca674b8d42cce8f2ef8603ec508d6911d5 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 3 May 2022 23:02:32 +0200 Subject: [PATCH] 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 --- .../opendaylight/yangtools/yang/data/api/schema/LeafNode.java | 2 +- .../yangtools/yang/data/api/schema/LeafSetEntryNode.java | 2 +- .../opendaylight/yangtools/yang/data/api/schema/ValueNode.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) 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} * -- 2.36.6