package com.opensymphony.module.sitemesh.parser; import com.opensymphony.module.sitemesh.SitemeshBuffer; import com.opensymphony.module.sitemesh.SitemeshBufferFragment; import com.opensymphony.module.sitemesh.SitemeshWriter; import com.opensymphony.module.sitemesh.html.util.CharArray; import com.opensymphony.module.sitemesh.html.rules.PageBuilder; import java.io.IOException; import java.io.Writer; /** * HTMLPage implementation that builds itself based on the incoming 'tag' and 'text' tokens fed to it from the * HTMLTagTokenizer. * * @see com.opensymphony.module.sitemesh.parser.HTMLPageParser * @see com.opensymphony.module.sitemesh.html.tokenizer.TagTokenizer * * @author Joe Walnes */ public class TokenizedHTMLPage extends AbstractHTMLPage implements PageBuilder { private SitemeshBufferFragment body; private SitemeshBufferFragment head; public TokenizedHTMLPage(SitemeshBuffer sitemeshBuffer) { super(sitemeshBuffer); addProperty("title", ""); } public void setBody(SitemeshBufferFragment body) { this.body = body; } public void setHead(SitemeshBufferFragment head) { this.head = head; } public void writeHead(Writer out) throws IOException { if (out instanceof SitemeshWriter) { ((SitemeshWriter) out).writeSitemeshBufferFragment(head); } else { head.writeTo(out); } } public void writeBody(Writer out) throws IOException { if (out instanceof SitemeshWriter) { ((SitemeshWriter) out).writeSitemeshBufferFragment(body); } else { body.writeTo(out); } } public String getHead() { return head.getStringContent(); } public String getBody() { return body.getStringContent(); } }