code: public static <E> SynchronizedRichIterable<E> of(RichIterable<E> iterable, Object lock)
      {
          return new SynchronizedRichIterable<E>(iterable, lock);
      }
docs: This method will take a RichIterable and wrap it directly in a SynchronizedRichIterable. Additionally,
  a developer specifies which lock to use with the collection.