Seal ItemOrder and MutationBehaviour
[yangtools.git] / common / concepts / src / main / java / org / opendaylight / yangtools / concepts / ItemOrder.java
index 072afc1a0d0ba94158d832f20035b44712770d62..27a8ee8d7264b93b07c350d38095ffda6264e27e 100644 (file)
@@ -23,12 +23,12 @@ import org.eclipse.jdt.annotation.Nullable;
  * @param <T> Item order type
  */
 @Beta
-public interface ItemOrder<T extends ItemOrder<T>> {
+public sealed interface ItemOrder<T extends ItemOrder<T>> {
     /**
      * Items are ordered and their order is significant. A {@link List} is an example of a collection which conforms to
      * this contract.
      */
-    interface Ordered extends ItemOrder<Ordered> {
+    non-sealed interface Ordered extends ItemOrder<Ordered> {
         @Override
         default Class<Ordered> itemOrder() {
             return Ordered.class;
@@ -42,7 +42,7 @@ public interface ItemOrder<T extends ItemOrder<T>> {
          * {@link List#hashCode()} (in the {@code must} reading of sensitivity. {@code need not} reading of sensitivity
          * could also be implemented as {@code Map.hashCode()} in case of a map-like container.
          */
-        // FIXME: 7.0.0: tighten 'should' to 'must'?
+        // FIXME: 8.0.0: tighten 'should' to 'must'?
         @Override
         int hashCode();
 
@@ -61,7 +61,7 @@ public interface ItemOrder<T extends ItemOrder<T>> {
      * Items are unordered and their order is insignificant. A {@link Set} is an example of a collection which conforms
      * to this contract.
      */
-    interface Unordered extends ItemOrder<Unordered> {
+    non-sealed interface Unordered extends ItemOrder<Unordered> {
         @Override
         default Class<Unordered> itemOrder() {
             return Unordered.class;