code: public void addResults(final String id, final ITimeSyncedIterator iterator) {
      if (id == null) {
        throw new IllegalArgumentException("Missing ID");
      }
      if (iterator == null) {
        throw new IllegalArgumentException("Iterator cannot be null");
      }
      results.put(id, iterator);
    }
docs: Adds a sub query result object to the iterator.
  TODO - accept a proper object, not a map
  @param id The ID of source iterator.
  @param iterator The source iterator.
  @throws IllegalArgumentException if the object is missing required data