@Override
        public T next() {
            if (state == State.NOT_DETERMINED && !hasNext()) {
                throw new NoSuchElementException(NEXT_INVOKED_BUT_HAS_NEXT_WAS_FALSE);
            }

            if (state == State.NO_NEXT) {
                throw new NoSuchElementException(NEXT_INVOKED_BUT_HAS_NEXT_WAS_FALSE);
            }

            state = State.NOT_DETERMINED;

            try {
                return mapper.apply(resultSet);
            } catch (final SQLException ex) {
                throw new SpeedmentException(ex);
            }
        }
{@inheritDoc}
<p>
After the termination of this method, the state will be either
{@link State#NEXT} or {@link State#NO_NEXT}. Calling this method
multiple times in a row has no effect. The state will remain the
same.

@return  if there are more rows
runtime-parent/runtime-core/src/main/java/com/speedment/runtime/core/internal/stream/InternalStreamUtil.java