org.apache.xmlbeans.impl.common

## Class PushedInputStream

- java.lang.Object
- - java.io.InputStream
  - - org.apache.xmlbeans.impl.common.PushedInputStream

- All Implemented Interfaces:
    Closeable, AutoCloseable
  Direct Known Subclasses:
    ReaderInputStream

      public abstract class PushedInputStream
      extends InputStream

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected byte[]` | `buf`
    `protected int` | `marklimit`
    `protected int` | `markpos`
    `protected OutputStream` | `outputStream`
    `protected int` | `readpos`
    `protected int` | `writepos`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PushedInputStream()`
    `PushedInputStream(int size)`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `available()`
    `protected abstract void` | `fill(int requestedBytes)` Called when more bytes need to be written into this stream (as an OutputStream).
    `OutputStream` | `getOutputStream()` Returns the linked output stream.
    `void` | `mark(int readlimit)`
    `boolean` | `markSupported()`
    `int` | `read()`
    `int` | `read(byte[] b, int off, int len)` Read characters into a portion of an array, reading from the underlying stream at most once if necessary.
    `void` | `reset()`
    `long` | `skip(long n)`

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

      `close, read`

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

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

- - ### Field Detail

    - #### buf

          protected byte[] buf

    - #### writepos

          protected int writepos

    - #### readpos

          protected int readpos

    - #### markpos

          protected int markpos

    - #### marklimit

          protected int marklimit

    - #### outputStream

          protected OutputStream outputStream

  - ### Constructor Detail

    - #### PushedInputStream

          public PushedInputStream()

    - #### PushedInputStream

          public PushedInputStream(int size)

  - ### Method Detail

    - #### fill

          protected abstract void fill(int requestedBytes)
                                throws IOException

      Called when more bytes need to be written into this stream (as an OutputStream). This method must write at least one byte if the stream is not ended, and it must not write any bytes if the stream has already ended.
      Throws:
        `IOException`

    - #### getOutputStream

          public final OutputStream getOutputStream()

      Returns the linked output stream. This is the output stream that must be written to whenever the fill method is called.

    - #### read

          public int read()
                   throws IOException

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

    - #### read

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

      Read characters into a portion of an array, reading from the underlying stream at most once if necessary.
      Overrides:
        `read` in class `InputStream`
      Throws:
        `IOException`

    - #### skip

          public long skip(long n)
                    throws IOException

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

    - #### available

          public int available()

      Overrides:
        `available` in class `InputStream`

    - #### mark

          public void mark(int readlimit)

      Overrides:
        `mark` in class `InputStream`

    - #### reset

          public void reset()
                     throws IOException

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

    - #### markSupported

          public boolean markSupported()

      Overrides:
        `markSupported` in class `InputStream`