/*
* Copyright (c) 2008. All rights reserved.
*/
package ro.isdc.wro.http.support;
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.ServletOutputStream;
/**
* Delegating implementation of {@link javax.servlet.ServletOutputStream}.
*
* @author Alex Objelean
* @created Created on Nov 14, 2008
*/
public class DelegatingServletOutputStream extends ServletOutputStream {
/**
* Target {@link OutputStream} object.
*/
private final OutputStream targetStream;
/**
* Create a DelegatingServletOutputStream for the given target stream.
*
* @param targetStream
* the target stream (never <code>null</code>)
*/
public DelegatingServletOutputStream(final OutputStream targetStream) {
if (targetStream == null) {
throw new IllegalArgumentException("Target OutputStream must not be null");
}
this.targetStream = targetStream;
}
/**
* Return the underlying target stream (never <code>null</code>).
*/
public final OutputStream getTargetStream() {
return this.targetStream;
}
/**
* {@inheritDoc}
*/
@Override
public void write(final int b) throws IOException {
this.targetStream.write(b);
}
/**
* {@inheritDoc}
*/
@Override
public void flush() throws IOException {
super.flush();
this.targetStream.flush();
}
/**
* {@inheritDoc}
*/
@Override
public void close() throws IOException {
super.close();
this.targetStream.close();
}
}