com.sun.xml.bind.util
Class ProxyListImpl<T>
java.lang.Object
com.sun.xml.bind.util.ProxyListImpl<T>
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Iterable<T>, java.util.Collection<T>, java.util.List<T>
- Direct Known Subclasses:
- ListImpl
public abstract class ProxyListImpl<T>
- extends java.lang.Object
- implements java.util.List<T>, java.io.Serializable
List
with modification detection capability.
This wrapper class exposes two additional methods
setModified
and isModified
to check whether the contents of a list is modified.
I originally thought the modCount field of AbstractList
is suffice to implement this capability, but a close look
at the source code reveals that modCount is not updated
when value is modified without a structural change.
This includes modifying a value of a list, for example.
Thus unfortunately we need to trap the calls to all
the mutation methods of List.
Note that Iterator implementation of AbstractList
modifies list directly without using a public method
of List. Thus we also need to wrap Iterators.
- Since:
- JAXB1.0
- See Also:
- Serialized Form
Field Summary |
protected java.util.List<T> |
core
The actual storage. |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
core
protected final java.util.List<T> core
- The actual storage.
ProxyListImpl
public ProxyListImpl()
ProxyListImpl
public ProxyListImpl(java.util.List<T> c)
setModified
public abstract void setModified(boolean f)
add
public void add(int index,
T element)
- Specified by:
add
in interface java.util.List<T>
add
public boolean add(T o)
- Specified by:
add
in interface java.util.Collection<T>
- Specified by:
add
in interface java.util.List<T>
addAll
public boolean addAll(java.util.Collection<? extends T> c)
- Specified by:
addAll
in interface java.util.Collection<T>
- Specified by:
addAll
in interface java.util.List<T>
addAll
public boolean addAll(int index,
java.util.Collection<? extends T> c)
- Specified by:
addAll
in interface java.util.List<T>
set
public T set(int index,
T element)
- Specified by:
set
in interface java.util.List<T>
clear
public void clear()
- Specified by:
clear
in interface java.util.Collection<T>
- Specified by:
clear
in interface java.util.List<T>
remove
public T remove(int index)
- Specified by:
remove
in interface java.util.List<T>
remove
public boolean remove(java.lang.Object o)
- Specified by:
remove
in interface java.util.Collection<T>
- Specified by:
remove
in interface java.util.List<T>
iterator
public java.util.Iterator<T> iterator()
- Specified by:
iterator
in interface java.lang.Iterable<T>
- Specified by:
iterator
in interface java.util.Collection<T>
- Specified by:
iterator
in interface java.util.List<T>
listIterator
public java.util.ListIterator<T> listIterator(int index)
- Specified by:
listIterator
in interface java.util.List<T>
listIterator
public java.util.ListIterator<T> listIterator()
- Specified by:
listIterator
in interface java.util.List<T>
removeAll
public boolean removeAll(java.util.Collection<?> c)
- Specified by:
removeAll
in interface java.util.Collection<T>
- Specified by:
removeAll
in interface java.util.List<T>
retainAll
public boolean retainAll(java.util.Collection<?> c)
- Specified by:
retainAll
in interface java.util.Collection<T>
- Specified by:
retainAll
in interface java.util.List<T>
contains
public boolean contains(java.lang.Object o)
- Specified by:
contains
in interface java.util.Collection<T>
- Specified by:
contains
in interface java.util.List<T>
containsAll
public boolean containsAll(java.util.Collection<?> c)
- Specified by:
containsAll
in interface java.util.Collection<T>
- Specified by:
containsAll
in interface java.util.List<T>
get
public T get(int index)
- Specified by:
get
in interface java.util.List<T>
indexOf
public int indexOf(java.lang.Object o)
- Specified by:
indexOf
in interface java.util.List<T>
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty
in interface java.util.Collection<T>
- Specified by:
isEmpty
in interface java.util.List<T>
lastIndexOf
public int lastIndexOf(java.lang.Object o)
- Specified by:
lastIndexOf
in interface java.util.List<T>
size
public int size()
- Specified by:
size
in interface java.util.Collection<T>
- Specified by:
size
in interface java.util.List<T>
subList
public java.util.List<T> subList(int fromIndex,
int toIndex)
- Specified by:
subList
in interface java.util.List<T>
toArray
public java.lang.Object[] toArray()
- Specified by:
toArray
in interface java.util.Collection<T>
- Specified by:
toArray
in interface java.util.List<T>
toArray
public <T> T[] toArray(T[] a)
- Specified by:
toArray
in interface java.util.Collection<T>
- Specified by:
toArray
in interface java.util.List<T>
equals
public boolean equals(java.lang.Object o)
- Specified by:
equals
in interface java.util.Collection<T>
- Specified by:
equals
in interface java.util.List<T>
- Overrides:
equals
in class java.lang.Object
hashCode
public int hashCode()
- Specified by:
hashCode
in interface java.util.Collection<T>
- Specified by:
hashCode
in interface java.util.List<T>
- Overrides:
hashCode
in class java.lang.Object