Class ExposedNodeLinkedList

  • All Implemented Interfaces:
    java.lang.Iterable, java.util.Collection, java.util.List

    public class ExposedNodeLinkedList
    extends java.lang.Object
    implements java.util.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 Summary

      Constructors 
      Constructor Description
      ExposedNodeLinkedList()
      Constructs an empty list.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void add​(int index, java.lang.Object object)  
      boolean add​(java.lang.Object object)  
      boolean addAll​(int index, java.util.Collection collection)  
      boolean addAll​(java.util.Collection collection)  
      LinkedNode addFirst​(java.lang.Object o)
      Inserts the given contents at the beginning of this list.
      LinkedNode addLast​(java.lang.Object o)
      Appends the given contents to the end of this list.
      void clear()
      Removes all of the contents from this list.
      boolean contains​(java.lang.Object o)
      Returns true if this list contains the specified contents.
      boolean containsAll​(java.util.Collection collection)  
      java.lang.Object get​(int index)  
      java.lang.Object getFirst()
      Returns the first contents in this list.
      java.lang.Object getLast()
      Returns the last contents in this list.
      int indexOf​(java.lang.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.
      boolean isEmpty()  
      java.util.Iterator iterator()  
      int lastIndexOf​(java.lang.Object object)  
      java.util.ListIterator listIterator()  
      java.util.ListIterator listIterator​(int index)  
      void moveFirst​(LinkedNode node)
      Allows a node to be efficiently moved first.
      java.lang.Object remove​(int index)  
      boolean remove​(java.lang.Object object)  
      void remove​(LinkedNode n)
      Allows a node to be efficiently removed.
      boolean removeAll​(java.util.Collection collection)  
      java.lang.Object removeFirst()
      Removes and returns the first contents from this list.
      java.lang.Object removeLast()
      Removes and returns the last contents from this list.
      boolean retainAll​(java.util.Collection collection)  
      java.lang.Object set​(int index, java.lang.Object value)  
      int size()
      Returns the number of contents in this list.
      java.util.List subList​(int start, int end)  
      java.lang.Object[] toArray()  
      java.lang.Object[] toArray​(java.lang.Object[] array)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.util.Collection

        parallelStream, removeIf, stream, toArray
      • Methods inherited from interface java.lang.Iterable

        forEach
      • Methods inherited from interface java.util.List

        equals, hashCode, replaceAll, sort, spliterator
    • Constructor Detail

      • ExposedNodeLinkedList

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

      • toArray

        public java.lang.Object[] toArray​(java.lang.Object[] array)
        Specified by:
        toArray in interface java.util.Collection
        Specified by:
        toArray in interface java.util.List
      • toArray

        public java.lang.Object[] toArray()
        Specified by:
        toArray in interface java.util.Collection
        Specified by:
        toArray in interface java.util.List
      • set

        public java.lang.Object set​(int index,
                                    java.lang.Object value)
        Specified by:
        set in interface java.util.List
      • listIterator

        public java.util.ListIterator listIterator​(int index)
        Specified by:
        listIterator in interface java.util.List
      • listIterator

        public java.util.ListIterator listIterator()
        Specified by:
        listIterator in interface java.util.List
      • iterator

        public java.util.Iterator iterator()
        Specified by:
        iterator in interface java.util.Collection
        Specified by:
        iterator in interface java.lang.Iterable
        Specified by:
        iterator in interface java.util.List
      • subList

        public java.util.List subList​(int start,
                                      int end)
        Specified by:
        subList in interface java.util.List
      • retainAll

        public boolean retainAll​(java.util.Collection collection)
        Specified by:
        retainAll in interface java.util.Collection
        Specified by:
        retainAll in interface java.util.List
      • removeAll

        public boolean removeAll​(java.util.Collection collection)
        Specified by:
        removeAll in interface java.util.Collection
        Specified by:
        removeAll in interface java.util.List
      • containsAll

        public boolean containsAll​(java.util.Collection collection)
        Specified by:
        containsAll in interface java.util.Collection
        Specified by:
        containsAll in interface java.util.List
      • addAll

        public boolean addAll​(java.util.Collection collection)
        Specified by:
        addAll in interface java.util.Collection
        Specified by:
        addAll in interface java.util.List
      • addAll

        public boolean addAll​(int index,
                              java.util.Collection collection)
        Specified by:
        addAll in interface java.util.List
      • remove

        public boolean remove​(java.lang.Object object)
        Specified by:
        remove in interface java.util.Collection
        Specified by:
        remove in interface java.util.List
      • add

        public boolean add​(java.lang.Object object)
        Specified by:
        add in interface java.util.Collection
        Specified by:
        add in interface java.util.List
      • lastIndexOf

        public int lastIndexOf​(java.lang.Object object)
        Specified by:
        lastIndexOf in interface java.util.List
      • add

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

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

        public java.lang.Object get​(int index)
        Specified by:
        get in interface java.util.List
      • isEmpty

        public boolean isEmpty()
        Specified by:
        isEmpty in interface java.util.Collection
        Specified by:
        isEmpty in interface java.util.List
      • getFirst

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

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

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

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

        public LinkedNode addFirst​(java.lang.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​(java.lang.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​(java.lang.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 java.util.Collection
        Specified by:
        contains in interface java.util.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 java.util.Collection
        Specified by:
        size in interface java.util.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 java.util.Collection
        Specified by:
        clear in interface java.util.List
      • indexOf

        public int indexOf​(java.lang.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 java.util.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.