# Class UnmodifiableBoundedCollection<E>

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

Type Parameters:
  `E` - the type of elements in this collection

All Implemented Interfaces:
  `Serializable`, `Iterable<E>`, `Collection<E>`, `BoundedCollection<E>`, `Unmodifiable`

public final class UnmodifiableBoundedCollection<E> extends AbstractCollectionDecorator<E> implements BoundedCollection<E>, Unmodifiable
`UnmodifiableBoundedCollection` decorates another `BoundedCollection` to ensure it can't be altered.

If a BoundedCollection is first wrapped in some other collection decorator, such as synchronized or predicated, the BoundedCollection methods are no longer accessible. The factory on this class will attempt to retrieve the bounded nature by examining the package scope variables.

This class is Serializable from Commons Collections 3.1.

Attempts to modify it will result in an UnsupportedOperationException.

Since:
  3.0
See Also:
  - Serialized Form

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `add(E object)`
  `boolean`
  `addAll(Collection<? extends E> coll)`
  `void`
  `clear()`
  `protected BoundedCollection<E>`
  `decorated()`
  Gets the collection being decorated.
  `boolean`
  `isFull()`
  Returns true if this collection is full and no new elements can be added.
  `Iterator<E>`
  `iterator()`
  `int`
  `maxSize()`
  Gets the maximum size of the collection (the bound).
  `boolean`
  `remove(Object object)`
  `boolean`
  `removeAll(Collection<?> coll)`
  `boolean`
  `removeIf(Predicate<? super E> filter)`
  `boolean`
  `retainAll(Collection<?> coll)`
  `static <E> BoundedCollection<E>`
  `unmodifiableBoundedCollection(Collection<? extends E> collection)`
  Factory method to create an unmodifiable bounded collection.
  `static <E> BoundedCollection<E>`
  `unmodifiableBoundedCollection(BoundedCollection<? extends E> coll)`
  Factory method to create an unmodifiable bounded collection.

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

  `contains, containsAll, isEmpty, setCollection, size, toArray, toArray, toString`

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

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

  ### Methods inherited from interface java.util.Collection

  `contains, containsAll, equals, hashCode, isEmpty, parallelStream, size, spliterator, stream, toArray, toArray`

  ### Methods inherited from interface java.lang.Iterable

  `forEach`

- ## Method Details

  - ### unmodifiableBoundedCollection

    public static <E> BoundedCollection<E> unmodifiableBoundedCollection(BoundedCollection<? extends E> coll)
    Factory method to create an unmodifiable bounded collection.
    Type Parameters:
      `E` - the type of the elements in the collection
    Parameters:
      `coll` - the `BoundedCollection` to decorate, must not be null
    Returns:
      a new unmodifiable bounded collection
    Throws:
      `NullPointerException` - if `coll` is `null`
    Since:
      4.0

  - ### unmodifiableBoundedCollection

    public static <E> BoundedCollection<E> unmodifiableBoundedCollection(Collection<? extends E> collection)
    Factory method to create an unmodifiable bounded collection.

    This method is capable of drilling down through up to 1000 other decorators to find a suitable BoundedCollection.

    Type Parameters:
      `E` - the type of the elements in the collection
    Parameters:
      `collection` - the `BoundedCollection` to decorate, must not be null
    Returns:
      a new unmodifiable bounded collection
    Throws:
      `NullPointerException` - if coll is null
      `IllegalArgumentException` - if coll is not a `BoundedCollection`
    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>`

  - ### clear

    public void clear()
    Specified by:
      `clear` in interface `Collection<E>`
    Overrides:
      `clear` in class `AbstractCollectionDecorator<E>`

  - ### decorated

    protected BoundedCollection<E> decorated()
    Description copied from class: `AbstractCollectionDecorator`
    Gets the collection being decorated. All access to the decorated collection goes via this method.
    Overrides:
      `decorated` in class `AbstractCollectionDecorator<E>`
    Returns:
      the decorated collection

  - ### isFull

    public boolean isFull()
    Description copied from interface: `BoundedCollection`
    Returns true if this collection is full and no new elements can be added.
    Specified by:
      `isFull` in interface `BoundedCollection<E>`
    Returns:
      `true` if the collection is full.

  - ### iterator

    public Iterator<E> iterator()
    Specified by:
      `iterator` in interface `Collection<E>`
    Specified by:
      `iterator` in interface `Iterable<E>`
    Overrides:
      `iterator` in class `AbstractCollectionDecorator<E>`

  - ### maxSize

    public int maxSize()
    Description copied from interface: `BoundedCollection`
    Gets the maximum size of the collection (the bound).
    Specified by:
      `maxSize` in interface `BoundedCollection<E>`
    Returns:
      the maximum number of elements the collection can hold.

  - ### remove

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

  - ### removeAll

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

  - ### removeIf

    public boolean removeIf(Predicate<? super E> filter)
    Specified by:
      `removeIf` in interface `Collection<E>`
    Overrides:
      `removeIf` in class `AbstractCollectionDecorator<E>`
    Since:
      4.4

  - ### retainAll

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