Class ListWrapper
- java.lang.Object
-
- org.eclipse.persistence.sdo.helper.ListWrapper
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,java.lang.Iterable
,java.util.Collection
,java.util.List
- Direct Known Subclasses:
JAXBListWrapper
public class ListWrapper extends java.lang.Object implements java.util.List, java.io.Serializable, java.lang.Cloneable
INTERNAL:Purpose:
- This class wraps the ArrayList of currentElements that implement the List interface.
Responsibilities:
- Provide access many properties on
dataObject
s
- Since:
- Oracle TopLink 11.1.1.0.0
- See Also:
SDODataObject
, Serialized Form
-
-
Constructor Summary
Constructors Constructor Description ListWrapper()
ListWrapper(SDODataObject theDataObject, commonj.sdo.Property theProperty)
ListWrapper(SDODataObject theDataObject, commonj.sdo.Property theProperty, java.util.List theList)
Constructor for non-default Pluggable ValueStore implementations
Prerequisites: Containment is already set on theList parameter.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(int index, java.lang.Object item)
Inserts the specified element at the index position in this list.void
add(int index, java.lang.Object item, boolean updateSequence)
INTERNAL:boolean
add(java.lang.Object item)
boolean
add(java.lang.Object item, boolean updateSequence)
INTERNAL:boolean
addAll(int position, java.util.Collection items)
Inserts all of the currentElements in the specified Collection into this list, starting at the specified position.boolean
addAll(int position, java.util.Collection items, boolean updateSequence)
boolean
addAll(java.util.Collection items)
Appends all of the currentElements in the specified Collection to the end of this list, in the order that they are returned by the specified Collection's Iterator.boolean
addAll(java.util.Collection items, boolean updateSequence)
INTERNAL: Appends all of the currentElements in the specified Collection to the end of this list, in the order that they are returned by the specified Collection's Iterator.void
clear()
Removes all of the currentElements from this list.void
clear(boolean updateSequence)
INTERNAL:java.lang.Object
clone()
Clone the ListWrapper.boolean
contains(java.lang.Object item)
boolean
containsAll(java.util.Collection items)
java.lang.Object
get(int position)
java.util.List
getCurrentElements()
INTERNAL:int
indexOf(java.lang.Object item)
boolean
isEmpty()
java.util.Iterator
iterator()
int
lastIndexOf(java.lang.Object item)
java.util.ListIterator
listIterator()
java.util.ListIterator
listIterator(int position)
java.lang.Object
remove(int index)
Removes the element at the specified position in this list.
Position index starts at 0.java.lang.Object
remove(int index, boolean updateSequence)
INTERNAL: Removes the element at the specified position in this list.
Position index starts at 0.boolean
remove(java.lang.Object item)
boolean
remove(java.lang.Object item, boolean fromDelete, boolean updateSequence)
INTERNAL: Remove the item or first occurrence of the item.boolean
removeAll(java.util.Collection items)
Removes from this collection all of its currentElements that are contained in the specified collection.boolean
removeAll(java.util.Collection items, boolean updateSequence)
INTERNAL: Removes from this collection all of its currentElements that are contained in the specified collection.boolean
retainAll(java.util.Collection itemsToKeep)
Retains only the currentElements in this collection that are contained in the specified collection (optional operation).
In other words, removes from this collection all of its currentElements that are not contained in the specified collection.java.lang.Object
set(int index, java.lang.Object item)
Replaces the element at the specified index in this list with the specified element.void
setCurrentElements(java.util.List currentElementsList)
INTERNAL: bypass containment and changesummary copy of element list on modificationsint
size()
java.util.List
subList(int start, int end)
Return a view of the specified portion of the listjava.lang.Object[]
toArray()
java.lang.Object[]
toArray(java.lang.Object[] items)
Returns an array containing all of the currentElements in this list in proper sequence; the runtime type of the returned array is that of the specified array.void
undoChanges(SDOChangeSummary cs)
INTERNAL: Undo any changes and return the original Listjava.lang.Object
writeReplace()
INTERNAL: Defined in SDO 2.01 spec on page 65 Externalizable function is called by ObjectStream.writeObject() A replacement object for serialization can be called here.
-
-
-
Constructor Detail
-
ListWrapper
public ListWrapper()
-
ListWrapper
public ListWrapper(SDODataObject theDataObject, commonj.sdo.Property theProperty)
-
ListWrapper
public ListWrapper(SDODataObject theDataObject, commonj.sdo.Property theProperty, java.util.List theList)
Constructor for non-default Pluggable ValueStore implementations
Prerequisites: Containment is already set on theList parameter. Do not use this constructor for default implementations as containment is not updated. The SDO Objects inside this ListWrapper are special case wrappers with no previous containment We do not call updateContainment on the SDO Wrapper objects surrounding the POJO's otherwise the containment of this list will be removed in the embedded detach() call TestCase: the first get on a list.
-
-
Method Detail
-
add
public boolean add(java.lang.Object item)
- Specified by:
add
in interfacejava.util.Collection
- Specified by:
add
in interfacejava.util.List
-
add
public boolean add(java.lang.Object item, boolean updateSequence)
INTERNAL:- Parameters:
item
-updateSequence
-- Returns:
-
add
public void add(int index, java.lang.Object item)
Inserts the specified element at the index position in this list.- Specified by:
add
in interfacejava.util.List
- Parameters:
index
- (start at 0 = prepend, length = append)item
-
-
add
public void add(int index, java.lang.Object item, boolean updateSequence)
INTERNAL:- Parameters:
index
-item
-updateSequence
-
-
undoChanges
public void undoChanges(SDOChangeSummary cs)
INTERNAL: Undo any changes and return the original List
-
remove
public boolean remove(java.lang.Object item, boolean fromDelete, boolean updateSequence)
INTERNAL: Remove the item or first occurrence of the item.- Parameters:
item
-fromDelete
-updateSequence
-- Returns:
-
remove
public boolean remove(java.lang.Object item)
- Specified by:
remove
in interfacejava.util.Collection
- Specified by:
remove
in interfacejava.util.List
- Parameters:
item
-- Returns:
-
addAll
public boolean addAll(java.util.Collection items)
Appends all of the currentElements in the specified Collection to the end of this list, in the order that they are returned by the specified Collection's Iterator. The behavior of this operation is undefined if the specified Collection is modified while the operation is in progress. (This implies that the behavior of this call is undefined if the specified Collection is this list, and this list is nonempty.)
This operation is a special case of the general addAll(int, Collection).
From the SDO Specification: p18 The getList(property) accessor is especially convenient for many-valued properties. If property.many is true then set(property, value) and setList(property, value) require that [value] be a java.util.Collection and List respectively. These methods are equivalent to getList(property).clear() followed by getList(property).addAll(value).- Specified by:
addAll
in interfacejava.util.Collection
- Specified by:
addAll
in interfacejava.util.List
- Parameters:
items
-- Returns:
- boolean
-
addAll
public boolean addAll(java.util.Collection items, boolean updateSequence)
INTERNAL: Appends all of the currentElements in the specified Collection to the end of this list, in the order that they are returned by the specified Collection's Iterator. This function calls the public addAll(Collection) with a sequence state flag.- Parameters:
items
-updateSequence
-- Returns:
-
addAll
public boolean addAll(int position, java.util.Collection items)
Inserts all of the currentElements in the specified Collection into this list, starting at the specified position. Shifts the element currently at that position (if any) and any subsequent currentElements to the right (increases their indices). The new currentElements will appear in the list in the order that they are returned by the specified Collection's iterator.- Specified by:
addAll
in interfacejava.util.List
- Parameters:
position
- (start at 0 = prepend, length = append)items
-- Returns:
- boolean
-
addAll
public boolean addAll(int position, java.util.Collection items, boolean updateSequence)
-
removeAll
public boolean removeAll(java.util.Collection items)
Removes from this collection all of its currentElements that are contained in the specified collection.- Specified by:
removeAll
in interfacejava.util.Collection
- Specified by:
removeAll
in interfacejava.util.List
- Parameters:
items
-- Returns:
- boolean
-
removeAll
public boolean removeAll(java.util.Collection items, boolean updateSequence)
INTERNAL: Removes from this collection all of its currentElements that are contained in the specified collection.- Parameters:
items
-updateSequence
-- Returns:
-
retainAll
public boolean retainAll(java.util.Collection itemsToKeep)
Retains only the currentElements in this collection that are contained in the specified collection (optional operation).
In other words, removes from this collection all of its currentElements that are not contained in the specified collection.- Specified by:
retainAll
in interfacejava.util.Collection
- Specified by:
retainAll
in interfacejava.util.List
- Parameters:
itemsToKeep
-- Returns:
- boolean
-
clear
public void clear()
Removes all of the currentElements from this list. The list will be empty after this call returns.- Specified by:
clear
in interfacejava.util.Collection
- Specified by:
clear
in interfacejava.util.List
-
clear
public void clear(boolean updateSequence)
INTERNAL:- Parameters:
updateSequence
-
-
set
public java.lang.Object set(int index, java.lang.Object item)
Replaces the element at the specified index in this list with the specified element.- Specified by:
set
in interfacejava.util.List
- Parameters:
index
-item
-- Returns:
- Object (the element previously at the specified position)
-
remove
public java.lang.Object remove(int index, boolean updateSequence)
INTERNAL: Removes the element at the specified position in this list.
Position index starts at 0.- Parameters:
index
-updateSequence
-- Returns:
- Object (the element previously at the specified position)
-
remove
public java.lang.Object remove(int index)
Removes the element at the specified position in this list.
Position index starts at 0.- Specified by:
remove
in interfacejava.util.List
- Parameters:
index
-- Returns:
- Object (the element previously at the specified position)
-
listIterator
public java.util.ListIterator listIterator()
- Specified by:
listIterator
in interfacejava.util.List
-
listIterator
public java.util.ListIterator listIterator(int position)
- Specified by:
listIterator
in interfacejava.util.List
-
subList
public java.util.List subList(int start, int end)
Return a view of the specified portion of the list- Specified by:
subList
in interfacejava.util.List
- Parameters:
start
- - low endpoint (inclusive) of the subList.end
- - high endpoint (exclusive) of the subList.- Returns:
-
toArray
public java.lang.Object[] toArray()
- Specified by:
toArray
in interfacejava.util.Collection
- Specified by:
toArray
in interfacejava.util.List
-
toArray
public java.lang.Object[] toArray(java.lang.Object[] items)
Returns an array containing all of the currentElements in this list in proper sequence; the runtime type of the returned array is that of the specified array. Obeys the general contract of the Collection.toArray(Object[]) method.
Specified by: toArray in interface Collection<E>
Throws:
ArrayStoreException - if the runtime type of the specified array is not a supertype of the runtime type of every element in this list.
NullPointerException - if the specified array is null.- Specified by:
toArray
in interfacejava.util.Collection
- Specified by:
toArray
in interfacejava.util.List
- Parameters:
items
- -the array into which the currentElements of this list are to be stored, if it is big enough; otherwise, a new array of the same runtime type is allocated for this purpose.- Returns:
- Object[] - an array containing the currentElements of this list.
-
size
public int size()
- Specified by:
size
in interfacejava.util.Collection
- Specified by:
size
in interfacejava.util.List
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty
in interfacejava.util.Collection
- Specified by:
isEmpty
in interfacejava.util.List
-
contains
public boolean contains(java.lang.Object item)
- Specified by:
contains
in interfacejava.util.Collection
- Specified by:
contains
in interfacejava.util.List
-
containsAll
public boolean containsAll(java.util.Collection items)
- Specified by:
containsAll
in interfacejava.util.Collection
- Specified by:
containsAll
in interfacejava.util.List
-
iterator
public java.util.Iterator iterator()
- Specified by:
iterator
in interfacejava.util.Collection
- Specified by:
iterator
in interfacejava.lang.Iterable
- Specified by:
iterator
in interfacejava.util.List
-
indexOf
public int indexOf(java.lang.Object item)
- Specified by:
indexOf
in interfacejava.util.List
-
lastIndexOf
public int lastIndexOf(java.lang.Object item)
- Specified by:
lastIndexOf
in interfacejava.util.List
-
get
public java.lang.Object get(int position)
- Specified by:
get
in interfacejava.util.List
-
writeReplace
public java.lang.Object writeReplace()
INTERNAL: Defined in SDO 2.01 spec on page 65 Externalizable function is called by ObjectStream.writeObject() A replacement object for serialization can be called here.Security Note: This public function exposes a data replacement vulnerability where an outside client can gain access and modify their non-final constants. We may need to wrap the GZIP streams in some sort of encryption when we are not using HTTPS or SSL/TLS on the wire.
- See Also:
SDOResolvable
-
getCurrentElements
public java.util.List getCurrentElements()
INTERNAL:- Returns:
-
setCurrentElements
public void setCurrentElements(java.util.List currentElementsList)
INTERNAL: bypass containment and changesummary copy of element list on modifications
-
clone
public java.lang.Object clone()
Clone the ListWrapper. This creates a new ListWrapper with the same contents as the original (shallow clone) Minimal clone operation implemented to support usage in JPA
-
-