# Class AbstractSortedBagDecorator<E>

java.lang.Object
org.apache.commons.collections4.collection.AbstractCollectionDecorator<E>
org.apache.commons.collections4.bag.AbstractBagDecorator<E>
org.apache.commons.collections4.bag.AbstractSortedBagDecorator<E>

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

All Implemented Interfaces:
  `Serializable`, `Iterable<E>`, `Collection<E>`, `Bag<E>`, `SortedBag<E>`

Direct Known Subclasses:
  `CollectionSortedBag`, `UnmodifiableSortedBag`

public abstract class AbstractSortedBagDecorator<E> extends AbstractBagDecorator<E> implements SortedBag<E>
Decorates another `SortedBag` to provide additional behavior.

Methods are forwarded directly to the decorated bag.

Since:
  3.0
See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `AbstractSortedBagDecorator()`
  Constructor only used in deserialization, do not use otherwise.
  `protected`
  `AbstractSortedBagDecorator(SortedBag<E> bag)`
  Constructor that wraps (not copies).

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Comparator<? super E>`
  `comparator()`
  Returns the comparator associated with this sorted set, or null if it uses its elements' natural ordering.
  `protected SortedBag<E>`
  `decorated()`
  Gets the bag being decorated.
  `E`
  `first()`
  Returns the first (lowest) member.
  `E`
  `last()`
  Returns the last (highest) member.

  ### Methods inherited from class org.apache.commons.collections4.bag.AbstractBagDecorator

  `add, equals, getCount, hashCode, remove, uniqueSet`

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

  `add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, removeAll, removeIf, retainAll, setCollection, size, toArray, toArray, toString`

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

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

  ### Methods inherited from interface org.apache.commons.collections4.Bag

  `add, add, containsAll, getCount, iterator, remove, remove, removeAll, retainAll, size, uniqueSet`

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

  `addAll, clear, contains, equals, hashCode, isEmpty, parallelStream, removeIf, spliterator, stream, toArray, toArray`

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

  `forEach`

- ## Constructor Details

  - ### AbstractSortedBagDecorator

    protected AbstractSortedBagDecorator()
    Constructor only used in deserialization, do not use otherwise.
    Since:
      3.1

  - ### AbstractSortedBagDecorator

    protected AbstractSortedBagDecorator(SortedBag<E> bag)
    Constructor that wraps (not copies).
    Parameters:
      `bag` - the bag to decorate, must not be null
    Throws:
      `NullPointerException` - if bag is null

- ## Method Details

  - ### comparator

    public Comparator<? super E> comparator()
    Description copied from interface: `SortedBag`
    Returns the comparator associated with this sorted set, or null if it uses its elements' natural ordering.
    Specified by:
      `comparator` in interface `SortedBag<E>`
    Returns:
      the comparator in use, or null if natural ordering

  - ### decorated

    protected SortedBag<E> decorated()
    Gets the bag being decorated.
    Overrides:
      `decorated` in class `AbstractBagDecorator<E>`
    Returns:
      the decorated bag

  - ### first

    public E first()
    Description copied from interface: `SortedBag`
    Returns the first (lowest) member.
    Specified by:
      `first` in interface `SortedBag<E>`
    Returns:
      the first element in the sorted bag

  - ### last

    public E last()
    Description copied from interface: `SortedBag`
    Returns the last (highest) member.
    Specified by:
      `last` in interface `SortedBag<E>`
    Returns:
      the last element in the sorted bag