From 5c66f6261492dbdae024d2979393bf8399ddaf9f Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 25 Apr 2022 21:26:06 +0200 Subject: [PATCH] Seal BaseNotification BaseNotification should never be used directly, only through Notification and InstanceNotification. Change-Id: Ib3fd70aeb364523d7f630eb6e882f2308e427884 Signed-off-by: Robert Varga --- .../opendaylight/yangtools/yang/binding/BaseNotification.java | 2 +- .../yangtools/yang/binding/InstanceNotification.java | 3 +-- .../org/opendaylight/yangtools/yang/binding/Notification.java | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/BaseNotification.java b/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/BaseNotification.java index a445e418b2..3784f45a44 100644 --- a/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/BaseNotification.java +++ b/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/BaseNotification.java @@ -12,6 +12,6 @@ package org.opendaylight.yangtools.yang.binding; * only to tie together semantics of global notifications (as represented by {@link Notification}) and instance * notifications (as represented by {@link InstanceNotification}. */ -public interface BaseNotification extends DataContainer { +public sealed interface BaseNotification extends DataContainer permits Notification, InstanceNotification { } diff --git a/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/InstanceNotification.java b/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/InstanceNotification.java index 83fd1c8806..82becf3a8c 100644 --- a/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/InstanceNotification.java +++ b/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/InstanceNotification.java @@ -19,9 +19,8 @@ import org.eclipse.jdt.annotation.NonNull; * @param Parent data tree instance type */ @Beta -public interface InstanceNotification, T extends DataObject> +public non-sealed interface InstanceNotification, T extends DataObject> extends BaseNotification { - @Override @NonNull Class implementedInterface(); } diff --git a/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/Notification.java b/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/Notification.java index 6acaa44d20..962cb88946 100644 --- a/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/Notification.java +++ b/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/Notification.java @@ -13,7 +13,7 @@ package org.opendaylight.yangtools.yang.binding; * interface. In case they do, {@link EventInstantAware#eventInstant()} returns the time when this notification was * generated. */ -public interface Notification & DataObject> extends BaseNotification { +public non-sealed interface Notification & DataObject> extends BaseNotification { @Override Class implementedInterface(); } -- 2.36.6