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

Author:
  Chris Poirier

## Method Summary

Modifier and Type
Method
Description
`boolean`
`canReopenSource()`
Returns true if the source can be restarted (ie.
`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.
`URI`
`getURI()`
Returns a URI for this source.

## Method Details

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

### getURI

URI getURI()
Returns a URI for this source.

Since:
  2.3.0