package org.civilian.internal;
import java.io.FilterOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import org.civilian.Response;
import org.civilian.response.ResponseStreamInterceptor;
public class TestResponseStreamInterceptor implements ResponseStreamInterceptor
{
public TestResponseStreamInterceptor(String header)
{
header_ = header.getBytes();
}
@Override public ResponseStreamInterceptor prepareStreamIntercept(Response response)
{
return intercept ? this : null;
}
@Override public OutputStream intercept(OutputStream out) throws IOException
{
if (!lazy)
{
out.write(header_);
return out;
}
else
return new LazyStream(out);
}
private class LazyStream extends FilterOutputStream
{
public LazyStream(OutputStream out)
{
super(out);
}
@Override public void flush() throws IOException
{
out.write(header_);
super.flush();
}
}
public boolean intercept = true;
public boolean lazy = false;
private byte[] header_;
}