Class ExposedNodeLinkedList

  • All Implemented Interfaces:
    Iterable, Collection, List

    public class ExposedNodeLinkedList
    extends Object
    implements List
    INTERNAL: A custom implementation of a linked list. This list exposes the linked nodes directly to the developer. It allows nodes to be referenced in code for quick list manipulation (ie reshuffle, remove, or queuing) It is specifically used in the EclipseLink cache write lock mechanism in order to allow quick removal of objects from the list while still providing the getFirst() addLast() functionality of a queue. The alternative java classes LinkedList, LinkedHashMap do not provide both functional requirements.
    Since:
    10.0.3
    Author:
    Gordon Yorke
    See Also:
    LinkedNode
    • Constructor Detail

      • ExposedNodeLinkedList

        public ExposedNodeLinkedList()
        Constructs an empty list.
    • Method Detail

      • subList

        public List subList​(int start,
                            int end)
        Specified by:
        subList in interface List
      • addAll

        public boolean addAll​(int index,
                              Collection collection)
        Specified by:
        addAll in interface List
      • add

        public void add​(int index,
                        Object object)
        Specified by:
        add in interface List
      • remove

        public Object remove​(int index)
        Specified by:
        remove in interface List
      • get

        public Object get​(int index)
        Specified by:
        get in interface List
      • getFirst

        public Object getFirst()
        Returns the first contents in this list.
        Returns:
        the first contents in this list. Null if this list is empty.
      • getLast

        public Object getLast()
        Returns the last contents in this list.
        Returns:
        the last contents in this list. Null if this list is empty.
      • removeFirst

        public Object removeFirst()
        Removes and returns the first contents from this list.
        Returns:
        the first contents from this list.
        Throws:
        NoSuchElementException - if this list is empty.
      • removeLast

        public Object removeLast()
        Removes and returns the last contents from this list.
        Returns:
        the last contents from this list.
        Throws:
        NoSuchElementException - if this list is empty.
      • addFirst

        public LinkedNode addFirst​(Object o)
        Inserts the given contents at the beginning of this list.
        Parameters:
        o - the contents to be inserted at the beginning of this list.
      • addLast

        public LinkedNode addLast​(Object o)
        Appends the given contents to the end of this list. (Identical in function to the add method; included only for consistency.)
        Parameters:
        o - the contents to be inserted at the end of this list.
      • contains

        public boolean contains​(Object o)
        Returns true if this list contains the specified contents. More formally, returns true if and only if this list contains at least one contents e such that (o==null ? e==null : o.equals(e)).
        Specified by:
        contains in interface Collection
        Specified by:
        contains in interface List
        Parameters:
        o - contents whose presence in this list is to be tested.
        Returns:
        true if this list contains the specified contents.
      • size

        public int size()
        Returns the number of contents in this list.
        Specified by:
        size in interface Collection
        Specified by:
        size in interface List
        Returns:
        the number of contents in this list.
      • clear

        public void clear()
        Removes all of the contents from this list.
        Specified by:
        clear in interface Collection
        Specified by:
        clear in interface List
      • indexOf

        public int indexOf​(Object o)
        Returns the index in this list of the first occurrence of the specified contents, or -1 if the List does not contain this contents. More formally, returns the lowest index i such that (o==null ? get(i)==null : o.equals(get(i))), or -1 if there is no such index.
        Specified by:
        indexOf in interface List
        Parameters:
        o - contents to search for.
        Returns:
        the index in this list of the first occurrence of the specified contents, or -1 if the list does not contain this contents.
      • remove

        public void remove​(LinkedNode n)
        Allows a node to be efficiently removed.
      • moveFirst

        public void moveFirst​(LinkedNode node)
        Allows a node to be efficiently moved first.