/* * Title: FastPage * Description: * * This software is published under the terms of the OpenSymphony Software * License version 1.1, of which a copy has been included with this * distribution in the LICENSE.txt file. */ package com.opensymphony.module.sitemesh.parser; import com.opensymphony.module.sitemesh.SitemeshBuffer; import java.io.IOException; import java.io.Writer; import java.util.Iterator; import java.util.Map; /** * HTMLPage implementation produced by FastPageParser. * * @author <a href="mailto:salaman@qoretech.com">Victor Salaman</a> * @version $Revision: 1.5 $ */ public final class FastPage extends AbstractHTMLPage { private String head; private String body; public FastPage(SitemeshBuffer sitemeshBuffer, Map sitemeshProps, Map htmlProps, Map metaProps, Map bodyProps, String title, String head, String body, boolean frameSet) { super(sitemeshBuffer); this.head = head; this.body = body; setFrameSet(frameSet); addAttributeList("", htmlProps); addAttributeList("page.", sitemeshProps); addAttributeList("body.", bodyProps); addAttributeList("meta.", metaProps); addProperty("title", title); } public void writeHead(Writer out) throws IOException { out.write(head); } public void writeBody(Writer out) throws IOException { out.write(body); } private void addAttributeList(String prefix, Map attributes) { if(attributes == null || attributes.isEmpty()) return; String name, value; Iterator i = attributes.entrySet().iterator(); while (i.hasNext()) { Map.Entry entry = (Map.Entry) i.next(); name = (String) entry.getKey(); value = (String) entry.getValue(); if(value != null && value.trim().length() > 0) { addProperty(prefix + name, value); } } } public String getBody() { return body; } public String getHead() { return head; } }