org.codehaus.groovy.control.io
Interface ReaderSource

All Superinterfaces:
HasCleanup
All Known Implementing Classes:
AbstractReaderSource, FileReaderSource, InputStreamReaderSource, StringReaderSource, URLReaderSource

public interface ReaderSource
extends HasCleanup

An interface for things that can supply (and potentially resupply) a Reader on a source stream.


Method Summary
 boolean canReopenSource()
          Returns true if the source can be restarted (ie. if getReader() will return non-null on subsequent calls.
 void cleanup()
          Cleans up any cached resources used by getLine().
 java.lang.String getLine(int lineNumber, Janitor janitor)
          Returns a line from the source, or null, if unavailable.
 java.io.Reader getReader()
          Returns a new Reader on the underlying source object.
 

Method Detail

getReader

java.io.Reader getReader()
                         throws java.io.IOException
Returns a new Reader on the underlying source object. Returns null if the source can't be reopened.

Returns:
the reader to the resource
Throws:
java.io.IOException - if there was an error opening for stream

canReopenSource

boolean canReopenSource()
Returns true if the source can be restarted (ie. if getReader() will return non-null on subsequent calls.

Returns:
true if the resource can be reopened for reading

getLine

java.lang.String getLine(int lineNumber,
                         Janitor janitor)
Returns a line from the source, or null, if unavailable. If you supply a Janitor, resources will be cached.

Parameters:
lineNumber - the number of the line of interest
janitor - helper to clean up afterwards
Returns:
the line of interest

cleanup

void cleanup()
Cleans up any cached resources used by getLine().

Specified by:
cleanup in interface HasCleanup