- java.lang.Object
-
- javafx.beans.binding.ListExpression<E>
-
- Type Parameters:
E
- the type of theList
elements.
- All Implemented Interfaces:
Iterable<E>
,Collection<E>
,List<E>
,Observable
,ObservableListValue<E>
,ObservableObjectValue<E>
,ObservableValue<E>
,ObservableList<E>
- Direct Known Subclasses:
ListBinding
,ReadOnlyListProperty
public abstract class ListExpression<E> extends Object implements ObservableListValue<E>
ListExpression
is anObservableListValue
plus additional convenience methods to generate bindings in a fluent style.A concrete sub-class of
ListExpression
has to implement the methodObservableObjectValue.get()
, which provides the actual value of this expression.If the wrapped list of a
ListExpression
isnull
, all methods implementing theList
interface will behave as if they were applied to an immutable empty list.- Since:
- JavaFX 2.1
-
-
Property Summary
Properties Type Property Description abstract ReadOnlyBooleanProperty
empty
A boolean property that istrue
, if the list is empty.abstract ReadOnlyIntegerProperty
size
An integer property that represents the size of the list.
-
Constructor Summary
Constructors Constructor Description ListExpression()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
add(int i, E element)
Inserts the specified element at the specified position in this list (optional operation).boolean
add(E element)
Appends the specified element to the end of this list (optional operation).boolean
addAll(int i, Collection<? extends E> elements)
Inserts all of the elements in the specified collection into this list at the specified position (optional operation).boolean
addAll(E... elements)
A convenience method for var-arg addition of elements.boolean
addAll(Collection<? extends E> elements)
Appends all of the elements in the specified collection to the end of this list, in the order that they are returned by the specified collection's iterator (optional operation).StringBinding
asString()
void
clear()
Removes all of the elements from this list (optional operation).boolean
contains(Object obj)
Returnstrue
if this list contains the specified element.boolean
containsAll(Collection<?> objects)
Returnstrue
if this list contains all of the elements of the specified collection.abstract ReadOnlyBooleanProperty
emptyProperty()
A boolean property that istrue
, if the list is empty.E
get(int i)
Returns the element at the specified position in this list.int
getSize()
The size of the listObservableList<E>
getValue()
Returns the current value of thisObservableValue
int
indexOf(Object obj)
Returns the index of the first occurrence of the specified element in this list, or -1 if this list does not contain the element.boolean
isEmpty()
Gets the value of the property empty.BooleanBinding
isEqualTo(ObservableList<?> other)
BooleanBinding
isNotEqualTo(ObservableList<?> other)
BooleanBinding
isNotNull()
BooleanBinding
isNull()
Iterator<E>
iterator()
Returns an iterator over the elements in this list in proper sequence.int
lastIndexOf(Object obj)
Returns the index of the last occurrence of the specified element in this list, or -1 if this list does not contain the element.static <E> ListExpression<E>
listExpression(ObservableListValue<E> value)
Returns aListExpression
that wraps aObservableListValue
.ListIterator<E>
listIterator()
Returns a list iterator over the elements in this list (in proper sequence).ListIterator<E>
listIterator(int i)
Returns a list iterator over the elements in this list (in proper sequence), starting at the specified position in the list.E
remove(int i)
Removes the element at the specified position in this list (optional operation).void
remove(int from, int to)
A simplified way of callingsublist(from, to).clear()
.boolean
remove(Object obj)
Removes the first occurrence of the specified element from this list, if it is present (optional operation).boolean
removeAll(E... elements)
A convenience method for var-arg usage of theremoveAll
method.boolean
removeAll(Collection<?> objects)
Removes from this list all of its elements that are contained in the specified collection (optional operation).boolean
retainAll(E... elements)
A convenience method for var-arg usage of theretainAll
method.boolean
retainAll(Collection<?> objects)
Retains only the elements in this list that are contained in the specified collection (optional operation).E
set(int i, E element)
Replaces the element at the specified position in this list with the specified element (optional operation).boolean
setAll(E... elements)
Clears the ObservableList and adds all the elements passed as var-args.boolean
setAll(Collection<? extends E> elements)
Clears the ObservableList and adds all elements from the collection.int
size()
Returns the number of elements in this list.abstract ReadOnlyIntegerProperty
sizeProperty()
An integer property that represents the size of the list.List<E>
subList(int from, int to)
Returns a view of the portion of this list between the specifiedfromIndex
, inclusive, andtoIndex
, exclusive.Object[]
toArray()
Returns an array containing all of the elements in this list in proper sequence (from first to last element).<T> T[]
toArray(T[] array)
Returns an array containing all of the elements in this list in proper sequence (from first to last element); the runtime type of the returned array is that of the specified array.ObjectBinding<E>
valueAt(int index)
Creates a newObjectBinding
that contains the element at the specified position.ObjectBinding<E>
valueAt(ObservableIntegerValue index)
Creates a newObjectBinding
that contains the element at the specified position.-
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream
-
Methods inherited from interface java.util.List
equals, hashCode, of, of, of, of, of, of, of, of, of, of, of, of, replaceAll, sort, spliterator
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface javafx.beans.Observable
addListener, removeListener
-
Methods inherited from interface javafx.collections.ObservableList
addListener, filtered, removeListener, sorted, sorted
-
Methods inherited from interface javafx.beans.value.ObservableObjectValue
get
-
Methods inherited from interface javafx.beans.value.ObservableValue
addListener, removeListener
-
-
-
-
Property Detail
-
size
public abstract ReadOnlyIntegerProperty sizeProperty
An integer property that represents the size of the list.- See Also:
getSize()
-
empty
public abstract ReadOnlyBooleanProperty emptyProperty
A boolean property that istrue
, if the list is empty.- See Also:
isEmpty()
-
-
Method Detail
-
getValue
public ObservableList<E> getValue()
Description copied from interface:ObservableValue
Returns the current value of thisObservableValue
- Specified by:
getValue
in interfaceObservableValue<E>
- Returns:
- The current value
-
listExpression
public static <E> ListExpression<E> listExpression(ObservableListValue<E> value)
Returns aListExpression
that wraps aObservableListValue
. If theObservableListValue
is already aListExpression
, it will be returned. Otherwise a newListBinding
is created that is bound to theObservableListValue
.- Type Parameters:
E
- the type of the wrappedList
- Parameters:
value
- The sourceObservableListValue
- Returns:
- A
ListExpression
that wraps theObservableListValue
if necessary - Throws:
NullPointerException
- ifvalue
isnull
-
getSize
public int getSize()
The size of the list- Returns:
- the size
-
sizeProperty
public abstract ReadOnlyIntegerProperty sizeProperty()
An integer property that represents the size of the list.- See Also:
getSize()
-
emptyProperty
public abstract ReadOnlyBooleanProperty emptyProperty()
A boolean property that istrue
, if the list is empty.- See Also:
isEmpty()
-
valueAt
public ObjectBinding<E> valueAt(int index)
Creates a newObjectBinding
that contains the element at the specified position. Ifindex
points behind the list, theObjectBinding
containsnull
.- Parameters:
index
- the index of the element- Returns:
- the
ObjectBinding
- Throws:
IllegalArgumentException
- ifindex < 0
-
valueAt
public ObjectBinding<E> valueAt(ObservableIntegerValue index)
Creates a newObjectBinding
that contains the element at the specified position. Ifindex
points outside of the list, theObjectBinding
containsnull
.- Parameters:
index
- the index of the element- Returns:
- the
ObjectBinding
- Throws:
NullPointerException
- ifindex
isnull
-
isEqualTo
public BooleanBinding isEqualTo(ObservableList<?> other)
- Parameters:
other
- the otherObservableList
- Returns:
- the new
BooleanBinding
- Throws:
NullPointerException
- ifother
isnull
-
isNotEqualTo
public BooleanBinding isNotEqualTo(ObservableList<?> other)
- Parameters:
other
- the otherObservableList
- Returns:
- the new
BooleanBinding
- Throws:
NullPointerException
- ifother
isnull
-
isNull
public BooleanBinding isNull()
- Returns:
- the new
BooleanBinding
-
isNotNull
public BooleanBinding isNotNull()
- Returns:
- the new
BooleanBinding
-
asString
public StringBinding asString()
Creates aStringBinding
that holds the value of theListExpression
turned into aString
. If the value of thisListExpression
changes, the value of theStringBinding
will be updated automatically.- Returns:
- the new
StringBinding
-
size
public int size()
Description copied from interface:List
Returns the number of elements in this list. If this list contains more thanInteger.MAX_VALUE
elements, returnsInteger.MAX_VALUE
.
-
isEmpty
public boolean isEmpty()
Gets the value of the property empty.
-
contains
public boolean contains(Object obj)
Description copied from interface:List
Returnstrue
if this list contains the specified element. More formally, returnstrue
if and only if this list contains at least one elemente
such thatObjects.equals(o, e)
.
-
iterator
public Iterator<E> iterator()
Description copied from interface:List
Returns an iterator over the elements in this list in proper sequence.
-
toArray
public Object[] toArray()
Description copied from interface:List
Returns an array containing all of the elements in this list in proper sequence (from first to last element).The returned array will be "safe" in that no references to it are maintained by this list. (In other words, this method must allocate a new array even if this list is backed by an array). The caller is thus free to modify the returned array.
This method acts as bridge between array-based and collection-based APIs.
- Specified by:
toArray
in interfaceCollection<E>
- Specified by:
toArray
in interfaceList<E>
- Returns:
- an array containing all of the elements in this list in proper sequence
- See Also:
Arrays.asList(Object[])
-
toArray
public <T> T[] toArray(T[] array)
Description copied from interface:List
Returns an array containing all of the elements in this list in proper sequence (from first to last element); the runtime type of the returned array is that of the specified array. If the list fits in the specified array, it is returned therein. Otherwise, a new array is allocated with the runtime type of the specified array and the size of this list.If the list fits in the specified array with room to spare (i.e., the array has more elements than the list), the element in the array immediately following the end of the list is set to
null
. (This is useful in determining the length of the list only if the caller knows that the list does not contain any null elements.)Like the
List.toArray()
method, this method acts as bridge between array-based and collection-based APIs. Further, this method allows precise control over the runtime type of the output array, and may, under certain circumstances, be used to save allocation costs.Suppose
x
is a list known to contain only strings. The following code can be used to dump the list into a newly allocated array ofString
:
Note thatString[] y = x.toArray(new String[0]);
toArray(new Object[0])
is identical in function totoArray()
.- Specified by:
toArray
in interfaceCollection<E>
- Specified by:
toArray
in interfaceList<E>
- Type Parameters:
T
- the runtime type of the array to contain the collection- Parameters:
array
- the array into which the elements of this list are to be stored, if it is big enough; otherwise, a new array of the same runtime type is allocated for this purpose.- Returns:
- an array containing the elements of this list
-
add
public boolean add(E element)
Description copied from interface:List
Appends the specified element to the end of this list (optional operation).Lists that support this operation may place limitations on what elements may be added to this list. In particular, some lists will refuse to add null elements, and others will impose restrictions on the type of elements that may be added. List classes should clearly specify in their documentation any restrictions on what elements may be added.
- Specified by:
add
in interfaceCollection<E>
- Specified by:
add
in interfaceList<E>
- Parameters:
element
- element to be appended to this list- Returns:
true
(as specified byCollection.add(E)
)
-
remove
public boolean remove(Object obj)
Description copied from interface:List
Removes the first occurrence of the specified element from this list, if it is present (optional operation). If this list does not contain the element, it is unchanged. More formally, removes the element with the lowest indexi
such thatObjects.equals(o, get(i))
(if such an element exists). Returnstrue
if this list contained the specified element (or equivalently, if this list changed as a result of the call).
-
containsAll
public boolean containsAll(Collection<?> objects)
Description copied from interface:List
Returnstrue
if this list contains all of the elements of the specified collection.- Specified by:
containsAll
in interfaceCollection<E>
- Specified by:
containsAll
in interfaceList<E>
- Parameters:
objects
- collection to be checked for containment in this list- Returns:
true
if this list contains all of the elements of the specified collection- See Also:
List.contains(Object)
-
addAll
public boolean addAll(Collection<? extends E> elements)
Description copied from interface:List
Appends all of the elements in the specified collection to the end of this list, in the order that they are returned by the specified collection's iterator (optional operation). The behavior of this operation is undefined if the specified collection is modified while the operation is in progress. (Note that this will occur if the specified collection is this list, and it's nonempty.)- Specified by:
addAll
in interfaceCollection<E>
- Specified by:
addAll
in interfaceList<E>
- Parameters:
elements
- collection containing elements to be added to this list- Returns:
true
if this list changed as a result of the call- See Also:
List.add(Object)
-
addAll
public boolean addAll(int i, Collection<? extends E> elements)
Description copied from interface:List
Inserts all of the elements in the specified collection into this list at the specified position (optional operation). Shifts the element currently at that position (if any) and any subsequent elements to the right (increases their indices). The new elements will appear in this list in the order that they are returned by the specified collection's iterator. The behavior of this operation is undefined if the specified collection is modified while the operation is in progress. (Note that this will occur if the specified collection is this list, and it's nonempty.)
-
removeAll
public boolean removeAll(Collection<?> objects)
Description copied from interface:List
Removes from this list all of its elements that are contained in the specified collection (optional operation).- Specified by:
removeAll
in interfaceCollection<E>
- Specified by:
removeAll
in interfaceList<E>
- Parameters:
objects
- collection containing elements to be removed from this list- Returns:
true
if this list changed as a result of the call- See Also:
List.remove(Object)
,List.contains(Object)
-
retainAll
public boolean retainAll(Collection<?> objects)
Description copied from interface:List
Retains only the elements in this list that are contained in the specified collection (optional operation). In other words, removes from this list all of its elements that are not contained in the specified collection.- Specified by:
retainAll
in interfaceCollection<E>
- Specified by:
retainAll
in interfaceList<E>
- Parameters:
objects
- collection containing elements to be retained in this list- Returns:
true
if this list changed as a result of the call- See Also:
List.remove(Object)
,List.contains(Object)
-
clear
public void clear()
Description copied from interface:List
Removes all of the elements from this list (optional operation). The list will be empty after this call returns.
-
get
public E get(int i)
Description copied from interface:List
Returns the element at the specified position in this list.
-
set
public E set(int i, E element)
Description copied from interface:List
Replaces the element at the specified position in this list with the specified element (optional operation).
-
add
public void add(int i, E element)
Description copied from interface:List
Inserts the specified element at the specified position in this list (optional operation). Shifts the element currently at that position (if any) and any subsequent elements to the right (adds one to their indices).
-
remove
public E remove(int i)
Description copied from interface:List
Removes the element at the specified position in this list (optional operation). Shifts any subsequent elements to the left (subtracts one from their indices). Returns the element that was removed from the list.
-
indexOf
public int indexOf(Object obj)
Description copied from interface:List
Returns the index of the first occurrence of the specified element in this list, or -1 if this list does not contain the element. More formally, returns the lowest indexi
such thatObjects.equals(o, get(i))
, or -1 if there is no such index.
-
lastIndexOf
public int lastIndexOf(Object obj)
Description copied from interface:List
Returns the index of the last occurrence of the specified element in this list, or -1 if this list does not contain the element. More formally, returns the highest indexi
such thatObjects.equals(o, get(i))
, or -1 if there is no such index.- Specified by:
lastIndexOf
in interfaceList<E>
- Parameters:
obj
- element to search for- Returns:
- the index of the last occurrence of the specified element in this list, or -1 if this list does not contain the element
-
listIterator
public ListIterator<E> listIterator()
Description copied from interface:List
Returns a list iterator over the elements in this list (in proper sequence).- Specified by:
listIterator
in interfaceList<E>
- Returns:
- a list iterator over the elements in this list (in proper sequence)
-
listIterator
public ListIterator<E> listIterator(int i)
Description copied from interface:List
Returns a list iterator over the elements in this list (in proper sequence), starting at the specified position in the list. The specified index indicates the first element that would be returned by an initial call tonext
. An initial call toprevious
would return the element with the specified index minus one.- Specified by:
listIterator
in interfaceList<E>
- Parameters:
i
- index of the first element to be returned from the list iterator (by a call tonext
)- Returns:
- a list iterator over the elements in this list (in proper sequence), starting at the specified position in the list
-
subList
public List<E> subList(int from, int to)
Description copied from interface:List
Returns a view of the portion of this list between the specifiedfromIndex
, inclusive, andtoIndex
, exclusive. (IffromIndex
andtoIndex
are equal, the returned list is empty.) The returned list is backed by this list, so non-structural changes in the returned list are reflected in this list, and vice-versa. The returned list supports all of the optional list operations supported by this list.This method eliminates the need for explicit range operations (of the sort that commonly exist for arrays). Any operation that expects a list can be used as a range operation by passing a subList view instead of a whole list. For example, the following idiom removes a range of elements from a list:
Similar idioms may be constructed forlist.subList(from, to).clear();
indexOf
andlastIndexOf
, and all of the algorithms in theCollections
class can be applied to a subList.The semantics of the list returned by this method become undefined if the backing list (i.e., this list) is structurally modified in any way other than via the returned list. (Structural modifications are those that change the size of this list, or otherwise perturb it in such a fashion that iterations in progress may yield incorrect results.)
-
addAll
public boolean addAll(E... elements)
Description copied from interface:ObservableList
A convenience method for var-arg addition of elements.- Specified by:
addAll
in interfaceObservableList<E>
- Parameters:
elements
- the elements to add- Returns:
- true (as specified by Collection.add(E))
-
setAll
public boolean setAll(E... elements)
Description copied from interface:ObservableList
Clears the ObservableList and adds all the elements passed as var-args.- Specified by:
setAll
in interfaceObservableList<E>
- Parameters:
elements
- the elements to set- Returns:
- true (as specified by Collection.add(E))
-
setAll
public boolean setAll(Collection<? extends E> elements)
Description copied from interface:ObservableList
Clears the ObservableList and adds all elements from the collection.- Specified by:
setAll
in interfaceObservableList<E>
- Parameters:
elements
- the collection with elements that will be added to this observableArrayList- Returns:
- true (as specified by Collection.add(E))
-
removeAll
public boolean removeAll(E... elements)
Description copied from interface:ObservableList
A convenience method for var-arg usage of theremoveAll
method.- Specified by:
removeAll
in interfaceObservableList<E>
- Parameters:
elements
- the elements to be removed- Returns:
- true if list changed as a result of this call
-
retainAll
public boolean retainAll(E... elements)
Description copied from interface:ObservableList
A convenience method for var-arg usage of theretainAll
method.- Specified by:
retainAll
in interfaceObservableList<E>
- Parameters:
elements
- the elements to be retained- Returns:
- true if list changed as a result of this call
-
remove
public void remove(int from, int to)
Description copied from interface:ObservableList
A simplified way of callingsublist(from, to).clear()
. As this is a common operation, ObservableList has this method for convenient usage.- Specified by:
remove
in interfaceObservableList<E>
- Parameters:
from
- the start of the range to remove (inclusive)to
- the end of the range to remove (exclusive)
-
-