Class ObservableList<E>
- java.lang.Object
-
- org.eclipse.core.databinding.observable.AbstractObservable
-
- org.eclipse.core.databinding.observable.list.ObservableList<E>
-
- Type Parameters:
E
- the type of the elements in this list
- All Implemented Interfaces:
Iterable<E>
,Collection<E>
,List<E>
,IObservable
,IObservableCollection<E>
,IObservableList<E>
- Direct Known Subclasses:
WritableList
public abstract class ObservableList<E> extends AbstractObservable implements IObservableList<E>
Abstract implementation ofIObservableList
, based on an underlying regular list.This class is thread safe. All state accessing methods must be invoked from the
current realm
. Methods for adding and removing listeners may be invoked from any thread.- Since:
- 1.0
-
-
Field Summary
Fields Modifier and Type Field Description protected List<E>
wrappedList
-
Constructor Summary
Constructors Modifier Constructor Description protected
ObservableList(List<E> wrappedList, Object elementType)
protected
ObservableList(Realm realm, List<E> wrappedList, Object elementType)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(int index, E element)
boolean
add(E o)
boolean
addAll(int index, Collection<? extends E> c)
boolean
addAll(Collection<? extends E> c)
void
addListChangeListener(IListChangeListener<? super E> listener)
Adds the given list change listener to the list of list change listeners.protected void
addListener(Object listenerType, IObservablesListener listener)
void
clear()
protected Object
clone()
boolean
contains(Object o)
boolean
containsAll(Collection<?> c)
void
dispose()
Disposes of this observable object, removing all listeners registered with this object, and all listeners this object might have registered on other objects.boolean
equals(Object o)
protected void
fireChange()
protected void
fireEvent(ObservableEvent event)
protected void
fireListChange(ListDiff<E> diff)
protected void
firstListenerAdded()
E
get(int index)
Object
getElementType()
Returns the element type of this observable collection, ornull
if this observable collection is untyped.Realm
getRealm()
protected void
getterCalled()
int
hashCode()
protected boolean
hasListeners()
int
indexOf(Object o)
boolean
isEmpty()
boolean
isStale()
Returns the stale state.Iterator<E>
iterator()
int
lastIndexOf(Object o)
protected void
lastListenerRemoved()
ListIterator<E>
listIterator()
ListIterator<E>
listIterator(int index)
E
move(int oldIndex, int newIndex)
Moves the element located atoldIndex
tonewIndex
.E
remove(int index)
boolean
remove(Object o)
boolean
removeAll(Collection<?> c)
void
removeListChangeListener(IListChangeListener<? super E> listener)
Removes the given list change listener from the list of list change listeners.protected void
removeListener(Object listenerType, IObservablesListener listener)
boolean
retainAll(Collection<?> c)
E
set(int index, E element)
void
setStale(boolean stale)
Sets the stale state.int
size()
List<E>
subList(int fromIndex, int toIndex)
Object[]
toArray()
<T> T[]
toArray(T[] a)
String
toString()
protected void
updateWrappedList(List<E> newList)
-
Methods inherited from class org.eclipse.core.databinding.observable.AbstractObservable
addChangeListener, addDisposeListener, addStaleListener, checkRealm, fireStale, isDisposed, removeChangeListener, removeDisposeListener, removeStaleListener
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
-
Methods inherited from interface org.eclipse.core.databinding.observable.IObservable
addChangeListener, addDisposeListener, addStaleListener, getRealm, isDisposed, removeChangeListener, removeDisposeListener, removeStaleListener
-
Methods inherited from interface java.util.List
replaceAll, sort, spliterator
-
-
-
-
Method Detail
-
addListChangeListener
public void addListChangeListener(IListChangeListener<? super E> listener)
Description copied from interface:IObservableList
Adds the given list change listener to the list of list change listeners.- Specified by:
addListChangeListener
in interfaceIObservableList<E>
-
removeListChangeListener
public void removeListChangeListener(IListChangeListener<? super E> listener)
Description copied from interface:IObservableList
Removes the given list change listener from the list of list change listeners. Has no effect if the given listener is not registered as a list change listener.- Specified by:
removeListChangeListener
in interfaceIObservableList<E>
-
contains
public boolean contains(Object o)
- Specified by:
contains
in interfaceCollection<E>
- Specified by:
contains
in interfaceIObservableList<E>
- Specified by:
contains
in interfaceList<E>
-
containsAll
public boolean containsAll(Collection<?> c)
- Specified by:
containsAll
in interfaceCollection<E>
- Specified by:
containsAll
in interfaceIObservableList<E>
- Specified by:
containsAll
in interfaceList<E>
-
equals
public boolean equals(Object o)
-
hashCode
public int hashCode()
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty
in interfaceCollection<E>
- Specified by:
isEmpty
in interfaceIObservableList<E>
- Specified by:
isEmpty
in interfaceList<E>
-
size
public int size()
- Specified by:
size
in interfaceCollection<E>
- Specified by:
size
in interfaceIObservableList<E>
- Specified by:
size
in interfaceList<E>
-
toArray
public Object[] toArray()
- Specified by:
toArray
in interfaceCollection<E>
- Specified by:
toArray
in interfaceIObservableList<E>
- Specified by:
toArray
in interfaceList<E>
-
toArray
public <T> T[] toArray(T[] a)
- Specified by:
toArray
in interfaceCollection<E>
- Specified by:
toArray
in interfaceIObservableList<E>
- Specified by:
toArray
in interfaceList<E>
-
get
public E get(int index)
-
indexOf
public int indexOf(Object o)
-
lastIndexOf
public int lastIndexOf(Object o)
- Specified by:
lastIndexOf
in interfaceIObservableList<E>
- Specified by:
lastIndexOf
in interfaceList<E>
- "TrackedGetter"
-
listIterator
public ListIterator<E> listIterator()
- Specified by:
listIterator
in interfaceIObservableList<E>
- Specified by:
listIterator
in interfaceList<E>
- "TrackedGetter"
-
listIterator
public ListIterator<E> listIterator(int index)
- Specified by:
listIterator
in interfaceIObservableList<E>
- Specified by:
listIterator
in interfaceList<E>
- "TrackedGetter"
-
getterCalled
protected void getterCalled()
-
move
public E move(int oldIndex, int newIndex)
Moves the element located atoldIndex
tonewIndex
. This method is equivalent to callingadd(newIndex, remove(oldIndex))
.Subclasses should override this method to deliver list change notification for the remove and add operations in the same ListChangeEvent, as this allows
ListDiff.accept(ListDiffVisitor)
to recognize the operation as a move.- Specified by:
move
in interfaceIObservableList<E>
- Parameters:
oldIndex
- the element's position before the move. Must be within the range0 <= oldIndex < size()
.newIndex
- the element's position after the move. Must be within the range0 <= newIndex < size()
.- Returns:
- the element that was moved.
- Throws:
IndexOutOfBoundsException
- if either argument is out of range (0 <= index < size()
).- Since:
- 1.1
- See Also:
ListDiffVisitor.handleMove(int, int, Object)
,ListDiff.accept(ListDiffVisitor)
-
remove
public E remove(int index)
-
add
public boolean add(E o)
- Specified by:
add
in interfaceCollection<E>
- Specified by:
add
in interfaceIObservableList<E>
- Specified by:
add
in interfaceList<E>
-
addAll
public boolean addAll(Collection<? extends E> c)
- Specified by:
addAll
in interfaceCollection<E>
- Specified by:
addAll
in interfaceIObservableList<E>
- Specified by:
addAll
in interfaceList<E>
-
addAll
public boolean addAll(int index, Collection<? extends E> c)
-
remove
public boolean remove(Object o)
- Specified by:
remove
in interfaceCollection<E>
- Specified by:
remove
in interfaceIObservableList<E>
- Specified by:
remove
in interfaceList<E>
-
removeAll
public boolean removeAll(Collection<?> c)
- Specified by:
removeAll
in interfaceCollection<E>
- Specified by:
removeAll
in interfaceIObservableList<E>
- Specified by:
removeAll
in interfaceList<E>
-
retainAll
public boolean retainAll(Collection<?> c)
- Specified by:
retainAll
in interfaceCollection<E>
- Specified by:
retainAll
in interfaceIObservableList<E>
- Specified by:
retainAll
in interfaceList<E>
-
clear
public void clear()
-
isStale
public boolean isStale()
Returns the stale state. Must be invoked from the current realm.- Specified by:
isStale
in interfaceIObservable
- Returns:
- stale state
-
setStale
public void setStale(boolean stale)
Sets the stale state. Must be invoked from the current realm.- Parameters:
stale
- The stale state to list. This will fire a stale event if the given boolean is true and this observable list was not already stale.
-
fireChange
protected void fireChange()
- Overrides:
fireChange
in classAbstractObservable
-
dispose
public void dispose()
Description copied from interface:IObservable
Disposes of this observable object, removing all listeners registered with this object, and all listeners this object might have registered on other objects.- Specified by:
dispose
in interfaceIObservable
- Overrides:
dispose
in classAbstractObservable
-
getElementType
public Object getElementType()
Description copied from interface:IObservableCollection
Returns the element type of this observable collection, ornull
if this observable collection is untyped.- Specified by:
getElementType
in interfaceIObservableCollection<E>
- Specified by:
getElementType
in interfaceIObservableList<E>
- Returns:
- the type of the elements or
null
if untyped
-
addListener
protected void addListener(Object listenerType, IObservablesListener listener)
- Parameters:
listenerType
-listener
-
-
removeListener
protected void removeListener(Object listenerType, IObservablesListener listener)
- Parameters:
listenerType
-listener
-
-
hasListeners
protected boolean hasListeners()
-
fireEvent
protected void fireEvent(ObservableEvent event)
-
firstListenerAdded
protected void firstListenerAdded()
-
lastListenerRemoved
protected void lastListenerRemoved()
-
getRealm
public Realm getRealm()
- Returns:
- Returns the realm.
-
clone
protected Object clone() throws CloneNotSupportedException
- Overrides:
clone
in classObject
- Throws:
CloneNotSupportedException
-
-