## 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.

Version:
  $Id: ReaderSource.java 6778 2007-07-02 10:40:33Z glaforge $
Author:
  Chris Poirier

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().
`String` `getLine(int lineNumber, Janitor janitor)` Returns a line from the source, or null, if unavailable.
`Reader` `getReader()` Returns a new Reader on the underlying source object.

Method Detail

### getReader

    Reader getReader()
                     throws 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:
    `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

    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`

Copyright © 2003-2008 The Codehaus. All rights reserved.