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 OutputStream
currentStream
protected boolean
outputLocked
-
Constructor Summary
Constructors Constructor Description CachedOutputStream()
CachedOutputStream(long threshold)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description 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()
long
getThreshold()
int
hashCode()
void
holdTempFile()
static boolean
isThresholdSysPropSet()
Returns true if the default threshold is explicitly set via CachedConstants.THRESHOLD_SYS_PROPvoid
lockOutputStream()
Locks the output stream to prevent additional writes, but maintains a pointer to it so an InputStream can be obtainedprotected 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
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(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, long limit)
void
writeCacheTo(StringBuilder out, String charsetName)
void
writeCacheTo(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 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 interfaceFlushable
- Overrides:
flush
in classOutputStream
- 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 interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Overrides:
close
in 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:
write
in classOutputStream
- Throws:
IOException
-
write
public void write(byte[] b) throws IOException
- Overrides:
write
in classOutputStream
- Throws:
IOException
-
write
public void write(int b) throws IOException
- Specified by:
write
in 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)
-
-