// -----------------------------------------------------------------------
 @Override
 public Iterator<E> iterator() {
   return UnmodifiableIterator.unmodifiableIterator(decorated().iterator());
 }
 @Override
 public Iterator<E> descendingIterator() {
   return UnmodifiableIterator.unmodifiableIterator(decorated().descendingIterator());
 }