From: Robert Varga Date: Tue, 3 May 2022 20:50:49 +0000 (+0200) Subject: Seal OrderingAware X-Git-Tag: v9.0.0~96 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=yangtools.git;a=commitdiff_plain;h=51497d88f26ae580ffed2970eb39881bff9d2ae8 Seal OrderingAware There are only two possible orderings, make sure javac enforces that invariant. Change-Id: I5900a43b525d781909d74b9cb4c9f5ecd167adb4 Signed-off-by: Robert Varga --- diff --git a/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/OrderingAware.java b/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/OrderingAware.java index 594c9d385b..d302673463 100644 --- a/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/OrderingAware.java +++ b/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/OrderingAware.java @@ -18,12 +18,12 @@ import org.opendaylight.yangtools.yang.common.Ordering; */ @Beta @NonNullByDefault -public interface OrderingAware { +public sealed interface OrderingAware permits NormalizedNodeContainer, OrderingAware.System, OrderingAware.User { /** * Marker interface for NormalizedNodeContainer implementations which correspond to {@code ordered-by system}. These * follow the {@link Unordered} contract. */ - interface System extends OrderingAware, Unordered { + non-sealed interface System extends OrderingAware, Unordered { @Override default Ordering ordering() { return Ordering.SYSTEM; @@ -34,7 +34,7 @@ public interface OrderingAware { * Marker interface for NormalizedNodeContainer implementations which correspond to {@code ordered-by user}. These * follow the {@link Ordered} contract. */ - interface User extends OrderingAware, Ordered { + non-sealed interface User extends OrderingAware, Ordered { @Override default Ordering ordering() { return Ordering.USER;