Class ConnectionAwareResultIterator<T>

  • All Implemented Interfaces:
    AutoCloseable, Iterable<T>, ResultIterator<T>

    public class ConnectionAwareResultIterator<T>
    extends Object
    implements ResultIterator<T>
    A ResultIterator wrapper that handles closing a connection. Also internally counts processed rows, mostly for the benefit of subclasses. Subclasses are used in iterators that are returned to the end users and are not implicitly managed by Cayenne.
    • Field Detail

      • rowCounter

        protected int rowCounter
    • Constructor Detail

      • ConnectionAwareResultIterator

        public ConnectionAwareResultIterator​(ResultIterator<T> delegate,
                                             Connection connection)
    • Method Detail

      • close

        public void close()
        Description copied from interface: ResultIterator
        Closes ResultIterator and associated ResultSet. This method must be called explicitly when the user is finished processing the records. Otherwise unused database resources will not be released properly.
        Specified by:
        close in interface AutoCloseable
        Specified by:
        close in interface ResultIterator<T>
      • doClose

        protected void doClose()
      • allRows

        public List<T> allRows()
        Description copied from interface: ResultIterator
        Returns all yet unread rows from ResultSet without closing it.
        Specified by:
        allRows in interface ResultIterator<T>
      • hasNextRow

        public boolean hasNextRow()
        Description copied from interface: ResultIterator
        Returns true if there is at least one more record that can be read from the iterator.
        Specified by:
        hasNextRow in interface ResultIterator<T>
      • nextRow

        public T nextRow()
        Description copied from interface: ResultIterator
        Returns the next result row that is, depending on the query, may be a scalar value, a DataRow, or an Object[] array containing a mix of scalars and DataRows.
        Specified by:
        nextRow in interface ResultIterator<T>
      • skipRow

        public void skipRow()
        Description copied from interface: ResultIterator
        Goes past current row. If the row is not needed, this may save some time on data conversion.
        Specified by:
        skipRow in interface ResultIterator<T>