org.apache.coyote.http11.upgrade

## Class AbstractServletInputStream

- java.lang.Object
- - java.io.InputStream
  - - javax.servlet.ServletInputStream
    - - org.apache.coyote.http11.upgrade.AbstractServletInputStream

- All Implemented Interfaces:
    Closeable, AutoCloseable
  Direct Known Subclasses:
    AprServletInputStream, BioServletInputStream, NioServletInputStream

      public abstract class AbstractServletInputStream
      extends ServletInputStream

  Implements the new Servlet 3.1 methods for `ServletInputStream`.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static StringManager` | `sm`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractServletInputStream()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()`
    `protected abstract void` | `doClose()`
    `protected abstract boolean` | `doIsReady()`
    `protected abstract int` | `doRead(boolean block, byte[] b, int off, int len)` Abstract method to be overridden by concrete implementations.
    `protected boolean` | `isCloseRequired()`
    `boolean` | `isFinished()` New Servlet 3.1 method.
    `boolean` | `isReady()` New Servlet 3.1 method.
    `protected void` | `onAllDataRead()`
    `protected void` | `onDataAvailable()`
    `protected void` | `onError(Throwable t)`
    `int` | `read()`
    `int` | `read(byte[] b, int off, int len)`
    `int` | `readLine(byte[] b, int off, int len)` Reads the input stream, one line at a time.
    `void` | `setReadListener(ReadListener listener)` New Servlet 3.1 method.

    - ### Methods inherited from class java.io.InputStream

      `available, mark, markSupported, read, reset, skip`

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

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

- - ### Field Detail

    - #### sm

          protected static final StringManager sm

  - ### Constructor Detail

    - #### AbstractServletInputStream

          public AbstractServletInputStream()

  - ### Method Detail

    - #### isFinished

          public final boolean isFinished()

      New Servlet 3.1 method.

    - #### isReady

          public final boolean isReady()

      New Servlet 3.1 method.

    - #### setReadListener

          public final void setReadListener(ReadListener listener)

      New Servlet 3.1 method.

    - #### read

          public final int read()
                         throws IOException

      Specified by:
        `read` in class `InputStream`
      Throws:
        `IOException`

    - #### readLine

          public final int readLine(byte[] b,
                     int off,
                     int len)
                             throws IOException

      Description copied from class: `javax.servlet.ServletInputStream`
      Reads the input stream, one line at a time. Starting at an offset, reads bytes into an array, until it reads a certain number of bytes or reaches a newline character, which it reads into the array as well.

      This method returns -1 if it reaches the end of the input stream before reading the maximum number of bytes.

      Overrides:
        `readLine` in class `ServletInputStream`
      Parameters:
        `b` - an array of bytes into which data is read
        `off` - an integer specifying the character at which this method begins reading
        `len` - an integer specifying the maximum number of bytes to read
      Returns:
        an integer specifying the actual number of bytes read, or -1 if the end of the stream is reached
      Throws:
        `IOException` - if an input or output exception has occurred

    - #### read

          public final int read(byte[] b,
                 int off,
                 int len)
                         throws IOException

      Overrides:
        `read` in class `InputStream`
      Throws:
        `IOException`

    - #### close

          public void close()
                     throws IOException

      Specified by:
        `close` in interface `Closeable`
      Specified by:
        `close` in interface `AutoCloseable`
      Overrides:
        `close` in class `InputStream`
      Throws:
        `IOException`

    - #### onAllDataRead

          protected final void onAllDataRead()
                                      throws IOException

      Throws:
        `IOException`

    - #### onDataAvailable

          protected final void onDataAvailable()
                                        throws IOException

      Throws:
        `IOException`

    - #### onError

          protected final void onError(Throwable t)

    - #### isCloseRequired

          protected final boolean isCloseRequired()

    - #### doIsReady

          protected abstract boolean doIsReady()
                                        throws IOException

      Throws:
        `IOException`

    - #### doRead

          protected abstract int doRead(boolean block,
                   byte[] b,
                   int off,
                   int len)
                                 throws IOException

      Abstract method to be overridden by concrete implementations. The base class will ensure that there are no concurrent calls to this method for the same socket.
      Throws:
        `IOException`

    - #### doClose

          protected abstract void doClose()
                                   throws IOException

      Throws:
        `IOException`

Copyright © 2000-2017 Apache Software Foundation. All Rights Reserved.