It's different -- the one in EB only works in InputFormats that recycle the object, and mutate it. This works on InputFormats that keep returning new (possibly immutable) objects.

Something can probably be reused, that's why there's a todo.