package com.smartandroid.sa.tag.nodes; import com.smartandroid.sa.tag.helper.StringUtil; import com.smartandroid.sa.tag.helper.Validate; /** * A {@code <!DOCTYPE>} node. */ public class DocumentType extends Node { // todo: quirk mode from publicId and systemId /** * Create a new doctype element. * * @param name * the doctype's name * @param publicId * the doctype's public ID * @param systemId * the doctype's system ID * @param baseUri * the doctype's base URI */ public DocumentType(String name, String publicId, String systemId, String baseUri) { super(baseUri); Validate.notEmpty(name); attr("name", name); attr("publicId", publicId); attr("systemId", systemId); } @Override public String nodeName() { return "#doctype"; } @Override void outerHtmlHead(StringBuilder accum, int depth, Document.OutputSettings out) { accum.append("<!DOCTYPE ").append(attr("name")); if (!StringUtil.isBlank(attr("publicId"))) accum.append(" PUBLIC \"").append(attr("publicId")).append('"'); if (!StringUtil.isBlank(attr("systemId"))) accum.append(" \"").append(attr("systemId")).append('"'); accum.append('>'); } @Override void outerHtmlTail(StringBuilder accum, int depth, Document.OutputSettings out) { } }