com.levigo.util.base.glazedlists
Interface EventList<E>

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

public interface EventList<E>
extends List<E>

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 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(ListEventListener<? super 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(ListEventListener<? super E> listChangeListener)
          Removes the specified listener from receiving change updates for this list.
 
Methods inherited from interface java.util.List
add, add, addAll, addAll, clear, contains, containsAll, equals, get, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, retainAll, set, size, subList, toArray, toArray
 

Method Detail

addListEventListener

void addListEventListener(ListEventListener<? super E> listChangeListener)
Registers the specified listener to receive change updates for this list.


removeListEventListener

void removeListEventListener(ListEventListener<? super E> listChangeListener)
Removes the specified listener from receiving change updates for this list.


getReadWriteLock

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.

getPublisher

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


dispose

void dispose()
Disposing an EventList will make it eligible for garbage collection. Some EventLists install themselves as listeners to related objects so disposing them is necessary.

Warning: It is an error to call any method on an EventList after it has been disposed.



Copyright © 1995-2020 levigo holding gmbh. All Rights Reserved.