Class InterceptingOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- org.glassfish.jersey.jdk.connector.internal.InterceptingOutputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.io.Flushable
,java.lang.AutoCloseable
class InterceptingOutputStream extends java.io.OutputStream
A stream that invokesInterceptingOutputStream.FirstCallListener
when any operation is invoked.InterceptingOutputStream.FirstCallListener
is invoked only once in the stream lifetime.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static interface
InterceptingOutputStream.FirstCallListener
-
Field Summary
Fields Modifier and Type Field Description private InterceptingOutputStream.FirstCallListener
firstCallListener
private boolean
listenerInvoked
private java.io.OutputStream
wrappedStream
-
Constructor Summary
Constructors Constructor Description InterceptingOutputStream(java.io.OutputStream wrappedStream, InterceptingOutputStream.FirstCallListener firstCallListener)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
void
flush()
private void
tryInvokingListener()
void
write(byte[] b)
void
write(byte[] b, int off, int len)
void
write(int b)
-
-
-
Field Detail
-
wrappedStream
private final java.io.OutputStream wrappedStream
-
firstCallListener
private final InterceptingOutputStream.FirstCallListener firstCallListener
-
listenerInvoked
private volatile boolean listenerInvoked
-
-
Constructor Detail
-
InterceptingOutputStream
InterceptingOutputStream(java.io.OutputStream wrappedStream, InterceptingOutputStream.FirstCallListener firstCallListener)
-
-
Method Detail
-
write
public void write(byte[] b) throws java.io.IOException
- Overrides:
write
in classjava.io.OutputStream
- Throws:
java.io.IOException
-
write
public void write(byte[] b, int off, int len) throws java.io.IOException
- Overrides:
write
in classjava.io.OutputStream
- Throws:
java.io.IOException
-
flush
public void flush() throws java.io.IOException
- Specified by:
flush
in interfacejava.io.Flushable
- Overrides:
flush
in classjava.io.OutputStream
- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Overrides:
close
in classjava.io.OutputStream
- Throws:
java.io.IOException
-
write
public void write(int b) throws java.io.IOException
- Specified by:
write
in classjava.io.OutputStream
- Throws:
java.io.IOException
-
tryInvokingListener
private void tryInvokingListener()
-
-