com.opensymphony.module.sitemesh.filter
public class: Buffer [javadoc |
source]
java.lang.Object
com.opensymphony.module.sitemesh.filter.Buffer
When SiteMesh is activated for a request, the contents of the response are stored in this buffer, where they can
later be accessed as a parsed Page object.
- author:
Joe
- Walnes
- version:
$
- Revision: 1.1 $
Methods from java.lang.Object: |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Method from com.opensymphony.module.sitemesh.filter.Buffer Detail: |
public ServletOutputStream getOutputStream() {
if (bufferedStream == null) {
if (bufferedWriter != null) {
throw new IllegalStateException("response.getOutputStream() called after response.getWriter()");
}
bufferedStream = new FastByteArrayOutputStream();
exposedStream = new ServletOutputStream() {
public void write(int b) {
bufferedStream.write(b);
}
};
}
return exposedStream;
}
|
public PrintWriter getWriter() {
if (bufferedWriter == null) {
if (bufferedStream != null) {
throw new IllegalStateException("response.getWriter() called after response.getOutputStream()");
}
bufferedWriter = new CharArrayWriter(128);
exposedWriter = new PrintWriter(bufferedWriter);
}
return exposedWriter;
}
|
public boolean isUsingStream() {
return bufferedStream != null;
}
|
public Page parse() throws IOException {
if (bufferedWriter != null) {
return pageParser.parse(bufferedWriter.toCharArray());
} else if (bufferedStream != null) {
return pageParser.parse(TEXT_ENCODER.encode(bufferedStream.toByteArray(), encoding));
} else {
return pageParser.parse(new char[0]);
}
}
|