ca.odell.glazedlists
Class FunctionList<S,E>
- EventListener, EventList<E>, List, ListEventListener<E>
public final class FunctionList<S,E>
This List is meant to simplify the task of transforming each element of a
source list to an element stored at the same index in this FunctionList.
The logic of precisely how to tranform the source elements is contained
within a
FunctionList.Function
that must be supplied at the time of construction
and can never be changed. This
FunctionList.Function
is called the forward
function because it creates elements in this
FunctionList
from
elements that have been added or mutated within the source list. The forward
function may be an implementation of either
FunctionList.Function
or
FunctionList.AdvancedFunction
.
An optional reverse
FunctionList.Function
which is capable of mapping the
elements of this FunctionList back to the corresponding source element may
be supplied in order to use the following methods:
-
add(Object)
-
add(int, Object)
-
set(int, Object)
If the reverse
FunctionList.Function
is not supplied then callers of those
methods will receive an
IllegalStateException
explaining that those
operations are not available without the reverse
FunctionList.Function
.
If specified, the reverse
FunctionList.Function
should do its best to
maintain the invariant:
o.equals(reverseFunction.evaluate(forwardFunction.evaluate(o)))
for any o that is non-null.
Note: if two source elements share the same identity
(i.e. source.get(i) == source.get(j) when i != j), it is up to author of the
FunctionList.Function
to decide
if and how to
preserve the relationship of their identities after their transformation.
EventList Overview |
Writable: | yes |
Concurrency: | thread ready, not thread safe |
Performance: | reads: O(1), writes O(1) amortized |
Memory: | |
Unit Tests: | FunctionList |
Issues: |
282
|
static interface | FunctionList.AdvancedFunction - An AdvancedFunction is an extension of the simple Function interface
which provides more hooks in the lifecycle of the transformation of a
source element.
|
static interface | FunctionList.Function - A Function encapsulates the logic for transforming a list element into
any kind of Object.
|
add , addAll , clear , dispose , get , getSourceIndex , isWritable , listChanged , remove , removeAll , retainAll , set , size |
T[] toArray , add , add , addAll , addAll , addListEventListener , clear , contains , containsAll , equals , get , getPublisher , getReadWriteLock , hashCode , indexOf , isEmpty , iterator , lastIndexOf , listIterator , listIterator , remove , remove , removeAll , removeListEventListener , retainAll , set , size , subList , toArray , toString |
FunctionList
public FunctionList(EventList source,
Function forward)
Construct a
FunctionList
which stores the result of transforming
each source element using the given forward
FunctionList.Function
. No reverse
FunctionList.Function
will be specified implying that
add(Object)
,
add(int, Object)
and
set(int, Object)
will throw
IllegalArgumentException
if they are called.
source
- the EventList to decorate with a function transformationforward
- the function to execute on each source element
FunctionList
public FunctionList(EventList source,
Function forward,
Function reverse)
Construct a
FunctionList
which stores the result of transforming
each source element using the given forward
FunctionList.Function
. If the
reverse
FunctionList.Function
is not null,
add(Object)
,
add(int, Object)
and
set(int, Object)
will execute
correctly.
Note: a
FunctionList.AdvancedFunction
can be specified for the forward
FunctionList.Function
which allows the implementor a chance to examine the
prior value that was mapped to a source element when it must be remapped
due to a modification (from a call to
List.set
).
source
- the EventList to decorate with a function transformationforward
- the function to execute on each source elementreverse
- the function to map elements of FunctionList back to
element values in the source list
getForwardFunction
public Function getForwardFunction()
getReverseFunction
public Function getReverseFunction()
Glazed Lists, Copyright © 2003-2006 publicobject.com, O'Dell Engineering.
Documentation build by pbuilder at 2007-12-21 23:49