org.apache.commons.collections.list

## Class PredicatedList

- java.lang.Object
- - org.apache.commons.collections.collection.AbstractCollectionDecorator
  - - org.apache.commons.collections.collection.AbstractSerializableCollectionDecorator
    - - org.apache.commons.collections.collection.PredicatedCollection
      - - org.apache.commons.collections.list.PredicatedList

- All Implemented Interfaces:
    Serializable, Iterable, Collection, List

      public class PredicatedList
      extends PredicatedCollection
      implements List

  Decorates another `List` to validate that all additions match a specified predicate.

  This list exists to provide validation for the decorated list. It is normally created to decorate an empty list. If an object cannot be added to the list, an IllegalArgumentException is thrown.

  One usage would be to ensure that no null entries are added to the list.

      List list = PredicatedList.decorate(new ArrayList(), NotNullPredicate.INSTANCE);

  This class is Serializable from Commons Collections 3.1.

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

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected class` | `PredicatedList.PredicatedListIterator` Inner class Iterator for the PredicatedList

  - ### Field Summary

    - ### Fields inherited from class org.apache.commons.collections.collection.PredicatedCollection

      `predicate`

    - ### Fields inherited from class org.apache.commons.collections.collection.AbstractCollectionDecorator

      `collection`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `PredicatedList(List list, Predicate predicate)` Constructor that wraps (not copies).

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(int index, Object object)`
    `boolean` | `addAll(int index, Collection coll)`
    `static List` | `decorate(List list, Predicate predicate)` Factory method to create a predicated (validating) list.
    `Object` | `get(int index)`
    `protected List` | `getList()` Gets the list being decorated.
    `int` | `indexOf(Object object)`
    `int` | `lastIndexOf(Object object)`
    `ListIterator` | `listIterator()`
    `ListIterator` | `listIterator(int i)`
    `Object` | `remove(int index)`
    `Object` | `set(int index, Object object)`
    `List` | `subList(int fromIndex, int toIndex)`

    - ### Methods inherited from class org.apache.commons.collections.collection.PredicatedCollection

      `add, addAll, decorate, validate`

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

      `clear, contains, containsAll, equals, getCollection, 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

    - #### PredicatedList

          protected PredicatedList(List list,
                        Predicate predicate)

      Constructor that wraps (not copies).

      If there are any elements already in the list being decorated, they are validated.

      Parameters:
        `list` - the list to decorate, must not be null
        `predicate` - the predicate to use for validation, must not be null
      Throws:
        `IllegalArgumentException` - if list or predicate is null
        `IllegalArgumentException` - if the list contains invalid elements

  - ### Method Detail

    - #### decorate

          public static List decorate(List list,
                      Predicate predicate)

      Factory method to create a predicated (validating) list.

      If there are any elements already in the list being decorated, they are validated.

      Parameters:
        `list` - the list to decorate, must not be null
        `predicate` - the predicate to use for validation, must not be null
      Throws:
        `IllegalArgumentException` - if list or predicate is null
        `IllegalArgumentException` - if the list contains invalid elements

    - #### getList

          protected List getList()

      Gets the list being decorated.
      Returns:
        the decorated list

    - #### get

          public Object get(int index)

      Specified by:
        `get` in interface `List`

    - #### indexOf

          public int indexOf(Object object)

      Specified by:
        `indexOf` in interface `List`

    - #### lastIndexOf

          public int lastIndexOf(Object object)

      Specified by:
        `lastIndexOf` in interface `List`

    - #### remove

          public Object remove(int index)

      Specified by:
        `remove` in interface `List`

    - #### add

          public void add(int index,
                 Object object)

      Specified by:
        `add` in interface `List`

    - #### addAll

          public boolean addAll(int index,
                       Collection coll)

      Specified by:
        `addAll` in interface `List`

    - #### listIterator

          public ListIterator listIterator()

      Specified by:
        `listIterator` in interface `List`

    - #### listIterator

          public ListIterator listIterator(int i)

      Specified by:
        `listIterator` in interface `List`

    - #### set

          public Object set(int index,
                   Object object)

      Specified by:
        `set` in interface `List`

    - #### subList

          public List subList(int fromIndex,
                     int toIndex)

      Specified by:
        `subList` in interface `List`

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