Interface ItemOrder<T extends ItemOrder<T>>

Type Parameters:
T - Item order type
All Known Subinterfaces:
ChoiceNode, ContainerNode, DataContainer, DataContainerNode, ItemOrder.Ordered, ItemOrder.Unordered, MapEntryNode, NormalizedYangData, OrderedContainer<V>, OrderedNodeContainer<V>, OrderingAware.System, OrderingAware.User, SystemLeafSetNode<T>, SystemMapNode, UnkeyedListEntryNode, UnkeyedListNode, UserLeafSetNode<T>, UserMapNode
All Known Implementing Classes:
AbstractChoiceNode, AbstractContainerNode, AbstractMapEntryNode, AbstractSystemLeafSetNode, AbstractSystemMapNode, AbstractUnkeyedListEntryNode, AbstractUnkeyedListNode, AbstractUserLeafSetNode, AbstractUserMapNode

public sealed interface ItemOrder<T extends ItemOrder<T>> permits ItemOrder.Unordered, ItemOrder.Ordered
Marker interface for specifying ordering of items. There are two orderings, ItemOrder.Ordered and ItemOrder.Unordered, and they are mutually exclusive. Item ordering is considered semantically important, such as it impacts Object.equals(Object) contract. This can be thought of as the missing interface distinction between Collection, List and Set.
  • Method Details

    • itemOrder

      @NonNull Class<T> itemOrder()
      Return the item order class of this object. The class' equality contracts apply to this object's equality contract.
      Returns:
      Item order class.
    • hashCode

      int hashCode()
      ItemOrder has impact on hashCode().
      Overrides:
      hashCode in class Object
    • equals

      boolean equals(@Nullable Object obj)
      ItemOrder has impact on equals(Object).
      Overrides:
      equals in class Object