E - the type of elements maintained by this listpublic class IndirectList<E> extends java.util.Vector<E> implements CollectionChangeTracker, IndirectCollection
To use an IndirectList:
CollectionMapping,
IndirectMap,
Serialized Form| Modifier and Type | Field and Description |
|---|---|
protected java.util.Vector<E> |
delegate
Reduce type casting.
|
protected int |
initialCapacity
Store initial size for lazy init.
|
protected boolean |
isRegistered
PERF: Quick check flag if has been registered in a unit of work.
|
protected ValueHolderInterface |
valueHolder
Delegate indirection behavior to a value holder.
|
| Constructor and Description |
|---|
IndirectList()
PUBLIC:
Construct an empty IndirectList so that its internal data array
has size 10 and its standard capacity increment is zero.
|
IndirectList(java.util.Collection<? extends E> collection)
PUBLIC:
Construct an IndirectList containing the elements of the specified
collection, in the order they are returned by the collection's
iterator.
|
IndirectList(int initialCapacity)
PUBLIC:
Construct an empty IndirectList with the specified initial capacity and
with its capacity increment equal to zero.
|
IndirectList(int initialCapacity,
int capacityIncrement)
PUBLIC:
Construct an empty IndirectList with the specified initial capacity and
capacity increment.
|
| Modifier and Type | Method and Description |
|---|---|
java.beans.PropertyChangeListener |
_persistence_getPropertyChangeListener()
INTERNAL:
Return the property change listener for change tracking.
|
void |
_persistence_setPropertyChangeListener(java.beans.PropertyChangeListener changeListener)
INTERNAL:
Set the property change listener for change tracking.
|
boolean |
add(E element) |
void |
add(int index,
E element) |
boolean |
addAll(java.util.Collection<? extends E> c) |
boolean |
addAll(int index,
java.util.Collection<? extends E> c) |
void |
addElement(E obj) |
protected java.util.Vector<E> |
buildDelegate()
INTERNAL:
Return the freshly-built delegate.
|
int |
capacity() |
void |
clear() |
void |
clearDeferredChanges()
INTERNAL:
clear any changes that have been deferred to instantiation.
|
java.lang.Object |
clone()
PUBLIC:
|
boolean |
contains(java.lang.Object element)
PUBLIC:
|
boolean |
containsAll(java.util.Collection<?> c) |
void |
copyInto(java.lang.Object[] anArray) |
E |
elementAt(int index) |
java.util.Enumeration<E> |
elements() |
void |
ensureCapacity(int minCapacity) |
boolean |
equals(java.lang.Object o) |
E |
firstElement() |
void |
forEach(java.util.function.Consumer<? super E> action) |
E |
get(int index) |
java.util.Collection<E> |
getAddedElements()
INTERNAL:
Return the elements that have been added before instantiation.
|
protected java.util.Vector<E> |
getDelegate()
INTERNAL:
Check whether the contents have been read from the database.
|
java.lang.Object |
getDelegateObject()
INTERNAL:
Return the real collection object.
|
java.util.Collection<E> |
getRemovedElements()
INTERNAL:
Return the elements that have been removed before instantiation.
|
java.lang.String |
getTrackedAttributeName()
INTERNAL:
Return the mapping attribute name, used to raise change events.
|
ValueHolderInterface |
getValueHolder()
INTERNAL:
Return the valueHolder.
|
boolean |
hasAddedElements()
INTERNAL:
Return if any elements that have been added before instantiation.
|
boolean |
hasBeenRegistered()
INTERNAL:
return whether this IndirectList has been registered with the UnitOfWork
|
boolean |
hasDeferredChanges()
INTERNAL:
Return if any elements that have been added or removed before instantiation.
|
int |
hashCode()
INTERNAL:
|
boolean |
hasRemovedElements()
INTERNAL:
Return if any elements that have been removed before instantiation.
|
boolean |
hasTrackedPropertyChangeListener()
INTERNAL:
Return if the collection has a property change listener for change tracking.
|
int |
indexOf(java.lang.Object elem) |
int |
indexOf(java.lang.Object elem,
int index) |
void |
insertElementAt(E obj,
int index) |
boolean |
isEmpty() |
boolean |
isInstantiated()
PUBLIC:
Return whether the contents have been read from the database.
|
boolean |
isListOrderBrokenInDb() |
protected boolean |
isRelationshipMaintenanceRequired() |
java.util.Iterator<E> |
iterator() |
E |
lastElement() |
int |
lastIndexOf(java.lang.Object elem) |
int |
lastIndexOf(java.lang.Object elem,
int index) |
java.util.ListIterator<E> |
listIterator() |
java.util.ListIterator<E> |
listIterator(int index) |
java.util.stream.Stream<E> |
parallelStream() |
protected void |
raiseAddChangeEvent(java.lang.Object element,
java.lang.Integer index)
Raise the add change event and relationship maintenance.
|
protected void |
raiseAddChangeEvent(java.lang.Object element,
java.lang.Integer index,
boolean isSet) |
protected void |
raiseRemoveChangeEvent(java.lang.Object element,
java.lang.Integer index)
Raise the remove change event.
|
protected void |
raiseRemoveChangeEvent(java.lang.Object element,
java.lang.Integer index,
boolean isSet) |
E |
remove(int index) |
boolean |
remove(java.lang.Object element) |
boolean |
removeAll(java.util.Collection<?> c) |
void |
removeAllElements() |
boolean |
removeElement(java.lang.Object obj) |
void |
removeElementAt(int index) |
boolean |
removeIf(java.util.function.Predicate<? super E> filter) |
void |
replaceAll(java.util.function.UnaryOperator<E> operator) |
boolean |
retainAll(java.util.Collection<?> c) |
E |
set(int index,
E element) |
void |
setElementAt(E obj,
int index) |
void |
setIsListOrderBrokenInDb(boolean isBroken) |
void |
setSize(int newSize) |
void |
setTrackedAttributeName(java.lang.String attributeName)
INTERNAL:
Set the mapping attribute name, used to raise change events.
|
void |
setUseLazyInstantiation(boolean useLazyInstantiation)
INTERNAL
Set whether this collection should attempt do deal with adds and removes without retrieving the
collection from the dB
|
void |
setValueHolder(ValueHolderInterface valueHolder)
INTERNAL:
Set the value holder.
|
protected boolean |
shouldAvoidInstantiation()
INTERNAL:
Return if add/remove should trigger instantiation or avoid.
|
protected boolean |
shouldUseLazyInstantiation()
Return whether this collection should attempt do deal with adds and removes without retrieving the
collection from the dB
|
int |
size() |
void |
sort(java.util.Comparator<? super E> c) |
java.util.Spliterator<E> |
spliterator() |
java.util.stream.Stream<E> |
stream() |
java.util.List<E> |
subList(int fromIndex,
int toIndex) |
java.lang.Object[] |
toArray() |
<T> T[] |
toArray(T[] a) |
java.lang.String |
toString()
PUBLIC:
Use the java.util.Vector#toString(); but wrap it with braces to indicate
there is a bit of indirection.
|
void |
trimToSize() |
protected boolean |
usesListOrderField()
INTERNAL:
Returns whether the mapping has listOrderField.
|
protected volatile java.util.Vector<E> delegate
protected volatile ValueHolderInterface valueHolder
protected int initialCapacity
protected boolean isRegistered
public IndirectList()
public IndirectList(int initialCapacity)
initialCapacity - the initial capacity of the vectorjava.lang.IllegalArgumentException - if the specified initial capacity
is negativepublic IndirectList(int initialCapacity,
int capacityIncrement)
initialCapacity - the initial capacity of the vectorcapacityIncrement - the amount by which the capacity is
increased when the vector overflowsjava.lang.IllegalArgumentException - if the specified initial capacity
is negativepublic IndirectList(java.util.Collection<? extends E> collection)
collection - a collection containing the elements to construct this IndirectList with.public void add(int index,
E element)
protected void raiseAddChangeEvent(java.lang.Object element,
java.lang.Integer index)
protected void raiseAddChangeEvent(java.lang.Object element,
java.lang.Integer index,
boolean isSet)
protected boolean isRelationshipMaintenanceRequired()
protected void raiseRemoveChangeEvent(java.lang.Object element,
java.lang.Integer index)
protected void raiseRemoveChangeEvent(java.lang.Object element,
java.lang.Integer index,
boolean isSet)
public boolean add(E element)
public boolean addAll(int index,
java.util.Collection<? extends E> c)
public boolean addAll(java.util.Collection<? extends E> c)
public void addElement(E obj)
addElement in class java.util.Vector<E>Vector.addElement(java.lang.Object)protected java.util.Vector<E> buildDelegate()
public int capacity()
capacity in class java.util.Vector<E>Vector.capacity()public void clear()
public void clearDeferredChanges()
clearDeferredChanges in interface IndirectCollectionpublic java.lang.Object clone()
clone in class java.util.Vector<E>This will result in a database query if necessary.public boolean contains(java.lang.Object element)
public boolean containsAll(java.util.Collection<?> c)
public void copyInto(java.lang.Object[] anArray)
copyInto in class java.util.Vector<E>Vector.copyInto(java.lang.Object[])public E elementAt(int index)
elementAt in class java.util.Vector<E>Vector.elementAt(int)public java.util.Enumeration<E> elements()
elements in class java.util.Vector<E>Vector.elements()public void ensureCapacity(int minCapacity)
ensureCapacity in class java.util.Vector<E>Vector.ensureCapacity(int)public boolean equals(java.lang.Object o)
public E firstElement()
firstElement in class java.util.Vector<E>Vector.firstElement()public E get(int index)
protected java.util.Vector<E> getDelegate()
public java.lang.Object getDelegateObject()
getDelegateObject in interface IndirectCollectionpublic ValueHolderInterface getValueHolder()
getValueHolder in interface IndirectContainerpublic boolean hasBeenRegistered()
public int hashCode()
public int indexOf(java.lang.Object elem)
public int indexOf(java.lang.Object elem,
int index)
indexOf in class java.util.Vector<E>Vector.indexOf(java.lang.Object, int)public void insertElementAt(E obj, int index)
insertElementAt in class java.util.Vector<E>Vector.insertElementAt(java.lang.Object, int)public boolean isEmpty()
public boolean isInstantiated()
isInstantiated in interface IndirectContainerpublic java.util.Iterator<E> iterator()
public E lastElement()
lastElement in class java.util.Vector<E>Vector.lastElement()public int lastIndexOf(java.lang.Object elem)
public int lastIndexOf(java.lang.Object elem,
int index)
lastIndexOf in class java.util.Vector<E>Vector.lastIndexOf(java.lang.Object, int)public java.util.ListIterator<E> listIterator()
public java.util.ListIterator<E> listIterator(int index)
public E remove(int index)
public boolean remove(java.lang.Object element)
public boolean removeAll(java.util.Collection<?> c)
public void removeAllElements()
removeAllElements in class java.util.Vector<E>Vector.removeAllElements()public boolean removeElement(java.lang.Object obj)
removeElement in class java.util.Vector<E>Vector.removeElement(java.lang.Object)public void removeElementAt(int index)
removeElementAt in class java.util.Vector<E>Vector.removeElementAt(int)public boolean retainAll(java.util.Collection<?> c)
public void setElementAt(E obj, int index)
setElementAt in class java.util.Vector<E>Vector.setElementAt(java.lang.Object, int)public void setSize(int newSize)
setSize in class java.util.Vector<E>Vector.setSize(int)public void setUseLazyInstantiation(boolean useLazyInstantiation)
setUseLazyInstantiation in interface IndirectCollectionpublic void setValueHolder(ValueHolderInterface valueHolder)
setValueHolder in interface IndirectContainerpublic int size()
protected boolean shouldUseLazyInstantiation()
public java.util.List<E> subList(int fromIndex, int toIndex)
public java.lang.Object[] toArray()
public <T> T[] toArray(T[] a)
public java.util.Spliterator<E> spliterator()
public void replaceAll(java.util.function.UnaryOperator<E> operator)
public boolean removeIf(java.util.function.Predicate<? super E> filter)
public void forEach(java.util.function.Consumer<? super E> action)
public java.util.stream.Stream<E> parallelStream()
parallelStream in interface java.util.Collection<E>public java.util.stream.Stream<E> stream()
stream in interface java.util.Collection<E>public void sort(java.util.Comparator<? super E> c)
public java.lang.String toString()
toString in class java.util.Vector<E>Vector.toString()public void trimToSize()
trimToSize in class java.util.Vector<E>Vector.trimToSize()public java.beans.PropertyChangeListener _persistence_getPropertyChangeListener()
_persistence_getPropertyChangeListener in interface ChangeTrackerpublic boolean hasTrackedPropertyChangeListener()
public void _persistence_setPropertyChangeListener(java.beans.PropertyChangeListener changeListener)
_persistence_setPropertyChangeListener in interface ChangeTrackerpublic java.lang.String getTrackedAttributeName()
getTrackedAttributeName in interface CollectionChangeTrackerpublic void setTrackedAttributeName(java.lang.String attributeName)
setTrackedAttributeName in interface CollectionChangeTrackerpublic java.util.Collection<E> getRemovedElements()
getRemovedElements in interface IndirectCollectionpublic java.util.Collection<E> getAddedElements()
getAddedElements in interface IndirectCollectionpublic boolean hasAddedElements()
public boolean hasRemovedElements()
public boolean hasDeferredChanges()
hasDeferredChanges in interface IndirectCollectionprotected boolean shouldAvoidInstantiation()
protected boolean usesListOrderField()
public boolean isListOrderBrokenInDb()
public void setIsListOrderBrokenInDb(boolean isBroken)