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

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
See Also:
  • Field Details

  • Constructor Details

    • TransformedCollection

      protected TransformedCollection(Collection<E> collection, 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:
      collection - the collection to decorate, must not be null
      transformer - the transformer to use for conversion, must not be null
      Throws:
      NullPointerException - if collection or transformer is null
  • Method Details

    • 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:
      NullPointerException - if collection or transformer is null
      Since:
      4.0
    • 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:
      NullPointerException - if collection or transformer is null
      Since:
      4.0
    • 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>
    • 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
    • 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