code: @Override
      public Iterator<URI> iterator()
      {
          return new Iterator<URI>()
          {
  
              private Iterator<Integer> keys = enclosures.keySet().iterator();
  
              private Iterator<URI> pending = null;
  
              private URI next = null;
  
              @Override
              public boolean hasNext()
              {
                  if ( next != null )
                  {
                      return true;
                  }
  
                  while ( ( pending == null ) || !pending.hasNext() )
                  {
                      if ( !keys.hasNext() )
                      {
                          return false;
                      }
                      pending = enclosures.get( keys.next() ).iterator();
                  }
  
                  next = pending.next();
                  return true;
              }
  
              @Override
              public URI next()
              {
                  if ( !hasNext() )
                  {
                      throw new NoSuchElementException();
                  }
                  URI returned = next;
                  next = null;
                  return returned;
              }
  
              @Override
              public void remove()
              {
                  pending.remove();
              }
  
          };
      }
docs: {@inheritDoc}