Package org.apache.cxf.io

# Class AbstractThresholdOutputStream

java.lang.Object
java.io.OutputStream
org.apache.cxf.io.AbstractWrappedOutputStream
org.apache.cxf.io.AbstractThresholdOutputStream

All Implemented Interfaces:
  `Closeable`, `Flushable`, `AutoCloseable`

public abstract class AbstractThresholdOutputStream extends AbstractWrappedOutputStream
Outputstream that will buffer a certain amount before writing anything to the underlying stream. When the threshold is reached, provides a callback point to allow the subclass to update headers, replace/set the output stream, etc... Also provides a callback for when the stream is closed without it reaching the threshold.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected LoadingByteArrayOutputStream`
  `buffer`
  `protected int`
  `threshold`

  ### Fields inherited from class org.apache.cxf.io.AbstractWrappedOutputStream

  `allowFlush, wrappedStream, written`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AbstractThresholdOutputStream(int threshold)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `close()`
  `abstract void`
  `thresholdNotReached()`
  `abstract void`
  `thresholdReached()`
  `void`
  `unBuffer()`
  `void`
  `write(byte[] b, int off, int len)`
  `void`
  `write(int b)`

  ### Methods inherited from class org.apache.cxf.io.AbstractWrappedOutputStream

  `allowFlush, flush, onFirstWrite, write`

  ### Methods inherited from class java.io.OutputStream

  `nullOutputStream`

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

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

- ## Field Details

  - ### threshold

    protected int threshold

  - ### buffer

    protected LoadingByteArrayOutputStream buffer

- ## Constructor Details

  - ### AbstractThresholdOutputStream

    public AbstractThresholdOutputStream(int threshold)

- ## Method Details

  - ### thresholdReached

    public abstract void thresholdReached() throws IOException
    Throws:
      `IOException`

  - ### thresholdNotReached

    public abstract void thresholdNotReached() throws IOException
    Throws:
      `IOException`

  - ### write

    public void write(byte[] b, int off, int len) throws IOException
    Overrides:
      `write` in class `AbstractWrappedOutputStream`
    Throws:
      `IOException`

  - ### write

    public void write(int b) throws IOException
    Overrides:
      `write` in class `AbstractWrappedOutputStream`
    Throws:
      `IOException`

  - ### unBuffer

    public void unBuffer() throws IOException
    Throws:
      `IOException`

  - ### close

    public void close() throws IOException
    Specified by:
      `close` in interface `AutoCloseable`
    Specified by:
      `close` in interface `Closeable`
    Overrides:
      `close` in class `AbstractWrappedOutputStream`
    Throws:
      `IOException`