ca.odell.glazedlists

Interface EventList<E>

All Superinterfaces:
List
Known Implementing Classes:
AbstractEventList<E>, BasicEventList<E>, CachingList, CollectionList<S,E>, CompositeList<E>, DebugList<E>, FileList, FilterList<E>, FreezableList<E>, FunctionList<S,E>, GroupingList<E>, NetworkList<E>, ObservableElementList<E>, PopularityList<E>, RangeList<E>, SeparatorList<E>, SequenceList<E>, SortedList<E>, ThresholdList<E>, TransactionList<E>, TransformedList<S,E>, UniqueList<E>

public interface EventList<E>
extends List

An observable List. ListEventListeners can register to be notified when this list changes.

EventLists may be writable or read-only. Consult the Javadoc for your EventList if you are unsure.

Warning: EventLists are thread ready but not thread safe. If you are sharing an EventList between multiple threads, you can add thread safety by using the built-in locks:

 EventList myList = ...
 myList.getReadWriteLock().writeLock().lock();
 try {
    // access myList here
    if(myList.size() > 3) {
       System.out.println(myList.get(3));
       myList.remove(3);
    }
 } finally {
    myList.getReadWriteLock().writeLock().unlock();
 }
 
Note that you are also required to acquire and hold the lock during the construction of an EventList if concurrent modifications are possible in your environment, like so:
 EventList source = ...
 SortedList sorted;
 source.getReadWriteLock().readLock().lock();
 try {
    sorted = new SortedList(source);
 } finally {
    source.getReadWriteLock().readLock().unlock();
 }
 

Warning: EventLists may break the contract required by java.util.List. For example, when you add() on a SortedList, it will ignore the specified index so that the element will be inserted in sorted order.

Author:
Jesse Wilson
See Also:
GlazedLists.eventListOf(Object[]), GlazedLists.eventList(Collection), GlazedLists.readOnlyList(EventList), GlazedLists.threadSafeList(EventList), GlazedLists.weakReferenceProxy(EventList, ListEventListener)

Method Summary

void
addListEventListener(E> listChangeListener)
Registers the specified listener to receive change updates for this list.
void
dispose()
Disposing an EventList will make it eligible for garbage collection.
ListEventPublisher
getPublisher()
Get the publisher used to distribute ListEvents.
ReadWriteLock
getReadWriteLock()
Gets the lock required to share this list between multiple threads.
void
removeListEventListener(E> listChangeListener)
Removes the specified listener from receiving change updates for this list.

Method Details

addListEventListener

public void addListEventListener(E> listChangeListener)
Registers the specified listener to receive change updates for this list.

dispose

public void dispose()

getPublisher

public ListEventPublisher getPublisher()
Get the publisher used to distribute ListEvents.

getReadWriteLock

public ReadWriteLock getReadWriteLock()
Gets the lock required to share this list between multiple threads.
Returns:
a re-entrant ReadWriteLock that guarantees thread safe access to this list.

removeListEventListener

public void removeListEventListener(E> listChangeListener)
Removes the specified listener from receiving change updates for this list.

Glazed Lists, Copyright © 2003 publicobject.com, O'Dell Engineering.
Documentation build by pbuilder at 2009-07-14 22:05