org.codehaus.groovy.control.io

## Class AbstractReaderSource

- java.lang.Object
- - org.codehaus.groovy.control.io.AbstractReaderSource

All Implemented Interfaces:
  HasCleanup, ReaderSource

Direct Known Subclasses:
  FileReaderSource, InputStreamReaderSource, StringReaderSource, URLReaderSource

    public abstract class AbstractReaderSource
    extends java.lang.Object
    implements ReaderSource

For ReaderSources that can choose a parent class, a base that provides common functionality.

### Field Summary

Fields
`protected CompilerConfiguration` `configuration`

### Constructor Summary

Constructors
Constructor and Description
`AbstractReaderSource(CompilerConfiguration configuration)`

### Method Summary

Methods
`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.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.codehaus.groovy.control.io.ReaderSource

`getReader`

### Field Detail

#### configuration

    protected CompilerConfiguration configuration

### Constructor Detail

#### AbstractReaderSource

    public AbstractReaderSource(CompilerConfiguration configuration)

### Method Detail

#### canReopenSource

    public boolean canReopenSource()

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

Specified by:
  `canReopenSource` in interface `ReaderSource`
Returns:
  true if the resource can be reopened for reading

#### getLine

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

Specified by:
  `getLine` in interface `ReaderSource`
Parameters:
  `lineNumber` - the number of the line of interest
  `janitor` - helper to clean up afterwards
Returns:
  the line of interest

#### cleanup

    public void cleanup()

Cleans up any cached resources used by getLine().

Specified by:
  `cleanup` in interface `HasCleanup`
Specified by:
  `cleanup` in interface `ReaderSource`