package org.freehep.record.source; /** * Some methods useful when a record source is used in an interactive environment. * @version $Id: InteractiveRecordSource.java 8584 2006-08-10 23:06:37Z duns $ */ public interface InteractiveRecordSource { /** Test if there are more records available. Note that not all record sources know * how many records are available, so the fact that hasNext returns true should be * taken to mean that there <I>may</I> be more records available. Calling next() * may still result in a NoSuchRecordException even if hasNext() returns true. * @return <code>true</code> if there are (may be) more records available. */ boolean hasNext(); /** Test if a previous record is available. * If the record source does not allow moving backwards this will always return false. * @return true if a previous record is available. */ boolean hasPrevious(); /** Steps back to the previous record. * @throws NoSuchRecordException If no previous record is available. */ void previous() throws NoSuchRecordException; /** Skip a certain number of records. There is no gaurantee that this is more * efficient that reading all the intervening records. * @throws NoSuchRecordException If there are not enough records to skip * @param index The number of records to skip. Must be >= 0. */ void skip(int index) throws NoSuchRecordException; }