|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectca.odell.glazedlists.AbstractEventList<E>
ca.odell.glazedlists.TransformedList<E,E>
ca.odell.glazedlists.SortedList<E>
public final class SortedList<E>
An EventList that shows its source EventList in sorted order.
The sorting strategy is specified with a Comparator. If no
Comparator is specified, all of the elements of the source EventList
must implement Comparable.
This EventList supports all write operations.
Warning: This class
breaks the contract required by List. See EventList
for an example.
Warning: This class is
thread ready but not thread safe. See EventList for an example
of thread safe code.
| EventList Overview | |
| Writable: | yes |
| Concurrency: | thread ready, not thread safe |
| Performance: | reads: O(log N), writes O(log N), change comparator O(N log N) |
| Memory: | 72 bytes per element |
| Unit Tests: | N/A |
| Issues: | 39 40 58 60 62 66 161 170 206 239 255 261 |
| Field Summary | |
|---|---|
static int |
AVOID_MOVING_ELEMENTS
Sorting mode where elements aren't moved when their value is changed, even if this means they are no longer in perfect sorted order. |
static int |
STRICT_SORT_ORDER
Sorting mode where elements are always in sorted order, even if this requires that elements be moved from one index to another when their value is changed. |
| Fields inherited from class ca.odell.glazedlists.TransformedList |
|---|
source |
| Fields inherited from class ca.odell.glazedlists.AbstractEventList |
|---|
publisher, readWriteLock, updates |
| Constructor Summary | |
|---|---|
SortedList(EventList<E> source)
Creates a SortedList that sorts the specified EventList. |
|
SortedList(EventList<E> source,
Comparator<? super E> comparator)
Creates a SortedList that sorts the specified EventList
using the specified Comparator to determine sort order. |
|
| Method Summary | ||
|---|---|---|
boolean |
contains(Object object)
Returns true if this list contains the specified element. |
|
static
|
create(EventList<E> source)
Creates a SortedList that sorts the specified EventList. |
|
Comparator<? super E> |
getComparator()
Gets the Comparator that is being used to sort this list. |
|
int |
getMode()
Get the behaviour mode for this SortedList. |
|
protected int |
getSourceIndex(int mutationIndex)
Gets the index in the source EventList that corresponds to the
specified index. |
|
int |
indexOf(Object object)
Returns the index in this list of the first occurrence of the specified element, or -1 if this list does not contain this element. |
|
int |
indexOfSimulated(Object object)
Deprecated. Deprecated as of 12/11/2005. Replaced with sortIndex(Object)
which has cleaner semantics. |
|
protected boolean |
isWritable()
Gets whether the source EventList is writable via this API. |
|
Iterator<E> |
iterator()
Returns an iterator over the elements in this list in proper sequence. |
|
int |
lastIndexOf(Object object)
Returns the index in this list of the last occurrence of the specified element, or -1 if this list does not contain this element. |
|
int |
lastSortIndex(Object object)
Returns the last index of the object's sort location or
the last index at which the object could be positioned if
inserted. |
|
void |
listChanged(ListEvent<E> listChanges)
When the underlying list changes, this notification allows the object to repaint itself or update itself as necessary. |
|
void |
setComparator(Comparator<? super E> comparator)
Set the Comparator in use in this EventList. |
|
void |
setMode(int mode)
Modify the behaviour of this SortedList to one of the predefined modes. |
|
int |
sortIndex(Object object)
Returns the first index of the object's sort location or
the first index at which the object could be positioned if
inserted. |
|
| Methods inherited from class ca.odell.glazedlists.TransformedList |
|---|
add, addAll, clear, dispose, get, remove, removeAll, retainAll, set, size |
| Methods inherited from class ca.odell.glazedlists.AbstractEventList |
|---|
add, addAll, addListEventListener, containsAll, equals, getPublisher, getReadWriteLock, hashCode, isEmpty, listIterator, listIterator, remove, removeListEventListener, subList, toArray, toArray, toString |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public static final int STRICT_SORT_ORDER
public static final int AVOID_MOVING_ELEMENTS
| Constructor Detail |
|---|
public SortedList(EventList<E> source)
SortedList that sorts the specified EventList.
Because this constructor takes no Comparator argument, all
elements in the specified EventList must implement Comparable
or a ClassCastException will be thrown.
Usage of factory method create(EventList) is preferable.
source - the EventList to be sorted
public SortedList(EventList<E> source,
Comparator<? super E> comparator)
SortedList that sorts the specified EventList
using the specified Comparator to determine sort order. If the
specified Comparator is null, then this List
will be unsorted.
| Method Detail |
|---|
public static <E extends Comparable<? super E>> SortedList<E> create(EventList<E> source)
SortedList that sorts the specified EventList.
All elements in the specified EventList must implement Comparable.
source - the EventList to be sortedpublic void setMode(int mode)
SortedList to one of the predefined modes.
mode - either STRICT_SORT_ORDER or AVOID_MOVING_ELEMENTS.public int getMode()
SortedList.
STRICT_SORT_ORDER (default) or
AVOID_MOVING_ELEMENTS.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>protected int getSourceIndex(int mutationIndex)
EventList that corresponds to the
specified index. More formally, returns the index such that
this.get(i) == source.get(getSourceIndex(i)) for all
legal values of i.
getSourceIndex in class TransformedList<E,E>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 Comparator<? super E> getComparator()
Comparator that is being used to sort this list.
Comparator in use, or null if this list is
currently unsorted. If this is an EventList of Comparable
elements in natural order, then a ComparableComparator} will
be returned.public void setComparator(Comparator<? super E> comparator)
Comparator in use in this EventList. This will
sort the source EventList into a new order.
Performance Note: sorting will take O(N * Log N) time.
Warning: This method is
thread ready but not thread safe. See EventList for an example
of thread safe code.
comparator - the Comparator to specify how to sort the list. If
the source EventList elements implement Comparable,
you may use a GlazedLists.comparableComparator() to sort them
in their natural order. You may also specify null to put
this SortedList in unsorted order.public int indexOf(Object object)
indexOf in interface List<E>indexOf in class AbstractEventList<E>object - element to search for.
public int lastIndexOf(Object object)
lastIndexOf in interface List<E>lastIndexOf in class AbstractEventList<E>object - element to search for.
public int sortIndex(Object object)
object's sort location or
the first index at which the object could be positioned if
inserted.
Unlike indexOf(java.lang.Object) this method does not guarantee the given
object equals the element at
the returned index. Instead, they are indistinguishable according to the
sorting Comparator.
public int lastSortIndex(Object object)
object's sort location or
the last index at which the object could be positioned if
inserted.
Unlike lastIndexOf(java.lang.Object) this method does not guarantee the given
object equals the element at
the returned index. Instead, they are indistinguishable according to the
sorting Comparator.
public int indexOfSimulated(Object object)
sortIndex(Object)
which has cleaner semantics.
public boolean contains(Object object)
contains in interface Collection<E>contains in interface List<E>contains in class AbstractEventList<E>object - element whose presence in this list is to be tested.
public Iterator<E> iterator()
The returned Iterator will become inconsistent if the
EventList that it views is modified. To overcome this problem,
use AbstractEventList.listIterator(). When used concurrently, the returned
Iterator requires locking via this list's
ReadWriteLock.
iterator in interface Iterable<E>iterator in interface Collection<E>iterator in interface List<E>iterator in class AbstractEventList<E>
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||