public final class FreezableList<E> extends TransformedList<E,E>
EventList
that shows the current contents of its source EventList
.
When this EventList
is frozen, changes to its source EventList
will not be reflected. Instead, the FreezableList
will continue to show
the state of its source EventList
at the time it was frozen.
When this EventList
is thawed, changes to its source
EventList
will be reflected.
Warning: This class is
thread ready but not thread safe. See EventList
for an example
of thread safe code.
EventList Overview | |
Writable: | writable when thawed (default), not writable when frozen |
Concurrency: | thread ready, not thread safe |
Performance: | reads: O(1), writes O(1), freezes O(N) |
Memory: | frozen: 4 bytes per element, thawed: 0 bytes per element |
Unit Tests: | N/A |
Issues: | N/A |
Issues: |
source
publisher, readWriteLock, updates
Constructor and Description |
---|
FreezableList(EventList<E> source)
Creates a
FreezableList that can freeze the view of the specified
source EventList . |
Modifier and Type | Method and Description |
---|---|
void |
freeze()
Locks this
FreezableList on the current state of the source
EventList . |
E |
get(int index)
Returns the element at the specified position in this list.
|
boolean |
isFrozen()
|
protected boolean |
isWritable()
Gets whether the source
EventList is writable via this API. |
void |
listChanged(ListEvent<E> listChanges)
When the underlying list changes, this notification allows the
object to repaint itself or update itself as necessary.
|
int |
size()
Returns the number of elements in this list.
|
void |
thaw()
Unlocks this
FreezableList to show the same contents of the source
EventList . |
add, addAll, clear, dispose, getSourceIndex, remove, removeAll, retainAll, set
add, addAll, addListEventListener, contains, containsAll, equals, getPublisher, getReadWriteLock, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, removeListEventListener, subList, toArray, toArray, toString
public FreezableList(EventList<E> source)
FreezableList
that can freeze the view of the specified
source EventList
.public E get(int index)
get
in interface java.util.List<E>
get
in class TransformedList<E,E>
index
- index of element to return.public int size()
protected boolean isWritable()
EventList
is writable via this API.
Extending classes must override this method in order to make themselves writable.
isWritable
in class TransformedList<E,E>
public boolean isFrozen()
public void freeze()
FreezableList
on the current state of the source
EventList
. While frozen, changes to the source EventList
will not be reflected by this list.
Warning: This method is
thread ready but not thread safe. See EventList
for an example
of thread safe code.
public void thaw()
FreezableList
to show the same contents of the source
EventList
. When thawed, changes to the source EventList
will be reflected by this list.
Warning: This method is
thread ready but not thread safe. See EventList
for an example
of thread safe code.
public void listChanged(ListEvent<E> listChanges)
It is mandatory that the calling thread has obtained the write lock on the source list. This is because the calling thread will have written to the source list to cause this event. This condition guarantees that no writes can occur while the listener is handling this event. It is an error to write to the source list while processing an event.
listChanged
in interface ListEventListener<E>
listChanged
in class TransformedList<E,E>
listChanges
- a ListEvent
describing the changes to the listGlazed Lists, Copyright © 2003 publicobject.com, O'Dell Engineering.
Documentation build by mockbuild at 2018-02-07 14:47