Package org.apache.cxf.io
Class CachedOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- org.apache.cxf.io.CachedOutputStream
-
- All Implemented Interfaces:
Closeable,Flushable,AutoCloseable
- Direct Known Subclasses:
CacheAndWriteOutputStream,WriteOnCloseOutputStream
public class CachedOutputStream extends OutputStream
-
-
Field Summary
Fields Modifier and Type Field Description protected OutputStreamcurrentStreamprotected booleanoutputLocked
-
Constructor Summary
Constructors Constructor Description CachedOutputStream()CachedOutputStream(long threshold)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()static voidcopyStream(InputStream in, OutputStream out, int bufferSize)voidderegisterCallback(CachedOutputStreamCallback cb)protected voiddoClose()Perform any actions required on stream closure (handle response etc.)protected voiddoFlush()Perform any actions required on stream flush (freeze headers, reset output stream ... etc.)booleanequals(Object obj)voidflush()byte[]getBytes()List<CachedOutputStreamCallback>getCallbacks()InputStreamgetInputStream()OutputStreamgetOut()FilegetTempFile()longgetThreshold()inthashCode()voidholdTempFile()static booleanisThresholdSysPropSet()Returns true if the default threshold is explicitly set via CachedConstants.THRESHOLD_SYS_PROPvoidlockOutputStream()Locks the output stream to prevent additional writes, but maintains a pointer to it so an InputStream can be obtainedprotected voidonWrite()protected voidpostClose()Perform any actions required after stream closure (close the other related stream etc.)voidregisterCallback(CachedOutputStreamCallback cb)voidreleaseTempFileHold()voidresetOut(OutputStream out, boolean copyOldContent)Replace the original stream with the new one, optionally copying the content of the old one into the new one.voidsetCipherTransformation(String cipherTransformation)static voidsetDefaultCipherTransformation(String n)static voidsetDefaultMaxSize(long l)static voidsetDefaultThreshold(int i)voidsetMaxSize(long maxSize)voidsetOutputDir(File outputDir)voidsetThreshold(long threshold)longsize()StringtoString()voidwrite(byte[] b)voidwrite(byte[] b, int off, int len)voidwrite(int b)voidwriteCacheTo(OutputStream out)voidwriteCacheTo(StringBuilder out)voidwriteCacheTo(StringBuilder out, long limit)voidwriteCacheTo(StringBuilder out, String charsetName)voidwriteCacheTo(StringBuilder out, String charsetName, long limit)-
Methods inherited from class java.io.OutputStream
nullOutputStream
-
-
-
-
Field Detail
-
outputLocked
protected boolean outputLocked
-
currentStream
protected OutputStream currentStream
-
-
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 IOExceptionPerform any actions required on stream flush (freeze headers, reset output stream ... etc.)- Throws:
IOException
-
flush
public void flush() throws IOException- Specified by:
flushin interfaceFlushable- Overrides:
flushin classOutputStream- Throws:
IOException
-
doClose
protected void doClose() throws IOExceptionPerform any actions required on stream closure (handle response etc.)- Throws:
IOException
-
postClose
protected void postClose() throws IOExceptionPerform any actions required after stream closure (close the other related stream etc.)- Throws:
IOException
-
lockOutputStream
public void lockOutputStream() throws IOExceptionLocks 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:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classOutputStream- Throws:
IOException
-
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 streamcopyOldContent- 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 long 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, long limit) throws IOException
- Throws:
IOException
-
writeCacheTo
public void writeCacheTo(StringBuilder out, String charsetName, long 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
-
onWrite
protected void onWrite() throws IOException- Throws:
IOException
-
write
public void write(byte[] b, int off, int len) throws IOException- Overrides:
writein classOutputStream- Throws:
IOException
-
write
public void write(byte[] b) throws IOException- Overrides:
writein classOutputStream- Throws:
IOException
-
write
public void write(int b) throws IOException- Specified by:
writein classOutputStream- Throws:
IOException
-
getTempFile
public File getTempFile()
-
getInputStream
public InputStream getInputStream() throws IOException
- Throws:
IOException
-
setOutputDir
public void setOutputDir(File outputDir) throws IOException
- Throws:
IOException
-
getThreshold
public long getThreshold()
-
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)
-
isThresholdSysPropSet
public static boolean isThresholdSysPropSet()
Returns true if the default threshold is explicitly set via CachedConstants.THRESHOLD_SYS_PROP
-
setDefaultCipherTransformation
public static void setDefaultCipherTransformation(String n)
-
-