org.apache.commons.collections4.collection

## Class TransformedCollection<E>

- java.lang.Object
- - org.apache.commons.collections4.collection.AbstractCollectionDecorator<E>
  - - org.apache.commons.collections4.collection.TransformedCollection<E>

- Type Parameters:
    `E` - the type of the elements in the collection
  All Implemented Interfaces:
    Serializable, Iterable<E>, Collection<E>
  Direct Known Subclasses:
    TransformedBag, TransformedList, TransformedQueue, TransformedSet

      public class TransformedCollection<E>
      extends AbstractCollectionDecorator<E>

  Decorates another `Collection` to transform objects that are added.

  The add methods are affected by this class. Thus objects must be removed or searched for using their transformed form. For example, if the transformation converts Strings to Integers, you must use the Integer form to remove objects.

  This class is Serializable from Commons Collections 3.1.

  Since:
    3.0
  Version:
    $Id: TransformedCollection.java 1479401 2013-05-05 21:51:47Z tn $
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Transformer<? super E,? extends E>` | `transformer` The transformer to use

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `TransformedCollection(Collection<E> coll, Transformer<? super E,? extends E> transformer)` Constructor that wraps (not copies).

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `add(E object)`
    `boolean` | `addAll(Collection<? extends E> coll)`
    `protected Collection<E>` | `transform(Collection<? extends E> coll)` Transforms a collection.
    `protected E` | `transform(E object)` Transforms an object.
    `static <E> TransformedCollection<E>` | `transformedCollection(Collection<E> collection, Transformer<? super E,? extends E> transformer)` Factory method to create a transforming collection that will transform existing contents of the specified collection.
    `static <E> TransformedCollection<E>` | `transformingCollection(Collection<E> coll, Transformer<? super E,? extends E> transformer)` Factory method to create a transforming collection.

    - ### Methods inherited from class org.apache.commons.collections4.collection.AbstractCollectionDecorator

      `clear, contains, containsAll, decorated, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, setCollection, size, toArray, toArray, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### transformer

          protected final Transformer<? super E,? extends E> transformer

      The transformer to use

  - ### Constructor Detail

    - #### TransformedCollection

          protected TransformedCollection(Collection<E> coll,
                               Transformer<? super E,? extends E> transformer)

      Constructor that wraps (not copies).

      If there are any elements already in the collection being decorated, they are NOT transformed.

      Parameters:
        `coll` - the collection to decorate, must not be null
        `transformer` - the transformer to use for conversion, must not be null
      Throws:
        `IllegalArgumentException` - if collection or transformer is null

  - ### Method Detail

    - #### transformingCollection

          public static <E> TransformedCollection<E> transformingCollection(Collection<E> coll,
                                                            Transformer<? super E,? extends E> transformer)

      Factory method to create a transforming collection.

      If there are any elements already in the collection being decorated, they are NOT transformed. Contrast this with `transformedCollection(Collection, Transformer)`.

      Type Parameters:
        `E` - the type of the elements in the collection
      Parameters:
        `coll` - the collection to decorate, must not be null
        `transformer` - the transformer to use for conversion, must not be null
      Returns:
        a new transformed collection
      Throws:
        `IllegalArgumentException` - if collection or transformer is null
      Since:
        4.0

    - #### transformedCollection

          public static <E> TransformedCollection<E> transformedCollection(Collection<E> collection,
                                                           Transformer<? super E,? extends E> transformer)

      Factory method to create a transforming collection that will transform existing contents of the specified collection.

      If there are any elements already in the collection being decorated, they will be transformed by this method. Contrast this with `transformingCollection(Collection, Transformer)`.

      Type Parameters:
        `E` - the type of the elements in the collection
      Parameters:
        `collection` - the collection to decorate, must not be null
        `transformer` - the transformer to use for conversion, must not be null
      Returns:
        a new transformed Collection
      Throws:
        `IllegalArgumentException` - if collection or transformer is null
      Since:
        4.0

    - #### transform

          protected E transform(E object)

      Transforms an object.

      The transformer itself may throw an exception if necessary.

      Parameters:
        `object` - the object to transform
      Returns:
        a transformed object

    - #### transform

          protected Collection<E> transform(Collection<? extends E> coll)

      Transforms a collection.

      The transformer itself may throw an exception if necessary.

      Parameters:
        `coll` - the collection to transform
      Returns:
        a transformed object

    - #### add

          public boolean add(E object)

      Specified by:
        `add` in interface `Collection<E>`
      Overrides:
        `add` in class `AbstractCollectionDecorator<E>`

    - #### addAll

          public boolean addAll(Collection<? extends E> coll)

      Specified by:
        `addAll` in interface `Collection<E>`
      Overrides:
        `addAll` in class `AbstractCollectionDecorator<E>`

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