Package org.apache.cxf.io

# Class CachedWriter

java.lang.Object
java.io.Writer
org.apache.cxf.io.CachedWriter

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

Direct Known Subclasses:
  `XSLTOutInterceptor.XSLTCachedWriter`

public class CachedWriter extends Writer

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected Writer`
  `currentStream`
  `protected boolean`
  `outputLocked`

  ### Fields inherited from class java.io.Writer

  `lock`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `CachedWriter()`
  `CachedWriter(long threshold)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `close()`
  `void`
  `deregisterCallback(CachedWriterCallback cb)`
  `protected void`
  `doClose()`
  Perform any actions required on stream closure (handle response etc.)
  `protected void`
  `doFlush()`
  Perform any actions required on stream flush (freeze headers, reset output stream ... etc.)
  `boolean`
  `equals(Object obj)`
  `void`
  `flush()`
  `List<CachedWriterCallback>`
  `getCallbacks()`
  `char[]`
  `getChars()`
  `Writer`
  `getOut()`
  `Reader`
  `getReader()`
  `File`
  `getTempFile()`
  `int`
  `hashCode()`
  `void`
  `holdTempFile()`
  `void`
  `lockOutputStream()`
  Locks the output stream to prevent additional writes, but maintains a pointer to it so an InputStream can be obtained
  `protected void`
  `onWrite()`
  `protected void`
  `postClose()`
  Perform any actions required after stream closure (close the other related stream etc.)
  `void`
  `registerCallback(CachedWriterCallback cb)`
  `void`
  `releaseTempFileHold()`
  `void`
  `resetOut(Writer out, boolean copyOldContent)`
  Replace the original stream with the new one, optionally copying the content of the old one into the new one.
  `void`
  `setCipherTransformation(String cipherTransformation)`
  `static void`
  `setDefaultCipherTransformation(String n)`
  `static void`
  `setDefaultMaxSize(long l)`
  `static void`
  `setDefaultThreshold(int i)`
  `void`
  `setMaxSize(long maxSize)`
  `void`
  `setOutputDir(File outputDir)`
  `void`
  `setThreshold(long threshold)`
  `long`
  `size()`
  `String`
  `toString()`
  `void`
  `write(char[] cbuf, int off, int len)`
  `void`
  `writeCacheTo(Writer out)`
  `void`
  `writeCacheTo(StringBuilder out)`
  `void`
  `writeCacheTo(StringBuilder out, long limit)`

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

  `append, append, append, nullWriter, write, write, write, write`

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

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### outputLocked

    protected boolean outputLocked

  - ### currentStream

    protected Writer currentStream

- ## Constructor Details

  - ### CachedWriter

    public CachedWriter()

  - ### CachedWriter

    public CachedWriter(long threshold)

- ## Method Details

  - ### holdTempFile

    public void holdTempFile()

  - ### releaseTempFileHold

    public void releaseTempFileHold()

  - ### registerCallback

    public void registerCallback(CachedWriterCallback cb)

  - ### deregisterCallback

    public void deregisterCallback(CachedWriterCallback cb)

  - ### getCallbacks

    public List<CachedWriterCallback> getCallbacks()

  - ### doFlush

    protected void doFlush() throws IOException
    Perform any actions required on stream flush (freeze headers, reset output stream ... etc.)
    Throws:
      `IOException`

  - ### flush

    public void flush() throws IOException
    Specified by:
      `flush` in interface `Flushable`
    Specified by:
      `flush` in class `Writer`
    Throws:
      `IOException`

  - ### doClose

    protected void doClose() throws IOException
    Perform any actions required on stream closure (handle response etc.)
    Throws:
      `IOException`

  - ### postClose

    protected void postClose() throws IOException
    Perform any actions required after stream closure (close the other related stream etc.)
    Throws:
      `IOException`

  - ### lockOutputStream

    public void lockOutputStream() throws IOException
    Locks the output stream to prevent additional writes, but maintains a pointer to it so an InputStream can be obtained
    Throws:
      `IOException`

  - ### close

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

  - ### equals

    public boolean equals(Object obj)
    Overrides:
      `equals` in class `Object`

  - ### resetOut

    public void resetOut(Writer out, boolean copyOldContent) throws IOException
    Replace the original stream with the new one, optionally copying the content of the old one into the new one. When with Attachment, needs to replace the xml writer stream with the stream used by AttachmentSerializer or copy the cached output stream to the "real" output stream, i.e. onto the wire.
    Parameters:
      `out` - the new output stream
      `copyOldContent` - flag indicating if the old content should be copied
    Throws:
      `IOException`

  - ### size

    public long size()

  - ### getChars

    public char[] getChars() throws IOException
    Throws:
      `IOException`

  - ### writeCacheTo

    public void writeCacheTo(Writer out) throws IOException
    Throws:
      `IOException`

  - ### writeCacheTo

    public void writeCacheTo(StringBuilder out, long limit) throws IOException
    Throws:
      `IOException`

  - ### writeCacheTo

    public void writeCacheTo(StringBuilder out) throws IOException
    Throws:
      `IOException`

  - ### getOut

    public Writer getOut()
    Returns:
      the underlying output stream

  - ### hashCode

    public int hashCode()
    Overrides:
      `hashCode` in class `Object`

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`

  - ### onWrite

    protected void onWrite() throws IOException
    Throws:
      `IOException`

  - ### write

    public void write(char[] cbuf, int off, int len) throws IOException
    Specified by:
      `write` in class `Writer`
    Throws:
      `IOException`

  - ### getTempFile

    public File getTempFile()

  - ### getReader

    public Reader getReader() throws IOException
    Throws:
      `IOException`

  - ### setOutputDir

    public void setOutputDir(File outputDir) throws IOException
    Throws:
      `IOException`

  - ### setThreshold

    public void setThreshold(long threshold)

  - ### setMaxSize

    public void setMaxSize(long maxSize)

  - ### setCipherTransformation

    public void setCipherTransformation(String cipherTransformation)

  - ### setDefaultMaxSize

    public static void setDefaultMaxSize(long l)

  - ### setDefaultThreshold

    public static void setDefaultThreshold(int i)

  - ### setDefaultCipherTransformation

    public static void setDefaultCipherTransformation(String n)