* @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;
* {@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();
* 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;