org.apache.cxf.io
Class CachedOutputStream

java.lang.Object
  extended by java.io.OutputStream
      extended by org.apache.cxf.io.CachedOutputStream
All Implemented Interfaces:
Closeable, Flushable
Direct Known Subclasses:
CacheAndWriteOutputStream, JBIConduitOutputStream, JBIDestinationOutputStream, WriteOnCloseOutputStream

public class CachedOutputStream
extends OutputStream


Field Summary
protected  OutputStream currentStream
           
protected  boolean outputLocked
           
 
Constructor Summary
CachedOutputStream()
           
CachedOutputStream(long threshold)
           
CachedOutputStream(PipedInputStream stream)
           
 
Method Summary
 void close()
           
static void copyStream(InputStream in, OutputStream out, int bufferSize)
           
 void deregisterCallback(CachedOutputStreamCallback 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 ...
 boolean equals(Object obj)
           
 void flush()
           
 byte[] getBytes()
           
 List<CachedOutputStreamCallback> getCallbacks()
           
 InputStream getInputStream()
           
 OutputStream getOut()
           
 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(CachedOutputStreamCallback cb)
           
 void releaseTempFileHold()
           
 void resetOut(OutputStream out, boolean copyOldContent)
          Replace the original stream with the new one, optionally copying the content of the old one into the new one.
 void setOutputDir(File outputDir)
           
 void setThreshold(long threshold)
           
 int size()
           
 String toString()
           
 void write(byte[] b)
           
 void write(byte[] b, int off, int len)
           
 void write(int b)
           
 void writeCacheTo(OutputStream out)
           
 void writeCacheTo(StringBuilder out)
           
 void writeCacheTo(StringBuilder out, int limit)
           
 void writeCacheTo(StringBuilder out, String charsetName)
           
 void writeCacheTo(StringBuilder out, String charsetName, int limit)
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

outputLocked

protected boolean outputLocked

currentStream

protected OutputStream currentStream
Constructor Detail

CachedOutputStream

public CachedOutputStream(PipedInputStream stream)
                   throws IOException
Throws:
IOException

CachedOutputStream

public CachedOutputStream()

CachedOutputStream

public CachedOutputStream(long threshold)
Method Detail

holdTempFile

public void holdTempFile()

releaseTempFileHold

public void releaseTempFileHold()

registerCallback

public void registerCallback(CachedOutputStreamCallback cb)

deregisterCallback

public void deregisterCallback(CachedOutputStreamCallback cb)

getCallbacks

public List<CachedOutputStreamCallback> 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
Overrides:
flush in class OutputStream
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 Closeable
Overrides:
close in class OutputStream
Throws:
IOException

equals

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

resetOut

public void resetOut(OutputStream 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

copyStream

public static void copyStream(InputStream in,
                              OutputStream out,
                              int bufferSize)
                       throws IOException
Throws:
IOException

size

public int size()

getBytes

public byte[] getBytes()
                throws IOException
Throws:
IOException

writeCacheTo

public void writeCacheTo(OutputStream out)
                  throws IOException
Throws:
IOException

writeCacheTo

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

writeCacheTo

public void writeCacheTo(StringBuilder out,
                         String charsetName,
                         int limit)
                  throws IOException
Throws:
IOException

writeCacheTo

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

writeCacheTo

public void writeCacheTo(StringBuilder out,
                         String charsetName)
                  throws IOException
Throws:
IOException

getOut

public OutputStream 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(byte[] b,
                  int off,
                  int len)
           throws IOException
Overrides:
write in class OutputStream
Throws:
IOException

write

public void write(byte[] b)
           throws IOException
Overrides:
write in class OutputStream
Throws:
IOException

write

public void write(int b)
           throws IOException
Specified by:
write in class OutputStream
Throws:
IOException

getTempFile

public File getTempFile()

getInputStream

public InputStream getInputStream()
                           throws IOException
Throws:
IOException

setOutputDir

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

setThreshold

public void setThreshold(long threshold)


Apache CXF