Class ExposedNodeLinkedList
- java.lang.Object
-
- org.eclipse.persistence.internal.helper.linkedlist.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 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, Object object)
boolean
add(Object object)
boolean
addAll(int index, Collection collection)
boolean
addAll(Collection collection)
LinkedNode
addFirst(Object o)
Inserts the given contents at the beginning of this list.LinkedNode
addLast(Object o)
Appends the given contents to the end of this list.void
clear()
Removes all of the contents from this list.boolean
contains(Object o)
Returnstrue
if this list contains the specified contents.boolean
containsAll(Collection collection)
Object
get(int index)
Object
getFirst()
Returns the first contents in this list.Object
getLast()
Returns the last contents in this list.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.boolean
isEmpty()
Iterator
iterator()
int
lastIndexOf(Object object)
ListIterator
listIterator()
ListIterator
listIterator(int index)
void
moveFirst(LinkedNode node)
Allows a node to be efficiently moved first.Object
remove(int index)
boolean
remove(Object object)
void
remove(LinkedNode n)
Allows a node to be efficiently removed.boolean
removeAll(Collection collection)
Object
removeFirst()
Removes and returns the first contents from this list.Object
removeLast()
Removes and returns the last contents from this list.boolean
retainAll(Collection collection)
Object
set(int index, Object value)
int
size()
Returns the number of contents in this list.List
subList(int start, int end)
Object[]
toArray()
Object[]
toArray(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
-
Methods inherited from interface java.util.List
equals, hashCode, replaceAll, sort, spliterator
-
-
-
-
Method Detail
-
toArray
public Object[] toArray(Object[] array)
- Specified by:
toArray
in interfaceCollection
- Specified by:
toArray
in interfaceList
-
toArray
public Object[] toArray()
- Specified by:
toArray
in interfaceCollection
- Specified by:
toArray
in interfaceList
-
listIterator
public ListIterator listIterator(int index)
- Specified by:
listIterator
in interfaceList
-
listIterator
public ListIterator listIterator()
- Specified by:
listIterator
in interfaceList
-
iterator
public Iterator iterator()
-
retainAll
public boolean retainAll(Collection collection)
- Specified by:
retainAll
in interfaceCollection
- Specified by:
retainAll
in interfaceList
-
removeAll
public boolean removeAll(Collection collection)
- Specified by:
removeAll
in interfaceCollection
- Specified by:
removeAll
in interfaceList
-
containsAll
public boolean containsAll(Collection collection)
- Specified by:
containsAll
in interfaceCollection
- Specified by:
containsAll
in interfaceList
-
addAll
public boolean addAll(Collection collection)
- Specified by:
addAll
in interfaceCollection
- Specified by:
addAll
in interfaceList
-
addAll
public boolean addAll(int index, Collection collection)
-
remove
public boolean remove(Object object)
- Specified by:
remove
in interfaceCollection
- Specified by:
remove
in interfaceList
-
add
public boolean add(Object object)
- Specified by:
add
in interfaceCollection
- Specified by:
add
in interfaceList
-
lastIndexOf
public int lastIndexOf(Object object)
- Specified by:
lastIndexOf
in interfaceList
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty
in interfaceCollection
- Specified by:
isEmpty
in interfaceList
-
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 theadd
method; included only for consistency.)- Parameters:
o
- the contents to be inserted at the end of this list.
-
contains
public boolean contains(Object o)
Returnstrue
if this list contains the specified contents. More formally, returnstrue
if and only if this list contains at least one contentse
such that(o==null ? e==null : o.equals(e))
.- Specified by:
contains
in interfaceCollection
- Specified by:
contains
in interfaceList
- 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 interfaceCollection
- Specified by:
size
in interfaceList
- Returns:
- the number of contents in this list.
-
clear
public void clear()
Removes all of the contents from this list.- Specified by:
clear
in interfaceCollection
- Specified by:
clear
in interfaceList
-
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.
-
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.
-
-