Package 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
  Modifier and Type | Field | Description
  --- | --- | ---
  `protected CompilerConfiguration` | `configuration` |

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `AbstractReaderSource​(CompilerConfiguration configuration)` |

- ## 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().
  `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, getURI`

- ## Field Details

  - ### configuration

    protected CompilerConfiguration configuration

- ## Constructor Details

  - ### AbstractReaderSource

    public AbstractReaderSource​(CompilerConfiguration configuration)

- ## Method Details

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