package org.whole.lang.html.visitors; import nu.validator.htmlparser.sax.HtmlSerializer; import org.whole.lang.model.IEntity; import org.whole.lang.operations.IPrettyPrintWriter; import org.whole.lang.operations.PrettyPrinterOperation; import org.whole.lang.templates.ModelTemplate; import org.whole.lang.util.BehaviorUtils; import org.whole.lang.visitors.GenericIdentityVisitor; import org.whole.lang.xml.util.SaxHandlerBuilderOperation; public class HtmlPrettyPrinterVisitor extends GenericIdentityVisitor { protected final IPrettyPrintWriter out; public HtmlPrettyPrinterVisitor(PrettyPrinterOperation operation) { out = operation.getPrettyPrintWriter(); } public void visit(IEntity entity) { IEntity xhtmlDocument = BehaviorUtils.apply("whole:org.whole.lang.html:HTML5Semantics#toXHtml", entity); HtmlSerializer serializer = new HtmlSerializer(out.asWriter()); SaxHandlerBuilderOperation sbop = new SaxHandlerBuilderOperation(serializer, serializer, "http://www.w3.org/1999/xhtml"); if (xhtmlDocument != null) new ModelTemplate(xhtmlDocument).apply(sbop); }; }