org.apache.commons.collections.list
Class SynchronizedList

java.lang.Object
  extended by org.apache.commons.collections.collection.SynchronizedCollection
      extended by org.apache.commons.collections.list.SynchronizedList
All Implemented Interfaces:
java.io.Serializable, java.lang.Iterable, java.util.Collection, java.util.List

public class SynchronizedList
extends SynchronizedCollection
implements java.util.List

Decorates another List to synchronize its behaviour for a multi-threaded environment.

Methods are synchronized, then forwarded to the decorated list.

This class is Serializable from Commons Collections 3.1.

Since:
Commons Collections 3.0
Version:
$Revision: 646777 $ $Date: 2008-04-10 13:33:15 +0100 (Thu, 10 Apr 2008) $
Author:
Stephen Colebourne
See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.apache.commons.collections.collection.SynchronizedCollection
collection, lock
 
Constructor Summary
protected SynchronizedList(java.util.List list)
          Constructor that wraps (not copies).
protected SynchronizedList(java.util.List list, java.lang.Object lock)
          Constructor that wraps (not copies).
 
Method Summary
 void add(int index, java.lang.Object object)
           
 boolean addAll(int index, java.util.Collection coll)
           
static java.util.List decorate(java.util.List list)
          Factory method to create a synchronized list.
 java.lang.Object get(int index)
           
protected  java.util.List getList()
          Gets the decorated list.
 int indexOf(java.lang.Object object)
           
 int lastIndexOf(java.lang.Object object)
           
 java.util.ListIterator listIterator()
          Iterators must be manually synchronized.
 java.util.ListIterator listIterator(int index)
          Iterators must be manually synchronized.
 java.lang.Object remove(int index)
           
 java.lang.Object set(int index, java.lang.Object object)
           
 java.util.List subList(int fromIndex, int toIndex)
           
 
Methods inherited from class org.apache.commons.collections.collection.SynchronizedCollection
add, addAll, clear, contains, containsAll, decorate, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.List
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray
 

Constructor Detail

SynchronizedList

protected SynchronizedList(java.util.List list)
Constructor that wraps (not copies).

Parameters:
list - the list to decorate, must not be null
Throws:
java.lang.IllegalArgumentException - if list is null

SynchronizedList

protected SynchronizedList(java.util.List list,
                           java.lang.Object lock)
Constructor that wraps (not copies).

Parameters:
list - the list to decorate, must not be null
lock - the lock to use, must not be null
Throws:
java.lang.IllegalArgumentException - if list is null
Method Detail

decorate

public static java.util.List decorate(java.util.List list)
Factory method to create a synchronized list.

Parameters:
list - the list to decorate, must not be null
Throws:
java.lang.IllegalArgumentException - if list is null

getList

protected java.util.List getList()
Gets the decorated list.

Returns:
the decorated list

add

public void add(int index,
                java.lang.Object object)
Specified by:
add in interface java.util.List

addAll

public boolean addAll(int index,
                      java.util.Collection coll)
Specified by:
addAll in interface java.util.List

get

public java.lang.Object get(int index)
Specified by:
get in interface java.util.List

indexOf

public int indexOf(java.lang.Object object)
Specified by:
indexOf in interface java.util.List

lastIndexOf

public int lastIndexOf(java.lang.Object object)
Specified by:
lastIndexOf in interface java.util.List

listIterator

public java.util.ListIterator listIterator()
Iterators must be manually synchronized.
 synchronized (coll) {
   ListIterator it = coll.listIterator();
   // do stuff with iterator
 }

Specified by:
listIterator in interface java.util.List
Returns:
an iterator that must be manually synchronized on the collection

listIterator

public java.util.ListIterator listIterator(int index)
Iterators must be manually synchronized.
 synchronized (coll) {
   ListIterator it = coll.listIterator(3);
   // do stuff with iterator
 }

Specified by:
listIterator in interface java.util.List
Returns:
an iterator that must be manually synchronized on the collection

remove

public java.lang.Object remove(int index)
Specified by:
remove in interface java.util.List

set

public java.lang.Object set(int index,
                            java.lang.Object object)
Specified by:
set in interface java.util.List

subList

public java.util.List subList(int fromIndex,
                              int toIndex)
Specified by:
subList in interface java.util.List


Copyright © 2001-2008 The Apache Software Foundation. All Rights Reserved.