org.apache.commons.collections4.collection
Class AbstractCollectionDecorator<E>

java.lang.Object
  extended by org.apache.commons.collections4.collection.AbstractCollectionDecorator<E>
Type Parameters:
E - the type of the elements in the collection
All Implemented Interfaces:
Serializable, Iterable<E>, Collection<E>
Direct Known Subclasses:
AbstractBagDecorator, AbstractDualBidiMap.View, AbstractListDecorator, AbstractQueueDecorator, AbstractSetDecorator, IndexedCollection, PredicatedCollection, TransformedCollection, UnmodifiableBoundedCollection, UnmodifiableCollection

public abstract class AbstractCollectionDecorator<E>
extends Object
implements Collection<E>, Serializable

Decorates another Collection to provide additional behaviour.

Each method call made on this Collection is forwarded to the decorated Collection. This class is used as a framework on which to build to extensions such as synchronized and unmodifiable behaviour. The main advantage of decoration is that one decorator can wrap any implementation of Collection, whereas sub-classing requires a new class to be written for each implementation.

This implementation does not perform any special processing with iterator(). Instead it simply returns the value from the wrapped collection. This may be undesirable, for example if you are trying to write an unmodifiable implementation it might provide a loophole.

Since:
3.0
Version:
$Id: AbstractCollectionDecorator.java 1494280 2013-06-18 20:07:04Z tn $
See Also:
Serialized Form

Constructor Summary
protected AbstractCollectionDecorator()
          Constructor only used in deserialization, do not use otherwise.
protected AbstractCollectionDecorator(Collection<E> coll)
          Constructor that wraps (not copies).
 
Method Summary
 boolean add(E object)
           
 boolean addAll(Collection<? extends E> coll)
           
 void clear()
           
 boolean contains(Object object)
           
 boolean containsAll(Collection<?> coll)
           
protected  Collection<E> decorated()
          Gets the collection being decorated.
 boolean equals(Object object)
           
 int hashCode()
           
 boolean isEmpty()
           
 Iterator<E> iterator()
           
 boolean remove(Object object)
           
 boolean removeAll(Collection<?> coll)
           
 boolean retainAll(Collection<?> coll)
           
protected  void setCollection(Collection<E> coll)
          Sets the collection being decorated.
 int size()
           
 Object[] toArray()
           
<T> T[]
toArray(T[] object)
           
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AbstractCollectionDecorator

protected AbstractCollectionDecorator()
Constructor only used in deserialization, do not use otherwise.

Since:
3.1

AbstractCollectionDecorator

protected AbstractCollectionDecorator(Collection<E> coll)
Constructor that wraps (not copies).

Parameters:
coll - the collection to decorate, must not be null
Throws:
IllegalArgumentException - if the collection is null
Method Detail

decorated

protected Collection<E> decorated()
Gets the collection being decorated. All access to the decorated collection goes via this method.

Returns:
the decorated collection

setCollection

protected void setCollection(Collection<E> coll)
Sets the collection being decorated.

NOTE: this method should only be used during deserialization

Parameters:
coll - the decorated collection

add

public boolean add(E object)
Specified by:
add in interface Collection<E>

addAll

public boolean addAll(Collection<? extends E> coll)
Specified by:
addAll in interface Collection<E>

clear

public void clear()
Specified by:
clear in interface Collection<E>

contains

public boolean contains(Object object)
Specified by:
contains in interface Collection<E>

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface Collection<E>

iterator

public Iterator<E> iterator()
Specified by:
iterator in interface Iterable<E>
Specified by:
iterator in interface Collection<E>

remove

public boolean remove(Object object)
Specified by:
remove in interface Collection<E>

size

public int size()
Specified by:
size in interface Collection<E>

toArray

public Object[] toArray()
Specified by:
toArray in interface Collection<E>

toArray

public <T> T[] toArray(T[] object)
Specified by:
toArray in interface Collection<E>

containsAll

public boolean containsAll(Collection<?> coll)
Specified by:
containsAll in interface Collection<E>

removeAll

public boolean removeAll(Collection<?> coll)
Specified by:
removeAll in interface Collection<E>

retainAll

public boolean retainAll(Collection<?> coll)
Specified by:
retainAll in interface Collection<E>

equals

public boolean equals(Object object)
Specified by:
equals in interface Collection<E>
Overrides:
equals in class Object

hashCode

public int hashCode()
Specified by:
hashCode in interface Collection<E>
Overrides:
hashCode in class Object

toString

public String toString()
Overrides:
toString in class Object


Copyright © 2001–2013 The Apache Software Foundation. All rights reserved.