Package org.apache.commons.io.input

# Class ObservableInputStream.Observer

java.lang.Object
org.apache.commons.io.input.ObservableInputStream.Observer

Direct Known Subclasses:
  `MessageDigestCalculatingInputStream.MessageDigestMaintainingObserver`, `MessageDigestInputStream.MessageDigestMaintainingObserver`, `TimestampedObserver`

Enclosing class:
  `ObservableInputStream`

public abstract static class ObservableInputStream.Observer extends Object
Abstracts observer callback for `ObservableInputStream`s.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Observer()`
  Constructs a new instance for subclasses.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `closed()`
  Called to indicate that the `ObservableInputStream` has been closed.
  `void`
  `data(byte[] buffer, int offset, int length)`
  Called to indicate that `InputStream.read(byte[])`, or `InputStream.read(byte[], int, int)` have been called, and are about to invoke data.
  `void`
  `data(int value)`
  Called to indicate, that `InputStream.read()` has been invoked on the `ObservableInputStream`, and will return a value.
  `void`
  `error(IOException exception)`
  Called to indicate that an error occurred on the underlying stream.
  `void`
  `finished()`
  Called to indicate that EOF has been seen on the underlying stream.

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

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

- ## Constructor Details

  - ### Observer

    public Observer()
    Constructs a new instance for subclasses.

- ## Method Details

  - ### closed

    public void closed() throws IOException
    Called to indicate that the `ObservableInputStream` has been closed.
    Throws:
      `IOException` - if an I/O error occurs.

  - ### data

    public void data(byte[] buffer, int offset, int length) throws IOException
    Called to indicate that `InputStream.read(byte[])`, or `InputStream.read(byte[], int, int)` have been called, and are about to invoke data.
    Parameters:
      `buffer` - The byte array, which has been passed to the read call, and where data has been stored.
      `offset` - The offset within the byte array, where data has been stored.
      `length` - The number of bytes, which have been stored in the byte array.
    Throws:
      `IOException` - if an I/O error occurs.

  - ### data

    public void data(int value) throws IOException
    Called to indicate, that `InputStream.read()` has been invoked on the `ObservableInputStream`, and will return a value.
    Parameters:
      `value` - The value, which is being returned. This will never be -1 (EOF), because, in that case, `finished()` will be invoked instead.
    Throws:
      `IOException` - if an I/O error occurs.

  - ### error

    public void error(IOException exception) throws IOException
    Called to indicate that an error occurred on the underlying stream.
    Parameters:
      `exception` - the exception to throw
    Throws:
      `IOException` - if an I/O error occurs.

  - ### finished

    public void finished() throws IOException
    Called to indicate that EOF has been seen on the underlying stream. This method may be called multiple times, if the reader keeps invoking either of the read methods, and they will consequently keep returning EOF.
    Throws:
      `IOException` - if an I/O error occurs.