From: Robert Varga Date: Mon, 25 Apr 2022 19:26:06 +0000 (+0200) Subject: Seal BaseNotification X-Git-Tag: v10.0.0~98 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=mdsal.git;a=commitdiff_plain;h=5c66f6261492dbdae024d2979393bf8399ddaf9f Seal BaseNotification BaseNotification should never be used directly, only through Notification and InstanceNotification. Change-Id: Ib3fd70aeb364523d7f630eb6e882f2308e427884 Signed-off-by: Robert Varga --- 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(); }