Seal ForeignDataNode 57/100957/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 3 May 2022 20:58:04 +0000 (22:58 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 3 May 2022 20:59:05 +0000 (22:59 +0200)
ForeignDataNode is a common trait of AnyxmlNode and AnydataNode, make
sure javac enforces that invariant.

Change-Id: Ie594e9b942bdb4744df20ac66dcf8d6f058c89c8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/AnydataNode.java
data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/AnyxmlNode.java
data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/ForeignDataNode.java

index 021eece89a5ae53746989c44d95c5d1dd5c05774..410668045150d3a6af3e0971b9ea3b242ee8e8f1 100644 (file)
@@ -25,7 +25,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent
  * @param <V> Value type, uniquely identifying the object model used for values
  */
 @Beta
-public interface AnydataNode<V> extends ForeignDataNode<V> {
+public non-sealed interface AnydataNode<V> extends ForeignDataNode<V> {
     @Override
     @SuppressWarnings("rawtypes")
     default Class<AnydataNode> contract() {
index e53c22f18095763b0c20b3a52ef9f1e4cecd8744..d3cbfd08340cf0b59fe7b75499d2ef54fcd63a5e 100644 (file)
@@ -17,7 +17,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent
  * @param <V> Value type, uniquely identifying the object model used for values
  */
 @Beta
-public interface AnyxmlNode<V> extends ForeignDataNode<V> {
+public non-sealed interface AnyxmlNode<V> extends ForeignDataNode<V> {
     @Override
     @SuppressWarnings("rawtypes")
     default Class<AnyxmlNode> contract() {
index a4c3c88d1e41414098d90887c81565b913b645f6..10a47328c6f6318d0d42de6e0156fec1742592a1 100644 (file)
@@ -22,7 +22,7 @@ import org.eclipse.jdt.annotation.NonNull;
  * @param <V> Value type, uniquely identifying the object model used for values
  */
 @Beta
-public interface ForeignDataNode<V> extends DataContainerChild {
+public sealed interface ForeignDataNode<V> extends DataContainerChild permits AnydataNode, AnyxmlNode {
     /**
      * {@inheritDoc}
      *