Can you add a constructor directly for the iterator? Or does that conflict (signature wise) with the var args constructor?

I would suggest something like
```
public <T extends Iterator<?>, Serializable> CollectionDataSource(T iterator) {
    ...
}
```