You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by in...@apache.org on 2017/07/28 16:50:45 UTC

[36/50] [abbrv] hadoop git commit: HADOOP-11875. [JDK9] Adding a second copy of Hamlet without _ as a one-character identifier.

http://git-wip-us.apache.org/repos/asf/hadoop/blob/38c6fa5c/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/hamlet2/Hamlet.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/hamlet2/Hamlet.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/hamlet2/Hamlet.java
new file mode 100644
index 0000000..05e1b79
--- /dev/null
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/hamlet2/Hamlet.java
@@ -0,0 +1,30557 @@
+/**
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+// Generated by HamletGen. Do NOT edit!
+package org.apache.hadoop.yarn.webapp.hamlet2;
+import static java.util.EnumSet.of;
+import static org.apache.hadoop.yarn.webapp.hamlet2.HamletImpl.EOpt.ENDTAG;
+import static org.apache.hadoop.yarn.webapp.hamlet2.HamletImpl.EOpt.INLINE;
+import static org.apache.hadoop.yarn.webapp.hamlet2.HamletImpl.EOpt.PRE;
+
+import java.io.PrintWriter;
+import java.util.EnumSet;
+
+import org.apache.hadoop.classification.InterfaceAudience;
+import org.apache.hadoop.yarn.webapp.SubView;
+
+@InterfaceAudience.LimitedPrivate({"YARN", "MapReduce"})
+public class Hamlet extends HamletImpl implements HamletSpec._Html {
+  public Hamlet(PrintWriter out, int nestLevel, boolean wasInline) {
+    super(out, nestLevel, wasInline);
+  }
+
+  static EnumSet<EOpt> opt(boolean endTag, boolean inline, boolean pre) {
+    EnumSet<EOpt> opts = of(ENDTAG);
+    if (!endTag) opts.remove(ENDTAG);
+    if (inline) opts.add(INLINE);
+    if (pre) opts.add(PRE);
+    return opts;
+  }
+
+  public class HTML<T extends __> extends EImp<T> implements HamletSpec.HTML {
+    public HTML(String name, T parent, EnumSet<EOpt> opts) {
+      super(name, parent, opts);
+    }
+
+    @Override
+    public HTML<T> $lang(String value) {
+      addAttr("lang", value);
+      return this;
+    }
+
+    @Override
+    public HTML<T> $dir(Dir value) {
+      addAttr("dir", value);
+      return this;
+    }
+
+    @Override
+    public HEAD<HTML<T>> head() {
+      closeAttrs();
+      return head_(this, false);
+    }
+
+    @Override
+    public BODY<HTML<T>> body() {
+      closeAttrs();
+      return body_(this, false);
+    }
+
+    @Override
+    public BODY<HTML<T>> body(String selector) {
+      return setSelector(body(), selector);
+    }
+
+    @Override
+    public BASE<HTML<T>> base() {
+      closeAttrs();
+      return base_(this, false);
+    }
+
+    @Override
+    public HTML<T> base(String href) {
+      return base().$href(href).__();
+    }
+
+    @Override
+    public TITLE<HTML<T>> title() {
+      closeAttrs();
+      return title_(this, false);
+    }
+
+    @Override
+    public HTML<T> title(String cdata) {
+      return title().__(cdata).__();
+    }
+
+    @Override
+    public STYLE<HTML<T>> style() {
+      closeAttrs();
+      return style_(this, false);
+    }
+
+    @Override
+    public HTML<T> style(Object... lines) {
+      return style().$type("text/css").__(lines).__();
+    }
+
+    @Override
+    public LINK<HTML<T>> link() {
+      closeAttrs();
+      return link_(this, false);
+    }
+
+    @Override
+    public HTML<T> link(String href) {
+      return setLinkHref(link(), href).__();
+    }
+
+    @Override
+    public META<HTML<T>> meta() {
+      closeAttrs();
+      return meta_(this, false);
+    }
+
+    @Override
+    public HTML<T> meta(String name, String content) {
+      return meta().$name(name).$content(content).__();
+    }
+
+    @Override
+    public HTML<T> meta_http(String header, String content) {
+      return meta().$http_equiv(header).$content(content).__();
+    }
+
+    @Override
+    public SCRIPT<HTML<T>> script() {
+      closeAttrs();
+      return script_(this, false);
+    }
+
+    @Override
+    public HTML<T> script(String src) {
+      return setScriptSrc(script(), src).__();
+    }
+
+    @Override
+    public OBJECT<HTML<T>> object() {
+      closeAttrs();
+      return object_(this, true);
+    }
+
+    @Override
+    public OBJECT<HTML<T>> object(String selector) {
+      return setSelector(object(), selector);
+    }
+
+    @Override
+    public TABLE<HTML<T>> table() {
+      closeAttrs();
+      return table_(this, false);
+    }
+
+    @Override
+    public TABLE<HTML<T>> table(String selector) {
+      return setSelector(table(), selector);
+    }
+
+    @Override
+    public HTML<T> address(String cdata) {
+      return address().__(cdata).__();
+    }
+
+    @Override
+    public ADDRESS<HTML<T>> address() {
+      closeAttrs();
+      return address_(this, false);
+    }
+
+    @Override
+    public P<HTML<T>> p(String selector) {
+      return setSelector(p(), selector);
+    }
+
+    @Override
+    public P<HTML<T>> p() {
+      closeAttrs();
+      return p_(this, false);
+    }
+
+    @Override
+    public HTML<T> __(Class<? extends SubView> cls) {
+      _v(cls);
+      return this;
+    }
+
+    @Override
+    public HR<HTML<T>> hr() {
+      closeAttrs();
+      return hr_(this, false);
+    }
+
+    @Override
+    public HTML<T> hr(String selector) {
+      return setSelector(hr(), selector).__();
+    }
+
+    @Override
+    public DL<HTML<T>> dl(String selector) {
+      return setSelector(dl(), selector);
+    }
+
+    @Override
+    public DL<HTML<T>> dl() {
+      closeAttrs();
+      return dl_(this, false);
+    }
+
+    @Override
+    public DIV<HTML<T>> div(String selector) {
+      return setSelector(div(), selector);
+    }
+
+    @Override
+    public DIV<HTML<T>> div() {
+      closeAttrs();
+      return div_(this, false);
+    }
+
+    @Override
+    public BLOCKQUOTE<HTML<T>> blockquote() {
+      closeAttrs();
+      return blockquote_(this, false);
+    }
+
+    @Override
+    public BLOCKQUOTE<HTML<T>> bq() {
+      closeAttrs();
+      return blockquote_(this, false);
+    }
+
+    @Override
+    public HTML<T> h1(String cdata) {
+      return h1().__(cdata).__();
+    }
+
+    @Override
+    public H1<HTML<T>> h1() {
+      closeAttrs();
+      return h1_(this, false);
+    }
+
+    @Override
+    public HTML<T> h1(String selector, String cdata) {
+      return setSelector(h1(), selector).__(cdata).__();
+    }
+
+    @Override
+    public HTML<T> h2(String cdata) {
+      return h2().__(cdata).__();
+    }
+
+    @Override
+    public H2<HTML<T>> h2() {
+      closeAttrs();
+      return h2_(this, false);
+    }
+
+    @Override
+    public HTML<T> h2(String selector, String cdata) {
+      return setSelector(h2(), selector).__(cdata).__();
+    }
+
+    @Override
+    public H3<HTML<T>> h3() {
+      closeAttrs();
+      return h3_(this, false);
+    }
+
+    @Override
+    public HTML<T> h3(String cdata) {
+      return h3().__(cdata).__();
+    }
+
+    @Override
+    public HTML<T> h3(String selector, String cdata) {
+      return setSelector(h3(), selector).__(cdata).__();
+    }
+
+    @Override
+    public H4<HTML<T>> h4() {
+      closeAttrs();
+      return h4_(this, false);
+    }
+
+    @Override
+    public HTML<T> h4(String cdata) {
+      return h4().__(cdata).__();
+    }
+
+    @Override
+    public HTML<T> h4(String selector, String cdata) {
+      return setSelector(h4(), selector).__(cdata).__();
+    }
+
+    @Override
+    public H5<HTML<T>> h5() {
+      closeAttrs();
+      return h5_(this, false);
+    }
+
+    @Override
+    public HTML<T> h5(String cdata) {
+      return h5().__(cdata).__();
+    }
+
+    @Override
+    public HTML<T> h5(String selector, String cdata) {
+      return setSelector(h5(), selector).__(cdata).__();
+    }
+
+    @Override
+    public H6<HTML<T>> h6() {
+      closeAttrs();
+      return h6_(this, false);
+    }
+
+    @Override
+    public HTML<T> h6(String cdata) {
+      return h6().__(cdata).__();
+    }
+
+    @Override
+    public HTML<T> h6(String selector, String cdata) {
+      return setSelector(h6(), selector).__(cdata).__();
+    }
+
+    @Override
+    public UL<HTML<T>> ul() {
+      closeAttrs();
+      return ul_(this, false);
+    }
+
+    @Override
+    public UL<HTML<T>> ul(String selector) {
+      return setSelector(ul(), selector);
+    }
+
+    @Override
+    public OL<HTML<T>> ol() {
+      closeAttrs();
+      return ol_(this, false);
+    }
+
+    @Override
+    public OL<HTML<T>> ol(String selector) {
+      return setSelector(ol(), selector);
+    }
+
+    @Override
+    public PRE<HTML<T>> pre() {
+      closeAttrs();
+      return pre_(this, false);
+    }
+
+    @Override
+    public PRE<HTML<T>> pre(String selector) {
+      return setSelector(pre(), selector);
+    }
+
+    @Override
+    public FORM<HTML<T>> form() {
+      closeAttrs();
+      return form_(this, false);
+    }
+
+    @Override
+    public FORM<HTML<T>> form(String selector) {
+      return setSelector(form(), selector);
+    }
+
+    @Override
+    public FIELDSET<HTML<T>> fieldset() {
+      closeAttrs();
+      return fieldset_(this, false);
+    }
+
+    @Override
+    public FIELDSET<HTML<T>> fieldset(String selector) {
+      return setSelector(fieldset(), selector);
+    }
+
+    @Override
+    public INS<HTML<T>> ins() {
+      closeAttrs();
+      return ins_(this, true);
+    }
+
+    @Override
+    public HTML<T> ins(String cdata) {
+      return ins().__(cdata).__();
+    }
+
+    @Override
+    public DEL<HTML<T>> del() {
+      closeAttrs();
+      return del_(this, true);
+    }
+
+    @Override
+    public HTML<T> del(String cdata) {
+      return del().__(cdata).__();
+    }
+  }
+
+  private <T extends __> HEAD<T> head_(T e, boolean inline) {
+    return new HEAD<T>("head", e, opt(true, inline, false)); }
+
+  private <T extends __> BODY<T> body_(T e, boolean inline) {
+    return new BODY<T>("body", e, opt(true, inline, false)); }
+
+  public class SCRIPT<T extends __> extends EImp<T> implements HamletSpec.SCRIPT {
+    public SCRIPT(String name, T parent, EnumSet<EOpt> opts) {
+      super(name, parent, opts);
+    }
+
+    @Override
+    public SCRIPT<T> $type(String value) {
+      addAttr("type", value);
+      return this;
+    }
+
+    @Override
+    public SCRIPT<T> $src(String value) {
+      addAttr("src", value);
+      return this;
+    }
+
+    @Override
+    public SCRIPT<T> $charset(String value) {
+      addAttr("charset", value);
+      return this;
+    }
+
+    @Override
+    public SCRIPT<T> $defer(String value) {
+      addAttr("defer", value);
+      return this;
+    }
+
+    @Override
+    public SCRIPT<T> __(Object... lines) {
+      _p(false, lines);
+      return this;
+    }
+  }
+
+  public class STYLE<T extends __> extends EImp<T> implements HamletSpec.STYLE {
+    public STYLE(String name, T parent, EnumSet<EOpt> opts) {
+      super(name, parent, opts);
+    }
+
+    @Override
+    public STYLE<T> $type(String value) {
+      addAttr("type", value);
+      return this;
+    }
+
+    @Override
+    public STYLE<T> $media(EnumSet<Media> value) {
+      addMediaAttr("media", value);
+      return this;
+    }
+
+    @Override
+    public STYLE<T> $title(String value) {
+      addAttr("title", value);
+      return this;
+    }
+
+    @Override
+    public STYLE<T> $lang(String value) {
+      addAttr("lang", value);
+      return this;
+    }
+
+    @Override
+    public STYLE<T> $dir(Dir value) {
+      addAttr("dir", value);
+      return this;
+    }
+
+    @Override
+    public STYLE<T> __(Object... lines) {
+      _p(false, lines);
+      return this;
+    }
+  }
+
+  public class META<T extends __> extends EImp<T> implements HamletSpec.META {
+    public META(String name, T parent, EnumSet<EOpt> opts) {
+      super(name, parent, opts);
+    }
+
+    @Override
+    public META<T> $http_equiv(String value) {
+      addAttr("http-equiv", value);
+      return this;
+    }
+
+    @Override
+    public META<T> $name(String value) {
+      addAttr("name", value);
+      return this;
+    }
+
+    @Override
+    public META<T> $content(String value) {
+      addAttr("content", value);
+      return this;
+    }
+
+    @Override
+    public META<T> $lang(String value) {
+      addAttr("lang", value);
+      return this;
+    }
+
+    @Override
+    public META<T> $dir(Dir value) {
+      addAttr("dir", value);
+      return this;
+    }
+  }
+
+  public class BASE<T extends __> extends EImp<T> implements HamletSpec.BASE {
+    public BASE(String name, T parent, EnumSet<EOpt> opts) {
+      super(name, parent, opts);
+    }
+
+    @Override
+    public BASE<T> $href(String value) {
+      addAttr("href", value);
+      return this;
+    }
+  }
+
+  public class TITLE<T extends __> extends EImp<T> implements HamletSpec.TITLE {
+    public TITLE(String name, T parent, EnumSet<EOpt> opts) {
+      super(name, parent, opts);
+    }
+
+    @Override
+    public TITLE<T> $lang(String value) {
+      addAttr("lang", value);
+      return this;
+    }
+
+    @Override
+    public TITLE<T> $dir(Dir value) {
+      addAttr("dir", value);
+      return this;
+    }
+
+    @Override
+    public TITLE<T> __(Object... lines) {
+      _p(true, lines);
+      return this;
+    }
+
+    @Override
+    public TITLE<T> _r(Object... lines) {
+      _p(false, lines);
+      return this;
+    }
+  }
+
+  public class HEAD<T extends __> extends EImp<T> implements HamletSpec.HEAD {
+    public HEAD(String name, T parent, EnumSet<EOpt> opts) {
+      super(name, parent, opts);
+    }
+
+    @Override
+    public HEAD<T> $lang(String value) {
+      addAttr("lang", value);
+      return this;
+    }
+
+    @Override
+    public HEAD<T> $dir(Dir value) {
+      addAttr("dir", value);
+      return this;
+    }
+
+    @Override
+    public BASE<HEAD<T>> base() {
+      closeAttrs();
+      return base_(this, false);
+    }
+
+    @Override
+    public HEAD<T> base(String href) {
+      return base().$href(href).__();
+    }
+
+    @Override
+    public TITLE<HEAD<T>> title() {
+      closeAttrs();
+      return title_(this, false);
+    }
+
+    @Override
+    public HEAD<T> title(String cdata) {
+      return title().__(cdata).__();
+    }
+
+    @Override
+    public STYLE<HEAD<T>> style() {
+      closeAttrs();
+      return style_(this, false);
+    }
+
+    @Override
+    public HEAD<T> style(Object... lines) {
+      return style().$type("text/css").__(lines).__();
+    }
+
+    @Override
+    public LINK<HEAD<T>> link() {
+      closeAttrs();
+      return link_(this, false);
+    }
+
+    @Override
+    public HEAD<T> link(String href) {
+      return setLinkHref(link(), href).__();
+    }
+
+    @Override
+    public META<HEAD<T>> meta() {
+      closeAttrs();
+      return meta_(this, false);
+    }
+
+    @Override
+    public HEAD<T> meta(String name, String content) {
+      return meta().$name(name).$content(content).__();
+    }
+
+    @Override
+    public HEAD<T> meta_http(String header, String content) {
+      return meta().$http_equiv(header).$content(content).__();
+    }
+
+    @Override
+    public SCRIPT<HEAD<T>> script() {
+      closeAttrs();
+      return script_(this, false);
+    }
+
+    @Override
+    public HEAD<T> script(String src) {
+      return setScriptSrc(script(), src).__();
+    }
+
+    @Override
+    public OBJECT<HEAD<T>> object() {
+      closeAttrs();
+      return object_(this, true);
+    }
+
+    @Override
+    public OBJECT<HEAD<T>> object(String selector) {
+      return setSelector(object(), selector);
+    }
+  }
+
+  private <T extends __> BASE<T> base_(T e, boolean inline) {
+    return new BASE<T>("base", e, opt(false, inline, false)); }
+
+  private <T extends __> TITLE<T> title_(T e, boolean inline) {
+    return new TITLE<T>("title", e, opt(true, inline, false)); }
+
+  public class TD<T extends __> extends EImp<T> implements HamletSpec.TD {
+    public TD(String name, T parent, EnumSet<EOpt> opts) {
+      super(name, parent, opts);
+    }
+
+    @Override
+    public TD<T> $headers(String value) {
+      addAttr("headers", value);
+      return this;
+    }
+
+    @Override
+    public TD<T> $scope(Scope value) {
+      addAttr("scope", value);
+      return this;
+    }
+
+    @Override
+    public TD<T> $rowspan(int value) {
+      addAttr("rowspan", value);
+      return this;
+    }
+
+    @Override
+    public TD<T> $colspan(int value) {
+      addAttr("colspan", value);
+      return this;
+    }
+
+    @Override
+    public TD<T> $id(String value) {
+      addAttr("id", value);
+      return this;
+    }
+
+    @Override
+    public TD<T> $class(String value) {
+      addAttr("class", value);
+      return this;
+    }
+
+    @Override
+    public TD<T> $title(String value) {
+      addAttr("title", value);
+      return this;
+    }
+
+    @Override
+    public TD<T> $style(String value) {
+      addAttr("style", value);
+      return this;
+    }
+
+    @Override
+    public TD<T> $lang(String value) {
+      addAttr("lang", value);
+      return this;
+    }
+
+    @Override
+    public TD<T> $dir(Dir value) {
+      addAttr("dir", value);
+      return this;
+    }
+
+    @Override
+    public TD<T> $onclick(String value) {
+      addAttr("onclick", value);
+      return this;
+    }
+
+    @Override
+    public TD<T> $ondblclick(String value) {
+      addAttr("ondblclick", value);
+      return this;
+    }
+
+    @Override
+    public TD<T> $onmousedown(String value) {
+      addAttr("onmousedown", value);
+      return this;
+    }
+
+    @Override
+    public TD<T> $onmouseup(String value) {
+      addAttr("onmouseup", value);
+      return this;
+    }
+
+    @Override
+    public TD<T> $onmouseover(String value) {
+      addAttr("onmouseover", value);
+      return this;
+    }
+
+    @Override
+    public TD<T> $onmousemove(String value) {
+      addAttr("onmousemove", value);
+      return this;
+    }
+
+    @Override
+    public TD<T> $onmouseout(String value) {
+      addAttr("onmouseout", value);
+      return this;
+    }
+
+    @Override
+    public TD<T> $onkeypress(String value) {
+      addAttr("onkeypress", value);
+      return this;
+    }
+
+    @Override
+    public TD<T> $onkeydown(String value) {
+      addAttr("onkeydown", value);
+      return this;
+    }
+
+    @Override
+    public TD<T> $onkeyup(String value) {
+      addAttr("onkeyup", value);
+      return this;
+    }
+
+    @Override
+    public TABLE<TD<T>> table() {
+      closeAttrs();
+      return table_(this, false);
+    }
+
+    @Override
+    public TABLE<TD<T>> table(String selector) {
+      return setSelector(table(), selector);
+    }
+
+    @Override
+    public TD<T> address(String cdata) {
+      return address().__(cdata).__();
+    }
+
+    @Override
+    public ADDRESS<TD<T>> address() {
+      closeAttrs();
+      return address_(this, false);
+    }
+
+    @Override
+    public P<TD<T>> p(String selector) {
+      return setSelector(p(), selector);
+    }
+
+    @Override
+    public P<TD<T>> p() {
+      closeAttrs();
+      return p_(this, false);
+    }
+
+    @Override
+    public TD<T> __(Class<? extends SubView> cls) {
+      _v(cls);
+      return this;
+    }
+
+    @Override
+    public HR<TD<T>> hr() {
+      closeAttrs();
+      return hr_(this, false);
+    }
+
+    @Override
+    public TD<T> hr(String selector) {
+      return setSelector(hr(), selector).__();
+    }
+
+    @Override
+    public DL<TD<T>> dl(String selector) {
+      return setSelector(dl(), selector);
+    }
+
+    @Override
+    public DL<TD<T>> dl() {
+      closeAttrs();
+      return dl_(this, false);
+    }
+
+    @Override
+    public DIV<TD<T>> div(String selector) {
+      return setSelector(div(), selector);
+    }
+
+    @Override
+    public DIV<TD<T>> div() {
+      closeAttrs();
+      return div_(this, false);
+    }
+
+    @Override
+    public BLOCKQUOTE<TD<T>> blockquote() {
+      closeAttrs();
+      return blockquote_(this, false);
+    }
+
+    @Override
+    public BLOCKQUOTE<TD<T>> bq() {
+      closeAttrs();
+      return blockquote_(this, false);
+    }
+
+    @Override
+    public TD<T> h1(String cdata) {
+      return h1().__(cdata).__();
+    }
+
+    @Override
+    public H1<TD<T>> h1() {
+      closeAttrs();
+      return h1_(this, false);
+    }
+
+    @Override
+    public TD<T> h1(String selector, String cdata) {
+      return setSelector(h1(), selector).__(cdata).__();
+    }
+
+    @Override
+    public TD<T> h2(String cdata) {
+      return h2().__(cdata).__();
+    }
+
+    @Override
+    public H2<TD<T>> h2() {
+      closeAttrs();
+      return h2_(this, false);
+    }
+
+    @Override
+    public TD<T> h2(String selector, String cdata) {
+      return setSelector(h2(), selector).__(cdata).__();
+    }
+
+    @Override
+    public H3<TD<T>> h3() {
+      closeAttrs();
+      return h3_(this, false);
+    }
+
+    @Override
+    public TD<T> h3(String cdata) {
+      return h3().__(cdata).__();
+    }
+
+    @Override
+    public TD<T> h3(String selector, String cdata) {
+      return setSelector(h3(), selector).__(cdata).__();
+    }
+
+    @Override
+    public H4<TD<T>> h4() {
+      closeAttrs();
+      return h4_(this, false);
+    }
+
+    @Override
+    public TD<T> h4(String cdata) {
+      return h4().__(cdata).__();
+    }
+
+    @Override
+    public TD<T> h4(String selector, String cdata) {
+      return setSelector(h4(), selector).__(cdata).__();
+    }
+
+    @Override
+    public H5<TD<T>> h5() {
+      closeAttrs();
+      return h5_(this, false);
+    }
+
+    @Override
+    public TD<T> h5(String cdata) {
+      return h5().__(cdata).__();
+    }
+
+    @Override
+    public TD<T> h5(String selector, String cdata) {
+      return setSelector(h5(), selector).__(cdata).__();
+    }
+
+    @Override
+    public H6<TD<T>> h6() {
+      closeAttrs();
+      return h6_(this, false);
+    }
+
+    @Override
+    public TD<T> h6(String cdata) {
+      return h6().__(cdata).__();
+    }
+
+    @Override
+    public TD<T> h6(String selector, String cdata) {
+      return setSelector(h6(), selector).__(cdata).__();
+    }
+
+    @Override
+    public UL<TD<T>> ul() {
+      closeAttrs();
+      return ul_(this, false);
+    }
+
+    @Override
+    public UL<TD<T>> ul(String selector) {
+      return setSelector(ul(), selector);
+    }
+
+    @Override
+    public OL<TD<T>> ol() {
+      closeAttrs();
+      return ol_(this, false);
+    }
+
+    @Override
+    public OL<TD<T>> ol(String selector) {
+      return setSelector(ol(), selector);
+    }
+
+    @Override
+    public PRE<TD<T>> pre() {
+      closeAttrs();
+      return pre_(this, false);
+    }
+
+    @Override
+    public PRE<TD<T>> pre(String selector) {
+      return setSelector(pre(), selector);
+    }
+
+    @Override
+    public FORM<TD<T>> form() {
+      closeAttrs();
+      return form_(this, false);
+    }
+
+    @Override
+    public FORM<TD<T>> form(String selector) {
+      return setSelector(form(), selector);
+    }
+
+    @Override
+    public FIELDSET<TD<T>> fieldset() {
+      closeAttrs();
+      return fieldset_(this, false);
+    }
+
+    @Override
+    public FIELDSET<TD<T>> fieldset(String selector) {
+      return setSelector(fieldset(), selector);
+    }
+
+    @Override
+    public TD<T> __(Object... lines) {
+      _p(true, lines);
+      return this;
+    }
+
+    @Override
+    public TD<T> _r(Object... lines) {
+      _p(false, lines);
+      return this;
+    }
+
+    @Override
+    public B<TD<T>> b() {
+      closeAttrs();
+      return b_(this, true);
+    }
+
+    @Override
+    public TD<T> b(String cdata) {
+      return b().__(cdata).__();
+    }
+
+    @Override
+    public TD<T> b(String selector, String cdata) {
+      return setSelector(b(), selector).__(cdata).__();
+    }
+
+    @Override
+    public I<TD<T>> i() {
+      closeAttrs();
+      return i_(this, true);
+    }
+
+    @Override
+    public TD<T> i(String cdata) {
+      return i().__(cdata).__();
+    }
+
+    @Override
+    public TD<T> i(String selector, String cdata) {
+      return setSelector(i(), selector).__(cdata).__();
+    }
+
+    @Override
+    public SMALL<TD<T>> small() {
+      closeAttrs();
+      return small_(this, true);
+    }
+
+    @Override
+    public TD<T> small(String cdata) {
+      return small().__(cdata).__();
+    }
+
+    @Override
+    public TD<T> small(String selector, String cdata) {
+      return setSelector(small(), selector).__(cdata).__();
+    }
+
+    @Override
+    public TD<T> em(String cdata) {
+      return em().__(cdata).__();
+    }
+
+    @Override
+    public EM<TD<T>> em() {
+      closeAttrs();
+      return em_(this, true);
+    }
+
+    @Override
+    public TD<T> em(String selector, String cdata) {
+      return setSelector(em(), selector).__(cdata).__();
+    }
+
+    @Override
+    public STRONG<TD<T>> strong() {
+      closeAttrs();
+      return strong_(this, true);
+    }
+
+    @Override
+    public TD<T> strong(String cdata) {
+      return strong().__(cdata).__();
+    }
+
+    @Override
+    public TD<T> strong(String selector, String cdata) {
+      return setSelector(strong(), selector).__(cdata).__();
+    }
+
+    @Override
+    public DFN<TD<T>> dfn() {
+      closeAttrs();
+      return dfn_(this, true);
+    }
+
+    @Override
+    public TD<T> dfn(String cdata) {
+      return dfn().__(cdata).__();
+    }
+
+    @Override
+    public TD<T> dfn(String selector, String cdata) {
+      return setSelector(dfn(), selector).__(cdata).__();
+    }
+
+    @Override
+    public CODE<TD<T>> code() {
+      closeAttrs();
+      return code_(this, true);
+    }
+
+    @Override
+    public TD<T> code(String cdata) {
+      return code().__(cdata).__();
+    }
+
+    @Override
+    public TD<T> code(String selector, String cdata) {
+      return setSelector(code(), selector).__(cdata).__();
+    }
+
+    @Override
+    public TD<T> samp(String cdata) {
+      return samp().__(cdata).__();
+    }
+
+    @Override
+    public SAMP<TD<T>> samp() {
+      closeAttrs();
+      return samp_(this, true);
+    }
+
+    @Override
+    public TD<T> samp(String selector, String cdata) {
+      return setSelector(samp(), selector).__(cdata).__();
+    }
+
+    @Override
+    public KBD<TD<T>> kbd() {
+      closeAttrs();
+      return kbd_(this, true);
+    }
+
+    @Override
+    public TD<T> kbd(String cdata) {
+      return kbd().__(cdata).__();
+    }
+
+    @Override
+    public TD<T> kbd(String selector, String cdata) {
+      return setSelector(kbd(), selector).__(cdata).__();
+    }
+
+    @Override
+    public VAR<TD<T>> var() {
+      closeAttrs();
+      return var_(this, true);
+    }
+
+    @Override
+    public TD<T> var(String cdata) {
+      return var().__(cdata).__();
+    }
+
+    @Override
+    public TD<T> var(String selector, String cdata) {
+      return setSelector(var(), selector).__(cdata).__();
+    }
+
+    @Override
+    public CITE<TD<T>> cite() {
+      closeAttrs();
+      return cite_(this, true);
+    }
+
+    @Override
+    public TD<T> cite(String cdata) {
+      return cite().__(cdata).__();
+    }
+
+    @Override
+    public TD<T> cite(String selector, String cdata) {
+      return setSelector(cite(), selector).__(cdata).__();
+    }
+
+    @Override
+    public ABBR<TD<T>> abbr() {
+      closeAttrs();
+      return abbr_(this, true);
+    }
+
+    @Override
+    public TD<T> abbr(String cdata) {
+      return abbr().__(cdata).__();
+    }
+
+    @Override
+    public TD<T> abbr(String selector, String cdata) {
+      return setSelector(abbr(), selector).__(cdata).__();
+    }
+
+    @Override
+    public A<TD<T>> a() {
+      closeAttrs();
+      return a_(this, true);
+    }
+
+    @Override
+    public A<TD<T>> a(String selector) {
+      return setSelector(a(), selector);
+    }
+
+    @Override
+    public TD<T> a(String href, String anchorText) {
+      return a().$href(href).__(anchorText).__();
+    }
+
+    @Override
+    public TD<T> a(String selector, String href, String anchorText) {
+      return setSelector(a(), selector).$href(href).__(anchorText).__();
+    }
+
+    @Override
+    public IMG<TD<T>> img() {
+      closeAttrs();
+      return img_(this, true);
+    }
+
+    @Override
+    public TD<T> img(String src) {
+      return img().$src(src).__();
+    }
+
+    @Override
+    public OBJECT<TD<T>> object() {
+      closeAttrs();
+      return object_(this, true);
+    }
+
+    @Override
+    public OBJECT<TD<T>> object(String selector) {
+      return setSelector(object(), selector);
+    }
+
+    @Override
+    public SUB<TD<T>> sub() {
+      closeAttrs();
+      return sub_(this, true);
+    }
+
+    @Override
+    public TD<T> sub(String cdata) {
+      return sub().__(cdata).__();
+    }
+
+    @Override
+    public TD<T> sub(String selector, String cdata) {
+      return setSelector(sub(), selector).__(cdata).__();
+    }
+
+    @Override
+    public SUP<TD<T>> sup() {
+      closeAttrs();
+      return sup_(this, true);
+    }
+
+    @Override
+    public TD<T> sup(String cdata) {
+      return sup().__(cdata).__();
+    }
+
+    @Override
+    public TD<T> sup(String selector, String cdata) {
+      return setSelector(sup(), selector).__(cdata).__();
+    }
+
+    @Override
+    public MAP<TD<T>> map() {
+      closeAttrs();
+      return map_(this, true);
+    }
+
+    @Override
+    public MAP<TD<T>> map(String selector) {
+      return setSelector(map(), selector);
+    }
+
+    @Override
+    public TD<T> q(String cdata) {
+      return q().__(cdata).__();
+    }
+
+    @Override
+    public TD<T> q(String selector, String cdata) {
+      return setSelector(q(), selector).__(cdata).__();
+    }
+
+    @Override
+    public Q<TD<T>> q() {
+      closeAttrs();
+      return q_(this, true);
+    }
+
+    @Override
+    public BR<TD<T>> br() {
+      closeAttrs();
+      return br_(this, true);
+    }
+
+    @Override
+    public TD<T> br(String selector) {
+      return setSelector(br(), selector).__();
+    }
+
+    @Override
+    public BDO<TD<T>> bdo() {
+      closeAttrs();
+      return bdo_(this, true);
+    }
+
+    @Override
+    public TD<T> bdo(Dir dir, String cdata) {
+      return bdo().$dir(dir).__(cdata).__();
+    }
+
+    @Override
+    public SPAN<TD<T>> span() {
+      closeAttrs();
+      return span_(this, true);
+    }
+
+    @Override
+    public TD<T> span(String cdata) {
+      return span().__(cdata).__();
+    }
+
+    @Override
+    public TD<T> span(String selector, String cdata) {
+      return setSelector(span(), selector).__(cdata).__();
+    }
+
+    @Override
+    public SCRIPT<TD<T>> script() {
+      closeAttrs();
+      return script_(this, true);
+    }
+
+    @Override
+    public TD<T> script(String src) {
+      return setScriptSrc(script(), src).__();
+    }
+
+    @Override
+    public INS<TD<T>> ins() {
+      closeAttrs();
+      return ins_(this, true);
+    }
+
+    @Override
+    public TD<T> ins(String cdata) {
+      return ins().__(cdata).__();
+    }
+
+    @Override
+    public DEL<TD<T>> del() {
+      closeAttrs();
+      return del_(this, true);
+    }
+
+    @Override
+    public TD<T> del(String cdata) {
+      return del().__(cdata).__();
+    }
+
+    @Override
+    public LABEL<TD<T>> label() {
+      closeAttrs();
+      return label_(this, true);
+    }
+
+    @Override
+    public TD<T> label(String forId, String cdata) {
+      return label().$for(forId).__(cdata).__();
+    }
+
+    @Override
+    public INPUT<TD<T>> input(String selector) {
+      return setSelector(input(), selector);
+    }
+
+    @Override
+    public INPUT<TD<T>> input() {
+      closeAttrs();
+      return input_(this, true);
+    }
+
+    @Override
+    public SELECT<TD<T>> select() {
+      closeAttrs();
+      return select_(this, true);
+    }
+
+    @Override
+    public SELECT<TD<T>> select(String selector) {
+      return setSelector(select(), selector);
+    }
+
+    @Override
+    public TEXTAREA<TD<T>> textarea(String selector) {
+      return setSelector(textarea(), selector);
+    }
+
+    @Override
+    public TEXTAREA<TD<T>> textarea() {
+      closeAttrs();
+      return textarea_(this, true);
+    }
+
+    @Override
+    public TD<T> textarea(String selector, String cdata) {
+      return setSelector(textarea(), selector).__(cdata).__();
+    }
+
+    @Override
+    public BUTTON<TD<T>> button() {
+      closeAttrs();
+      return button_(this, true);
+    }
+
+    @Override
+    public BUTTON<TD<T>> button(String selector) {
+      return setSelector(button(), selector);
+    }
+
+    @Override
+    public TD<T> button(String selector, String cdata) {
+      return setSelector(button(), selector).__(cdata).__();
+    }
+  }
+
+  public class TH<T extends __> extends EImp<T> implements HamletSpec.TH {
+    public TH(String name, T parent, EnumSet<EOpt> opts) {
+      super(name, parent, opts);
+    }
+
+    @Override
+    public TH<T> $headers(String value) {
+      addAttr("headers", value);
+      return this;
+    }
+
+    @Override
+    public TH<T> $scope(Scope value) {
+      addAttr("scope", value);
+      return this;
+    }
+
+    @Override
+    public TH<T> $rowspan(int value) {
+      addAttr("rowspan", value);
+      return this;
+    }
+
+    @Override
+    public TH<T> $colspan(int value) {
+      addAttr("colspan", value);
+      return this;
+    }
+
+    @Override
+    public TH<T> $id(String value) {
+      addAttr("id", value);
+      return this;
+    }
+
+    @Override
+    public TH<T> $class(String value) {
+      addAttr("class", value);
+      return this;
+    }
+
+    @Override
+    public TH<T> $title(String value) {
+      addAttr("title", value);
+      return this;
+    }
+
+    @Override
+    public TH<T> $style(String value) {
+      addAttr("style", value);
+      return this;
+    }
+
+    @Override
+    public TH<T> $lang(String value) {
+      addAttr("lang", value);
+      return this;
+    }
+
+    @Override
+    public TH<T> $dir(Dir value) {
+      addAttr("dir", value);
+      return this;
+    }
+
+    @Override
+    public TH<T> $onclick(String value) {
+      addAttr("onclick", value);
+      return this;
+    }
+
+    @Override
+    public TH<T> $ondblclick(String value) {
+      addAttr("ondblclick", value);
+      return this;
+    }
+
+    @Override
+    public TH<T> $onmousedown(String value) {
+      addAttr("onmousedown", value);
+      return this;
+    }
+
+    @Override
+    public TH<T> $onmouseup(String value) {
+      addAttr("onmouseup", value);
+      return this;
+    }
+
+    @Override
+    public TH<T> $onmouseover(String value) {
+      addAttr("onmouseover", value);
+      return this;
+    }
+
+    @Override
+    public TH<T> $onmousemove(String value) {
+      addAttr("onmousemove", value);
+      return this;
+    }
+
+    @Override
+    public TH<T> $onmouseout(String value) {
+      addAttr("onmouseout", value);
+      return this;
+    }
+
+    @Override
+    public TH<T> $onkeypress(String value) {
+      addAttr("onkeypress", value);
+      return this;
+    }
+
+    @Override
+    public TH<T> $onkeydown(String value) {
+      addAttr("onkeydown", value);
+      return this;
+    }
+
+    @Override
+    public TH<T> $onkeyup(String value) {
+      addAttr("onkeyup", value);
+      return this;
+    }
+
+    @Override
+    public TABLE<TH<T>> table() {
+      closeAttrs();
+      return table_(this, false);
+    }
+
+    @Override
+    public TABLE<TH<T>> table(String selector) {
+      return setSelector(table(), selector);
+    }
+
+    @Override
+    public TH<T> address(String cdata) {
+      return address().__(cdata).__();
+    }
+
+    @Override
+    public ADDRESS<TH<T>> address() {
+      closeAttrs();
+      return address_(this, false);
+    }
+
+    @Override
+    public P<TH<T>> p(String selector) {
+      return setSelector(p(), selector);
+    }
+
+    @Override
+    public P<TH<T>> p() {
+      closeAttrs();
+      return p_(this, false);
+    }
+
+    @Override
+    public TH<T> __(Class<? extends SubView> cls) {
+      _v(cls);
+      return this;
+    }
+
+    @Override
+    public HR<TH<T>> hr() {
+      closeAttrs();
+      return hr_(this, false);
+    }
+
+    @Override
+    public TH<T> hr(String selector) {
+      return setSelector(hr(), selector).__();
+    }
+
+    @Override
+    public DL<TH<T>> dl(String selector) {
+      return setSelector(dl(), selector);
+    }
+
+    @Override
+    public DL<TH<T>> dl() {
+      closeAttrs();
+      return dl_(this, false);
+    }
+
+    @Override
+    public DIV<TH<T>> div(String selector) {
+      return setSelector(div(), selector);
+    }
+
+    @Override
+    public DIV<TH<T>> div() {
+      closeAttrs();
+      return div_(this, false);
+    }
+
+    @Override
+    public BLOCKQUOTE<TH<T>> blockquote() {
+      closeAttrs();
+      return blockquote_(this, false);
+    }
+
+    @Override
+    public BLOCKQUOTE<TH<T>> bq() {
+      closeAttrs();
+      return blockquote_(this, false);
+    }
+
+    @Override
+    public TH<T> h1(String cdata) {
+      return h1().__(cdata).__();
+    }
+
+    @Override
+    public H1<TH<T>> h1() {
+      closeAttrs();
+      return h1_(this, false);
+    }
+
+    @Override
+    public TH<T> h1(String selector, String cdata) {
+      return setSelector(h1(), selector).__(cdata).__();
+    }
+
+    @Override
+    public TH<T> h2(String cdata) {
+      return h2().__(cdata).__();
+    }
+
+    @Override
+    public H2<TH<T>> h2() {
+      closeAttrs();
+      return h2_(this, false);
+    }
+
+    @Override
+    public TH<T> h2(String selector, String cdata) {
+      return setSelector(h2(), selector).__(cdata).__();
+    }
+
+    @Override
+    public H3<TH<T>> h3() {
+      closeAttrs();
+      return h3_(this, false);
+    }
+
+    @Override
+    public TH<T> h3(String cdata) {
+      return h3().__(cdata).__();
+    }
+
+    @Override
+    public TH<T> h3(String selector, String cdata) {
+      return setSelector(h3(), selector).__(cdata).__();
+    }
+
+    @Override
+    public H4<TH<T>> h4() {
+      closeAttrs();
+      return h4_(this, false);
+    }
+
+    @Override
+    public TH<T> h4(String cdata) {
+      return h4().__(cdata).__();
+    }
+
+    @Override
+    public TH<T> h4(String selector, String cdata) {
+      return setSelector(h4(), selector).__(cdata).__();
+    }
+
+    @Override
+    public H5<TH<T>> h5() {
+      closeAttrs();
+      return h5_(this, false);
+    }
+
+    @Override
+    public TH<T> h5(String cdata) {
+      return h5().__(cdata).__();
+    }
+
+    @Override
+    public TH<T> h5(String selector, String cdata) {
+      return setSelector(h5(), selector).__(cdata).__();
+    }
+
+    @Override
+    public H6<TH<T>> h6() {
+      closeAttrs();
+      return h6_(this, false);
+    }
+
+    @Override
+    public TH<T> h6(String cdata) {
+      return h6().__(cdata).__();
+    }
+
+    @Override
+    public TH<T> h6(String selector, String cdata) {
+      return setSelector(h6(), selector).__(cdata).__();
+    }
+
+    @Override
+    public UL<TH<T>> ul() {
+      closeAttrs();
+      return ul_(this, false);
+    }
+
+    @Override
+    public UL<TH<T>> ul(String selector) {
+      return setSelector(ul(), selector);
+    }
+
+    @Override
+    public OL<TH<T>> ol() {
+      closeAttrs();
+      return ol_(this, false);
+    }
+
+    @Override
+    public OL<TH<T>> ol(String selector) {
+      return setSelector(ol(), selector);
+    }
+
+    @Override
+    public PRE<TH<T>> pre() {
+      closeAttrs();
+      return pre_(this, false);
+    }
+
+    @Override
+    public PRE<TH<T>> pre(String selector) {
+      return setSelector(pre(), selector);
+    }
+
+    @Override
+    public FORM<TH<T>> form() {
+      closeAttrs();
+      return form_(this, false);
+    }
+
+    @Override
+    public FORM<TH<T>> form(String selector) {
+      return setSelector(form(), selector);
+    }
+
+    @Override
+    public FIELDSET<TH<T>> fieldset() {
+      closeAttrs();
+      return fieldset_(this, false);
+    }
+
+    @Override
+    public FIELDSET<TH<T>> fieldset(String selector) {
+      return setSelector(fieldset(), selector);
+    }
+
+    @Override
+    public TH<T> __(Object... lines) {
+      _p(true, lines);
+      return this;
+    }
+
+    @Override
+    public TH<T> _r(Object... lines) {
+      _p(false, lines);
+      return this;
+    }
+
+    @Override
+    public B<TH<T>> b() {
+      closeAttrs();
+      return b_(this, true);
+    }
+
+    @Override
+    public TH<T> b(String cdata) {
+      return b().__(cdata).__();
+    }
+
+    @Override
+    public TH<T> b(String selector, String cdata) {
+      return setSelector(b(), selector).__(cdata).__();
+    }
+
+    @Override
+    public I<TH<T>> i() {
+      closeAttrs();
+      return i_(this, true);
+    }
+
+    @Override
+    public TH<T> i(String cdata) {
+      return i().__(cdata).__();
+    }
+
+    @Override
+    public TH<T> i(String selector, String cdata) {
+      return setSelector(i(), selector).__(cdata).__();
+    }
+
+    @Override
+    public SMALL<TH<T>> small() {
+      closeAttrs();
+      return small_(this, true);
+    }
+
+    @Override
+    public TH<T> small(String cdata) {
+      return small().__(cdata).__();
+    }
+
+    @Override
+    public TH<T> small(String selector, String cdata) {
+      return setSelector(small(), selector).__(cdata).__();
+    }
+
+    @Override
+    public TH<T> em(String cdata) {
+      return em().__(cdata).__();
+    }
+
+    @Override
+    public EM<TH<T>> em() {
+      closeAttrs();
+      return em_(this, true);
+    }
+
+    @Override
+    public TH<T> em(String selector, String cdata) {
+      return setSelector(em(), selector).__(cdata).__();
+    }
+
+    @Override
+    public STRONG<TH<T>> strong() {
+      closeAttrs();
+      return strong_(this, true);
+    }
+
+    @Override
+    public TH<T> strong(String cdata) {
+      return strong().__(cdata).__();
+    }
+
+    @Override
+    public TH<T> strong(String selector, String cdata) {
+      return setSelector(strong(), selector).__(cdata).__();
+    }
+
+    @Override
+    public DFN<TH<T>> dfn() {
+      closeAttrs();
+      return dfn_(this, true);
+    }
+
+    @Override
+    public TH<T> dfn(String cdata) {
+      return dfn().__(cdata).__();
+    }
+
+    @Override
+    public TH<T> dfn(String selector, String cdata) {
+      return setSelector(dfn(), selector).__(cdata).__();
+    }
+
+    @Override
+    public CODE<TH<T>> code() {
+      closeAttrs();
+      return code_(this, true);
+    }
+
+    @Override
+    public TH<T> code(String cdata) {
+      return code().__(cdata).__();
+    }
+
+    @Override
+    public TH<T> code(String selector, String cdata) {
+      return setSelector(code(), selector).__(cdata).__();
+    }
+
+    @Override
+    public TH<T> samp(String cdata) {
+      return samp().__(cdata).__();
+    }
+
+    @Override
+    public SAMP<TH<T>> samp() {
+      closeAttrs();
+      return samp_(this, true);
+    }
+
+    @Override
+    public TH<T> samp(String selector, String cdata) {
+      return setSelector(samp(), selector).__(cdata).__();
+    }
+
+    @Override
+    public KBD<TH<T>> kbd() {
+      closeAttrs();
+      return kbd_(this, true);
+    }
+
+    @Override
+    public TH<T> kbd(String cdata) {
+      return kbd().__(cdata).__();
+    }
+
+    @Override
+    public TH<T> kbd(String selector, String cdata) {
+      return setSelector(kbd(), selector).__(cdata).__();
+    }
+
+    @Override
+    public VAR<TH<T>> var() {
+      closeAttrs();
+      return var_(this, true);
+    }
+
+    @Override
+    public TH<T> var(String cdata) {
+      return var().__(cdata).__();
+    }
+
+    @Override
+    public TH<T> var(String selector, String cdata) {
+      return setSelector(var(), selector).__(cdata).__();
+    }
+
+    @Override
+    public CITE<TH<T>> cite() {
+      closeAttrs();
+      return cite_(this, true);
+    }
+
+    @Override
+    public TH<T> cite(String cdata) {
+      return cite().__(cdata).__();
+    }
+
+    @Override
+    public TH<T> cite(String selector, String cdata) {
+      return setSelector(cite(), selector).__(cdata).__();
+    }
+
+    @Override
+    public ABBR<TH<T>> abbr() {
+      closeAttrs();
+      return abbr_(this, true);
+    }
+
+    @Override
+    public TH<T> abbr(String cdata) {
+      return abbr().__(cdata).__();
+    }
+
+    @Override
+    public TH<T> abbr(String selector, String cdata) {
+      return setSelector(abbr(), selector).__(cdata).__();
+    }
+
+    @Override
+    public A<TH<T>> a() {
+      closeAttrs();
+      return a_(this, true);
+    }
+
+    @Override
+    public A<TH<T>> a(String selector) {
+      return setSelector(a(), selector);
+    }
+
+    @Override
+    public TH<T> a(String href, String anchorText) {
+      return a().$href(href).__(anchorText).__();
+    }
+
+    @Override
+    public TH<T> a(String selector, String href, String anchorText) {
+      return setSelector(a(), selector).$href(href).__(anchorText).__();
+    }
+
+    @Override
+    public IMG<TH<T>> img() {
+      closeAttrs();
+      return img_(this, true);
+    }
+
+    @Override
+    public TH<T> img(String src) {
+      return img().$src(src).__();
+    }
+
+    @Override
+    public OBJECT<TH<T>> object() {
+      closeAttrs();
+      return object_(this, true);
+    }
+
+    @Override
+    public OBJECT<TH<T>> object(String selector) {
+      return setSelector(object(), selector);
+    }
+
+    @Override
+    public SUB<TH<T>> sub() {
+      closeAttrs();
+      return sub_(this, true);
+    }
+
+    @Override
+    public TH<T> sub(String cdata) {
+      return sub().__(cdata).__();
+    }
+
+    @Override
+    public TH<T> sub(String selector, String cdata) {
+      return setSelector(sub(), selector).__(cdata).__();
+    }
+
+    @Override
+    public SUP<TH<T>> sup() {
+      closeAttrs();
+      return sup_(this, true);
+    }
+
+    @Override
+    public TH<T> sup(String cdata) {
+      return sup().__(cdata).__();
+    }
+
+    @Override
+    public TH<T> sup(String selector, String cdata) {
+      return setSelector(sup(), selector).__(cdata).__();
+    }
+
+    @Override
+    public MAP<TH<T>> map() {
+      closeAttrs();
+      return map_(this, true);
+    }
+
+    @Override
+    public MAP<TH<T>> map(String selector) {
+      return setSelector(map(), selector);
+    }
+
+    @Override
+    public TH<T> q(String cdata) {
+      return q().__(cdata).__();
+    }
+
+    @Override
+    public TH<T> q(String selector, String cdata) {
+      return setSelector(q(), selector).__(cdata).__();
+    }
+
+    @Override
+    public Q<TH<T>> q() {
+      closeAttrs();
+      return q_(this, true);
+    }
+
+    @Override
+    public BR<TH<T>> br() {
+      closeAttrs();
+      return br_(this, true);
+    }
+
+    @Override
+    public TH<T> br(String selector) {
+      return setSelector(br(), selector).__();
+    }
+
+    @Override
+    public BDO<TH<T>> bdo() {
+      closeAttrs();
+      return bdo_(this, true);
+    }
+
+    @Override
+    public TH<T> bdo(Dir dir, String cdata) {
+      return bdo().$dir(dir).__(cdata).__();
+    }
+
+    @Override
+    public SPAN<TH<T>> span() {
+      closeAttrs();
+      return span_(this, true);
+    }
+
+    @Override
+    public TH<T> span(String cdata) {
+      return span().__(cdata).__();
+    }
+
+    @Override
+    public TH<T> span(String selector, String cdata) {
+      return setSelector(span(), selector).__(cdata).__();
+    }
+
+    @Override
+    public SCRIPT<TH<T>> script() {
+      closeAttrs();
+      return script_(this, true);
+    }
+
+    @Override
+    public TH<T> script(String src) {
+      return setScriptSrc(script(), src).__();
+    }
+
+    @Override
+    public INS<TH<T>> ins() {
+      closeAttrs();
+      return ins_(this, true);
+    }
+
+    @Override
+    public TH<T> ins(String cdata) {
+      return ins().__(cdata).__();
+    }
+
+    @Override
+    public DEL<TH<T>> del() {
+      closeAttrs();
+      return del_(this, true);
+    }
+
+    @Override
+    public TH<T> del(String cdata) {
+      return del().__(cdata).__();
+    }
+
+    @Override
+    public LABEL<TH<T>> label() {
+      closeAttrs();
+      return label_(this, true);
+    }
+
+    @Override
+    public TH<T> label(String forId, String cdata) {
+      return label().$for(forId).__(cdata).__();
+    }
+
+    @Override
+    public INPUT<TH<T>> input(String selector) {
+      return setSelector(input(), selector);
+    }
+
+    @Override
+    public INPUT<TH<T>> input() {
+      closeAttrs();
+      return input_(this, true);
+    }
+
+    @Override
+    public SELECT<TH<T>> select() {
+      closeAttrs();
+      return select_(this, true);
+    }
+
+    @Override
+    public SELECT<TH<T>> select(String selector) {
+      return setSelector(select(), selector);
+    }
+
+    @Override
+    public TEXTAREA<TH<T>> textarea(String selector) {
+      return setSelector(textarea(), selector);
+    }
+
+    @Override
+    public TEXTAREA<TH<T>> textarea() {
+      closeAttrs();
+      return textarea_(this, true);
+    }
+
+    @Override
+    public TH<T> textarea(String selector, String cdata) {
+      return setSelector(textarea(), selector).__(cdata).__();
+    }
+
+    @Override
+    public BUTTON<TH<T>> button() {
+      closeAttrs();
+      return button_(this, true);
+    }
+
+    @Override
+    public BUTTON<TH<T>> button(String selector) {
+      return setSelector(button(), selector);
+    }
+
+    @Override
+    public TH<T> button(String selector, String cdata) {
+      return setSelector(button(), selector).__(cdata).__();
+    }
+  }
+
+  public class TR<T extends __> extends EImp<T> implements HamletSpec.TR {
+    public TR(String name, T parent, EnumSet<EOpt> opts) {
+      super(name, parent, opts);
+    }
+
+    @Override
+    public TR<T> $id(String value) {
+      addAttr("id", value);
+      return this;
+    }
+
+    @Override
+    public TR<T> $class(String value) {
+      addAttr("class", value);
+      return this;
+    }
+
+    @Override
+    public TR<T> $title(String value) {
+      addAttr("title", value);
+      return this;
+    }
+
+    @Override
+    public TR<T> $style(String value) {
+      addAttr("style", value);
+      return this;
+    }
+
+    @Override
+    public TR<T> $lang(String value) {
+      addAttr("lang", value);
+      return this;
+    }
+
+    @Override
+    public TR<T> $dir(Dir value) {
+      addAttr("dir", value);
+      return this;
+    }
+
+    @Override
+    public TR<T> $onclick(String value) {
+      addAttr("onclick", value);
+      return this;
+    }
+
+    @Override
+    public TR<T> $ondblclick(String value) {
+      addAttr("ondblclick", value);
+      return this;
+    }
+
+    @Override
+    public TR<T> $onmousedown(String value) {
+      addAttr("onmousedown", value);
+      return this;
+    }
+
+    @Override
+    public TR<T> $onmouseup(String value) {
+      addAttr("onmouseup", value);
+      return this;
+    }
+
+    @Override
+    public TR<T> $onmouseover(String value) {
+      addAttr("onmouseover", value);
+      return this;
+    }
+
+    @Override
+    public TR<T> $onmousemove(String value) {
+      addAttr("onmousemove", value);
+      return this;
+    }
+
+    @Override
+    public TR<T> $onmouseout(String value) {
+      addAttr("onmouseout", value);
+      return this;
+    }
+
+    @Override
+    public TR<T> $onkeypress(String value) {
+      addAttr("onkeypress", value);
+      return this;
+    }
+
+    @Override
+    public TR<T> $onkeydown(String value) {
+      addAttr("onkeydown", value);
+      return this;
+    }
+
+    @Override
+    public TR<T> $onkeyup(String value) {
+      addAttr("onkeyup", value);
+      return this;
+    }
+
+    @Override
+    public TH<TR<T>> th() {
+      closeAttrs();
+      return th_(this, false);
+    }
+
+    @Override
+    public TR<T> th(String cdata) {
+      return th().__(cdata).__();
+    }
+
+    @Override
+    public TR<T> th(String selector, String cdata) {
+      return setSelector(th(), selector).__(cdata).__();
+    }
+
+    public TR<T> th(String selector, String title, String cdata) {
+      return setSelector(th(), selector).$title(title).__(cdata).__();
+    }
+
+    @Override
+    public TD<TR<T>> td() {
+      closeAttrs();
+      return td_(this, false);
+    }
+
+    @Override
+    public TR<T> td(String cdata) {
+      return td().__(cdata).__();
+    }
+
+    @Override
+    public TR<T> td(String selector, String cdata) {
+      return setSelector(td(), selector).__(cdata).__();
+    }
+  }
+
+  private <T extends __> TH<T> th_(T e, boolean inline) {
+    return new TH<T>("th", e, opt(true, inline, false)); }
+
+  private <T extends __> TD<T> td_(T e, boolean inline) {
+    return new TD<T>("td", e, opt(true, inline, false)); }
+
+  public class COL<T extends __> extends EImp<T> implements HamletSpec.COL {
+    public COL(String name, T parent, EnumSet<EOpt> opts) {
+      super(name, parent, opts);
+    }
+
+    @Override
+    public COL<T> $span(int value) {
+      addAttr("span", value);
+      return this;
+    }
+
+    @Override
+    public COL<T> $id(String value) {
+      addAttr("id", value);
+      return this;
+    }
+
+    @Override
+    public COL<T> $class(String value) {
+      addAttr("class", value);
+      return this;
+    }
+
+    @Override
+    public COL<T> $title(String value) {
+      addAttr("title", value);
+      return this;
+    }
+
+    @Override
+    public COL<T> $style(String value) {
+      addAttr("style", value);
+      return this;
+    }
+
+    @Override
+    public COL<T> $lang(String value) {
+      addAttr("lang", value);
+      return this;
+    }
+
+    @Override
+    public COL<T> $dir(Dir value) {
+      addAttr("dir", value);
+      return this;
+    }
+
+    @Override
+    public COL<T> $onclick(String value) {
+      addAttr("onclick", value);
+      return this;
+    }
+
+    @Override
+    public COL<T> $ondblclick(String value) {
+      addAttr("ondblclick", value);
+      return this;
+    }
+
+    @Override
+    public COL<T> $onmousedown(String value) {
+      addAttr("onmousedown", value);
+      return this;
+    }
+
+    @Override
+    public COL<T> $onmouseup(String value) {
+      addAttr("onmouseup", value);
+      return this;
+    }
+
+    @Override
+    public COL<T> $onmouseover(String value) {
+      addAttr("onmouseover", value);
+      return this;
+    }
+
+    @Override
+    public COL<T> $onmousemove(String value) {
+      addAttr("onmousemove", value);
+      return this;
+    }
+
+    @Override
+    public COL<T> $onmouseout(String value) {
+      addAttr("onmouseout", value);
+      return this;
+    }
+
+    @Override
+    public COL<T> $onkeypress(String value) {
+      addAttr("onkeypress", value);
+      return this;
+    }
+
+    @Override
+    public COL<T> $onkeydown(String value) {
+      addAttr("onkeydown", value);
+      return this;
+    }
+
+    @Override
+    public COL<T> $onkeyup(String value) {
+      addAttr("onkeyup", value);
+      return this;
+    }
+  }
+
+  public class COLGROUP<T extends __> extends EImp<T> implements HamletSpec.COLGROUP {
+    public COLGROUP(String name, T parent, EnumSet<EOpt> opts) {
+      super(name, parent, opts);
+    }
+
+    @Override
+    public COLGROUP<T> $span(int value) {
+      addAttr("span", value);
+      return this;
+    }
+
+    @Override
+    public COLGROUP<T> $id(String value) {
+      addAttr("id", value);
+      return this;
+    }
+
+    @Override
+    public COLGROUP<T> $class(String value) {
+      addAttr("class", value);
+      return this;
+    }
+
+    @Override
+    public COLGROUP<T> $title(String value) {
+      addAttr("title", value);
+      return this;
+    }
+
+    @Override
+    public COLGROUP<T> $style(String value) {
+      addAttr("style", value);
+      return this;
+    }
+
+    @Override
+    public COLGROUP<T> $lang(String value) {
+      addAttr("lang", value);
+      return this;
+    }
+
+    @Override
+    public COLGROUP<T> $dir(Dir value) {
+      addAttr("dir", value);
+      return this;
+    }
+
+    @Override
+    public COLGROUP<T> $onclick(String value) {
+      addAttr("onclick", value);
+      return this;
+    }
+
+    @Override
+    public COLGROUP<T> $ondblclick(String value) {
+      addAttr("ondblclick", value);
+      return this;
+    }
+
+    @Override
+    public COLGROUP<T> $onmousedown(String value) {
+      addAttr("onmousedown", value);
+      return this;
+    }
+
+    @Override
+    public COLGROUP<T> $onmouseup(String value) {
+      addAttr("onmouseup", value);
+      return this;
+    }
+
+    @Override
+    public COLGROUP<T> $onmouseover(String value) {
+      addAttr("onmouseover", value);
+      return this;
+    }
+
+    @Override
+    public COLGROUP<T> $onmousemove(String value) {
+      addAttr("onmousemove", value);
+      return this;
+    }
+
+    @Override
+    public COLGROUP<T> $onmouseout(String value) {
+      addAttr("onmouseout", value);
+      return this;
+    }
+
+    @Override
+    public COLGROUP<T> $onkeypress(String value) {
+      addAttr("onkeypress", value);
+      return this;
+    }
+
+    @Override
+    public COLGROUP<T> $onkeydown(String value) {
+      addAttr("onkeydown", value);
+      return this;
+    }
+
+    @Override
+    public COLGROUP<T> $onkeyup(String value) {
+      addAttr("onkeyup", value);
+      return this;
+    }
+
+    @Override
+    public COL<COLGROUP<T>> col() {
+      closeAttrs();
+      return col_(this, false);
+    }
+
+    @Override
+    public COLGROUP<T> col(String selector) {
+      return setSelector(col(), selector).__();
+    }
+  }
+
+  public class TBODY<T extends __> extends EImp<T> implements HamletSpec.TBODY {
+    public TBODY(String name, T parent, EnumSet<EOpt> opts) {
+      super(name, parent, opts);
+    }
+
+    @Override
+    public TBODY<T> $id(String value) {
+      addAttr("id", value);
+      return this;
+    }
+
+    @Override
+    public TBODY<T> $class(String value) {
+      addAttr("class", value);
+      return this;
+    }
+
+    @Override
+    public TBODY<T> $title(String value) {
+      addAttr("title", value);
+      return this;
+    }
+
+    @Override
+    public TBODY<T> $style(String value) {
+      addAttr("style", value);
+      return this;
+    }
+
+    @Override
+    public TBODY<T> $lang(String value) {
+      addAttr("lang", value);
+      return this;
+    }
+
+    @Override
+    public TBODY<T> $dir(Dir value) {
+      addAttr("dir", value);
+      return this;
+    }
+
+    @Override
+    public TBODY<T> $onclick(String value) {
+      addAttr("onclick", value);
+      return this;
+    }
+
+    @Override
+    public TBODY<T> $ondblclick(String value) {
+      addAttr("ondblclick", value);
+      return this;
+    }
+
+    @Override
+    public TBODY<T> $onmousedown(String value) {
+      addAttr("onmousedown", value);
+      return this;
+    }
+
+    @Override
+    public TBODY<T> $onmouseup(String value) {
+      addAttr("onmouseup", value);
+      return this;
+    }
+
+    @Override
+    public TBODY<T> $onmouseover(String value) {
+      addAttr("onmouseover", value);
+      return this;
+    }
+
+    @Override
+    public TBODY<T> $onmousemove(String value) {
+      addAttr("onmousemove", value);
+      return this;
+    }
+
+    @Override
+    public TBODY<T> $onmouseout(String value) {
+      addAttr("onmouseout", value);
+      return this;
+    }
+
+    @Override
+    public TBODY<T> $onkeypress(String value) {
+      addAttr("onkeypress", value);
+      return this;
+    }
+
+    @Override
+    public TBODY<T> $onkeydown(String value) {
+      addAttr("onkeydown", value);
+      return this;
+    }
+
+    @Override
+    public TBODY<T> $onkeyup(String value) {
+      addAttr("onkeyup", value);
+      return this;
+    }
+
+    @Override
+    public TR<TBODY<T>> tr() {
+      closeAttrs();
+      return tr_(this, false);
+    }
+
+    @Override
+    public TR<TBODY<T>> tr(String selector) {
+      return setSelector(tr(), selector);
+    }
+  }
+
+  public class TFOOT<T extends __> extends EImp<T> implements HamletSpec.TFOOT {
+    public TFOOT(String name, T parent, EnumSet<EOpt> opts) {
+      super(name, parent, opts);
+    }
+
+    @Override
+    public TFOOT<T> $id(String value) {
+      addAttr("id", value);
+      return this;
+    }
+
+    @Override
+    public TFOOT<T> $class(String value) {
+      addAttr("class", value);
+      return this;
+    }
+
+    @Override
+    public TFOOT<T> $title(String value) {
+      addAttr("title", value);
+      return this;
+    }
+
+    @Override
+    public TFOOT<T> $style(String value) {
+      addAttr("style", value);
+      return this;
+    }
+
+    @Override
+    public TFOOT<T> $lang(String value) {
+      addAttr("lang", value);
+      return this;
+    }
+
+    @Override
+    public TFOOT<T> $dir(Dir value) {
+      addAttr("dir", value);
+      return this;
+    }
+
+    @Override
+    public TFOOT<T> $onclick(String value) {
+      addAttr("onclick", value);
+      return this;
+    }
+
+    @Override
+    public TFOOT<T> $ondblclick(String value) {
+      addAttr("ondblclick", value);
+      return this;
+    }
+
+    @Override
+    public TFOOT<T> $onmousedown(String value) {
+      addAttr("onmousedown", value);
+      return this;
+    }
+
+    @Override
+    public TFOOT<T> $onmouseup(String value) {
+      addAttr("onmouseup", value);
+      return this;
+    }
+
+    @Override
+    public TFOOT<T> $onmouseover(String value) {
+      addAttr("onmouseover", value);
+      return this;
+    }
+
+    @Override
+    public TFOOT<T> $onmousemove(String value) {
+      addAttr("onmousemove", value);
+      return this;
+    }
+
+    @Override
+    public TFOOT<T> $onmouseout(String value) {
+      addAttr("onmouseout", value);
+      return this;
+    }
+
+    @Override
+    public TFOOT<T> $onkeypress(String value) {
+      addAttr("onkeypress", value);
+      return this;
+    }
+
+    @Override
+    public TFOOT<T> $onkeydown(String value) {
+      addAttr("onkeydown", value);
+      return this;
+    }
+
+    @Override
+    public TFOOT<T> $onkeyup(String value) {
+      addAttr("onkeyup", value);
+      return this;
+    }
+
+    @Override
+    public TR<TFOOT<T>> tr() {
+      closeAttrs();
+      return tr_(this, false);
+    }
+
+    @Override
+    public TR<TFOOT<T>> tr(String selector) {
+      return setSelector(tr(), selector);
+    }
+  }
+
+  public class THEAD<T extends __> extends EImp<T> implements HamletSpec.THEAD {
+    public THEAD(String name, T parent, EnumSet<EOpt> opts) {
+      super(name, parent, opts);
+    }
+
+    @Override
+    public THEAD<T> $id(String value) {
+      addAttr("id", value);
+      return this;
+    }
+
+    @Override
+    public THEAD<T> $class(String value) {
+      addAttr("class", value);
+      return this;
+    }
+
+    @Override
+    public THEAD<T> $title(String value) {
+      addAttr("title", value);
+      return this;
+    }
+
+    @Override
+    public THEAD<T> $style(String value) {
+      addAttr("style", value);
+      return this;
+    }
+
+    @Override
+    public THEAD<T> $lang(String value) {
+      addAttr("lang", value);
+      return this;
+    }
+
+    @Override
+    public THEAD<T> $dir(Dir value) {
+      addAttr("dir", value);
+      return this;
+    }
+
+    @Override
+    public THEAD<T> $onclick(String value) {
+      addAttr("onclick", value);
+      return this;
+    }
+
+    @Override
+    public THEAD<T> $ondblclick(String value) {
+      addAttr("ondblclick", value);
+      return this;
+    }
+
+    @Override
+    public THEAD<T> $onmousedown(String value) {
+      addAttr("onmousedown", value);
+      return this;
+    }
+
+    @Override
+    public THEAD<T> $onmouseup(String value) {
+      addAttr("onmouseup", value);
+      return this;
+    }
+
+    @Override
+    public THEAD<T> $onmouseover(String value) {
+      addAttr("onmouseover", value);
+      return this;
+    }
+
+    @Override
+    public THEAD<T> $onmousemove(String value) {
+      addAttr("onmousemove", value);
+      return this;
+    }
+
+    @Override
+    public THEAD<T> $onmouseout(String value) {
+      addAttr("onmouseout", value);
+      return this;
+    }
+
+    @Override
+    public THEAD<T> $onkeypress(String value) {
+      addAttr("onkeypress", value);
+      return this;
+    }
+
+    @Override
+    public THEAD<T> $onkeydown(String value) {
+      addAttr("onkeydown", value);
+      return this;
+    }
+
+    @Override
+    public THEAD<T> $onkeyup(String value) {
+      addAttr("onkeyup", value);
+      return this;
+    }
+
+    @Override
+    public TR<THEAD<T>> tr() {
+      closeAttrs();
+      return tr_(this, false);
+    }
+
+    @Override
+    public TR<THEAD<T>> tr(String selector) {
+      return setSelector(tr(), selector);
+    }
+  }
+
+  public class CAPTION<T extends __> extends EImp<T> implements HamletSpec.CAPTION {
+    public CAPTION(String name, T parent, EnumSet<EOpt> opts) {
+      super(name, parent, opts);
+    }
+
+    @Override
+    public CAPTION<T> $id(String value) {
+      addAttr("id", value);
+      return this;
+    }
+
+    @Override
+    public CAPTION<T> $class(String value) {
+      addAttr("class", value);
+      return this;
+    }
+
+    @Override
+    public CAPTION<T> $title(String value) {
+      addAttr("title", value);
+      return this;
+    }
+
+    @Override
+    public CAPTION<T> $style(String value) {
+      addAttr("style", value);
+      return this;
+    }
+
+    @Override
+    public CAPTION<T> $lang(String value) {
+      addAttr("lang", value);
+      return this;
+    }
+
+    @Override
+    public CAPTION<T> $dir(Dir value) {
+      addAttr("dir", value);
+      return this;
+    }
+
+    @Override
+    public CAPTION<T> $onclick(String value) {
+      addAttr("onclick", value);
+      return this;
+    }
+
+    @Override
+    public CAPTION<T> $ondblclick(String value) {
+      addAttr("ondblclick", value);
+      return this;
+    }
+
+    @Override
+    public CAPTION<T> $onmousedown(String value) {
+      addAttr("onmousedown", value);
+      return this;
+    }
+
+    @Override
+    public CAPTION<T> $onmouseup(String value) {
+      addAttr("onmouseup", value);
+      return this;
+    }
+
+    @Override
+    public CAPTION<T> $onmouseover(String value) {
+      addAttr("onmouseover", value);
+      return this;
+    }
+
+    @Override
+    public CAPTION<T> $onmousemove(String value) {
+      addAttr("onmousemove", value);
+      return this;
+    }
+
+    @Override
+    public CAPTION<T> $onmouseout(String value) {
+      addAttr("onmouseout", value);
+      return this;
+    }
+
+    @Override
+    public CAPTION<T> $onkeypress(String value) {
+      addAttr("onkeypress", value);
+      return this;
+    }
+
+    @Override
+    public CAPTION<T> $onkeydown(String value) {
+      addAttr("onkeydown", value);
+      return this;
+    }
+
+    @Override
+    public CAPTION<T> $onkeyup(String value) {
+      addAttr("onkeyup", value);
+      return this;
+    }
+
+    @Override
+    public CAPTION<T> __(Object... lines) {
+      _p(true, lines);
+      return this;
+    }
+
+    @Override
+    public CAPTION<T> _r(Object... lines) {
+      _p(false, lines);
+      return this;
+    }
+
+    @Override
+    public B<CAPTION<T>> b() {
+      closeAttrs();
+      return b_(this, true);
+    }
+
+    @Override
+    public CAPTION<T> b(String cdata) {
+      return b().__(cdata).__();
+    }
+
+    @Override
+    public CAPTION<T> b(String selector, String cdata) {
+      return setSelector(b(), selector).__(cdata).__();
+    }
+
+    @Override
+    public I<CAPTION<T>> i() {
+      closeAttrs();
+      return i_(this, true);
+    }
+
+    @Override
+    public CAPTION<T> i(String cdata) {
+      return i().__(cdata).__();
+    }
+
+    @Override
+    public CAPTION<T> i(String selector, String cdata) {
+      return setSelector(i(), selector).__(cdata).__();
+    }
+
+    @Override
+    public SMALL<CAPTION<T>> small() {
+      closeAttrs();
+      return small_(this, true);
+    }
+
+    @Override
+    public CAPTION<T> small(String cdata) {
+      return small().__(cdata).__();
+    }
+
+    @Override
+    public CAPTION<T> small(String selector, String cdata) {
+      return setSelector(small(), selector).__(cdata).__();
+    }
+
+    @Override
+    public CAPTION<T> em(String cdata) {
+      return em().__(cdata).__();
+    }
+
+    @Override
+    public EM<CAPTION<T>> em() {
+      closeAttrs();
+      return em_(this, true);
+    }
+
+    @Override
+    public CAPTION<T> em(String selector, String cdata) {
+      return setSelector(em(), selector).__(cdata).__();
+    }
+
+    @Override
+    public STRONG<CAPTION<T>> strong() {
+      closeAttrs();
+      return strong_(this, true);
+    }
+
+    @Override
+    public CAPTION<T> strong(String cdata) {
+      return strong().__(cdata).__();
+    }
+
+    @Override
+    public CAPTION<T> strong(String selector, String cdata) {
+      return setSelector(strong(), selector).__(cdata).__();
+    }
+
+    @Override
+    public DFN<CAPTION<T>> dfn() {
+      closeAttrs();
+      return dfn_(this, true);
+    }
+
+    @Override
+    public CAPTION<T> dfn(String cdata) {
+      return dfn().__(cdata).__();
+    }
+
+    @Override
+    public CAPTION<T> dfn(String selector, String cdata) {
+      return setSelector(dfn(), selector).__(cdata).__();
+    }
+
+    @Override
+    public CODE<CAPTION<T>> code() {
+      closeAttrs();
+      return code_(this, true);
+    }
+
+    @Override
+    public CAPTION<T> code(String cdata) {
+      return code().__(cdata).__();
+    }
+
+    @Override
+    public CAPTION<T> code(String selector, String cdata) {
+      return setSelector(code(), selector).__(cdata).__();
+    }
+
+    @Override
+    public CAPTION<T> samp(String cdata) {
+      return samp().__(cdata).__();
+    }
+
+    @Override
+    public SAMP<CAPTION<T>> samp() {
+      closeAttrs();
+      return samp_(this, true);
+    }
+
+    @Override
+    public CAPTION<T> samp(String selector, String cdata) {
+      return setSelector(samp(), selector).__(cdata).__();
+    }
+
+    @Override
+    public KBD<CAPTION<T>> kbd() {
+      closeAttrs();
+      return kbd_(this, true);
+    }
+
+    @Override
+    public CAPTION<T> kbd(String cdata) {
+      return kbd().__(cdata).__();
+    }
+
+    @Override
+    public CAPTION<T> kbd(String selector, String cdata) {
+      return setSelector(kbd(), selector).__(cdata).__();
+    }
+
+    @Override
+    public VAR<CAPTION<T>> var() {
+      closeAttrs();
+      return var_(this, true);
+    }
+
+    @Override
+    public CAPTION<T> var(String cdata) {
+      return var().__(cdata).__();
+    }
+
+    @Override
+    public CAPTION<T> var(String selector, String cdata) {
+      return setSelector(var(), selector).__(cdata).__();
+    }
+
+    @Override
+    public CITE<CAPTION<T>> cite() {
+      closeAttrs();
+      return cite_(this, true);
+    }
+
+    @Override
+    public CAPTION<T> cite(String cdata) {
+      return cite().__(cdata).__();
+    }
+
+    @Override
+    public CAPTION<T> cite(String selector, String cdata) {
+      return setSelector(cite(), selector).__(cdata).__();
+    }
+
+    @Override
+    public ABBR<CAPTION<T>> abbr() {
+      closeAttrs();
+      return abbr_(this, true);
+    }
+
+    @Override
+    public CAPTION<T> abbr(String cdata) {
+      return abbr().__(cdata).__();
+    }
+
+    @Override
+    public CAPTION<T> abbr(String selector, String cdata) {
+      return setSelector(abbr(), selector).__(cdata).__();
+    }
+
+    @Override
+    public A<CAPTION<T>> a() {
+      closeAttrs();
+      return a_(this, true);
+    }
+
+    @Override
+    public A<CAPTION<T>> a(String selector) {
+      return setSelector(a(), selector);
+    }
+
+    @Override
+    public CAPTION<T> a(String href, String anchorText) {
+      return a().$href(href).__(anchorText).__();
+    }
+
+    @Override
+    public CAPTION<T> a(String selector, String href, String anchorText) {
+      return setSelector(a(), selector).$href(href).__(anchorText).__();
+    }
+
+    @Override
+    public IMG<CAPTION<T>> img() {
+      closeAttrs();
+      return img_(this, true);
+    }
+
+    @Override
+    public CAPTION<T> img(String src) {
+      return img().$src(src).__();
+    }
+
+    @Override
+    public OBJECT<CAPTION<T>> object() {
+      closeAttrs();
+      return object_(this, true);
+    }
+
+    @Override
+    public OBJECT<CAPTION<T>> object(String selector) {
+      return setSelector(object(), selector);
+    }
+
+    @Override
+    public SUB<CAPTION<T>> sub() {
+      closeAttrs();
+      return sub_(this, true);
+    }
+
+    @Override
+    public CAPTION<T> sub(String cdata) {
+      return sub().__(cdata).__();
+    }
+
+    @Override
+    public CAPTION<T> sub(String selector, String cdata) {
+      return setSelector(sub(), selector).__(cdata).__();
+    }
+
+    @Override
+    public SUP<CAPTION<T>> sup() {
+      closeAttrs();
+      return sup_(this, true);
+    }
+
+    @Override
+    public CAPTION<T> sup(String cdata) {
+      return sup().__(cdata).__();
+    }
+
+    @Override
+    public CAPTION<T> sup(String selector, String cdata) {
+      return setSelector(sup(), selector).__(cdata).__();
+    }
+
+    @Override
+    public MAP<CAPTION<T>> map() {
+      closeAttrs();
+      return map_(this, true);
+    }
+
+    @Override
+    public MAP<CAPTION<T>> map(String selector) {
+      return setSelector(map(), selector);
+    }
+
+    @Override
+    public CAPTION<T> q(String cdata) {
+      return q().__(cdata).__();
+    }
+
+    @Override
+    public CAPTION<T> q(String selector, String cdata) {
+      return setSelector(q(), selector).__(cdata).__();
+    }
+
+    @Override
+    public Q<CAPTION<T>> q() {
+      closeAttrs();
+      return q_(this, true);
+    }
+
+    @Override
+    public BR<CAPTION<T>> br() {
+      closeAttrs();
+      return br_(this, true);
+    }
+
+    @Override
+    public CAPTION<T> br(String selector) {
+      return setSelector(br(), selector).__();
+    }
+
+    @Override
+    public BDO<CAPTION<T>> bdo() {
+      closeAttrs();
+      return bdo_(this, true);
+    }
+
+    @Override
+    public CAPTION<T> bdo(Dir dir, String cdata) {
+      return bdo().$dir(dir).__(cdata).__();
+    }
+
+    @Override
+    public SPAN<CAPTION<T>> span() {
+      closeAttrs();
+      return span_(this, true);
+    }
+
+    @Override
+    public CAPTION<T> span(String cdata) {
+      return span().__(cdata).__();
+    }
+
+    @Override
+    public CAPTION<T> span(String selector, String cdata) {
+      return setSelector(span(), selector).__(cdata).__();
+    }
+
+    @Override
+    public SCRIPT<CAPTION<T>> script() {
+      closeAttrs();
+      return script_(this, true);
+    }
+
+    @Override
+    public CAPTION<T> script(String src) {
+      return setScriptSrc(script(), src).__();
+    }
+
+    @Override
+    public INS<CAPTION<T>> ins() {
+      closeAttrs();
+      return ins_(this, true);
+    }
+
+    @Override
+    public CAPTION<T> ins(String cdata) {
+      return ins().__(cdata).__();
+    }
+
+    @Override
+    public DEL<CAPTION<T>> del() {
+      closeAttrs();
+      return del_(this, true);
+    }
+
+    @Override
+    public CAPTION<T> del(String cdata) {
+      return del().__(cdata).__();
+    }
+
+    @Override
+    public LABEL<CAPTION<T>> label() {
+      closeAttrs();
+      return label_(this, true);
+    }
+
+    @Override
+    public CAPTION<T> label(String forId, String cdata) {
+      return label().$for(forId).__(cdata).__();
+    }
+
+    @Override
+    public INPUT<CAPTION<T>> input(String selector) {
+      return setSelector(input(), selector);
+    }
+
+    @Override
+    public INPUT<CAPTION<T>> input() {
+      closeAttrs();
+      return input_(this, true);
+    }
+
+    @Override
+    public SELECT<CAPTION<T>> select() {
+      closeAttrs();
+      return select_(this, true);
+    }
+
+    @Override
+    public SELECT<CAPTION<T>> select(String selector) {
+      return setSelector(select(), selector);
+    }
+
+    @Override
+    public TEXTAREA<CAPTION<T>> textarea(String selector) {
+      return setSelector(textarea(), selector);
+    }
+
+    @Override
+    public TEXTAREA<CAPTION<T>> textarea() {
+      closeAttrs();
+      return textarea_(this, true);
+    }
+
+    @Override
+    public CAPTION<T> textarea(String selector, String cdata) {
+      return setSelector(textarea(), selector).__(cdata).__();
+    }
+
+    @Override
+    public BUTTON<CAPTION<T>> button() {
+      closeAttrs();
+      return button_(this, true);
+    }
+
+    @Override
+    public BUTTON<CAPTION<T>> button(String selector) {
+      return setSelector(button(), selector);
+    }
+
+    @Override
+    public CAPTION<T> button(String selector, String cdata) {
+      return setSelector(button(), selector).__(cdata).__();
+    }
+  }
+
+  public class TABLE<T extends __> extends EImp<T> implements HamletSpec.TABLE {
+    public TABLE(String name, T parent, EnumSet<EOpt> opts) {
+      super(name, parent, opts);
+    }
+
+    @Override
+    public TABLE<T> $id(String value) {
+      addAttr("id", value);
+      return this;
+    }
+
+    @Override
+    public TABLE<T> $class(String value) {
+      addAttr("class", value);
+      return this;
+    }
+
+    @Override
+    public TABLE<T> $title(String value) {
+      addAttr("title", value);
+      return this;
+    }
+
+    @Override
+    public TABLE<T> $style(String value) {
+      addAttr("style", value);
+      return this;
+    }
+
+    @Override
+    public TABLE<T> $lang(String value) {
+      addAttr("lang", value);
+      return this;
+    }
+
+    @Override
+    public TABLE<T> $dir(Dir value) {
+      addAttr("dir", value);
+      return this;
+    }
+
+    @Override
+    public TABLE<T> $onclick(String value) {
+      addAttr("onclick", value);
+      return this;
+    }
+
+    @Override
+    public TABLE<T> $ondblclick(String value) {
+      addAttr("ondblclick", value);
+      return this;
+    }
+
+    @Override
+    public TABLE<T> $onmousedown(String value) {
+      addAttr("onmousedown", value);
+      return this;
+    }
+
+    @Override
+    public TABLE<T> $onmouseup(String value) {
+      addAttr("onmouseup", value);
+      return this;
+    }
+
+    @Override
+    public TABLE<T> $onmouseover(String value) {
+      addAttr("onmouseover", value);
+      return this;
+    }
+
+    @Override
+    public TABLE<T> $onmousemove(String value) {
+      addAttr("onmousemove", value);
+      return this;
+    }
+
+    @Override
+    public TABLE<T> $onmouseout(String value) {
+      addAttr("onmouseout", value);
+      return this;
+    }
+
+    @Override
+    public TABLE<T> $onkeypress(String value) {
+      addAttr("onkeypress", value);
+      return this;
+    }
+
+    @Override
+    public TABLE<T> $onkeydown(String value) {
+      addAttr("onkeydown", value);
+      return this;
+    }
+
+    @Override
+    public TABLE<T> $onkeyup(String value) {
+      addAttr("onkeyup", value);
+      return this;
+    }
+
+    @Override
+    public TABLE<T> caption(String cdata) {
+      return caption().__(cdata).__();
+    }
+
+    @Override
+    public CAPTION<TABLE<T>> caption() {
+      closeAttrs();
+      return caption_(this, false);
+    }
+
+    @Override
+    public COLGROUP<TABLE<T>> colgroup() {
+      closeAttrs();
+      return colgroup_(this, false);
+    }
+
+    @Override
+    public THEAD<TABLE<T>> thead(String selector) {
+      return setSelector(thead(), selector);
+    }
+
+    @Override
+    public THEAD<TABLE<T>> thead() {
+      closeAttrs();
+      return thead_(this, false);
+    }
+
+    @Override
+    public TFOOT<TABLE<T>> tfoot() {
+      closeAttrs();
+      return tfoot_(this, false);
+    }
+
+    @Override
+    public TFOOT<TABLE<T>> tfoot(String selector) {
+      return setSelector(tfoot(), selector);
+    }
+
+    @Override
+    public TBODY<TABLE<T>> tbody() {
+      closeAttrs();
+      return tbody_(this, false);
+    }
+
+    @Override
+    public TBODY<TABLE<T>> tbody(String selector) {
+      return setSelector(tbody(), selector);
+    }
+
+    @Override
+    public TR<TABLE<T>> tr() {
+      closeAttrs();
+      return tr_(this, false);
+    }
+
+    @Override
+    public TR<TABLE<T>> tr(String selector) {
+      return setSelector(tr(), selector);
+    }
+
+    @Override
+    public COL<TABLE<T>> col() {
+      closeAttrs();
+      return col_(this, false);
+    }
+
+    @Override
+    public TABLE<T> col(String selector) {
+      return setSelector(col(), selector).__();
+    }
+  }
+
+  private <T extends __> CAPTION<T> caption_(T e, boolean inline) {
+    return new CAPTION<T>("caption", e, opt(true, inline, false)); }
+
+  private <T extends __> COLGROUP<T> colgroup_(T e, boolean inline) {
+    return new COLGROUP<T>("colgroup", e, opt(false, inline, false)); }
+
+  private <T extends __> THEAD<T> thead_(T e, boolean inline) {
+    return new THEAD<T>("thead", e, opt(true, inline, false)); }
+
+  private <T extends __> TFOOT<T> tfoot_(T e, boolean inline) {
+    return new TFOOT<T>("tfoot", e, opt(true, inline, false)); }
+
+  private <T extends __> TBODY<T> tbody_(T e, boolean inline) {
+    return new TBODY<T>("tbody", e, opt(true, inline, false)); }
+
+  private <T extends __> COL<T> col_(T e, boolean inline) {
+    return new COL<T>("col", e, opt(false, inline, false)); }
+
+  private <T extends __> TR<T> tr_(T e, boolean inline) {
+    return new TR<T>("tr", e, opt(true, inline, false)); }
+
+  public class BUTTON<T extends __> extends EImp<T> implements HamletSpec.BUTTON {
+    public BUTTON(String name, T parent, EnumSet<EOpt> opts) {
+      super(name, parent, opts);
+    }
+
+    @Override
+    public BUTTON<T> $type(ButtonType value) {
+      addAttr("type", value);
+      return this;
+    }
+
+    @Override
+    public BUTTON<T> $name(String value) {
+      addAttr("name", value);
+      return this;
+    }
+
+    @Override
+    public BUTTON<T> $value(String value) {
+      addAttr("value", value);
+      return this;
+    }
+
+    @Override
+    public BUTTON<T> $disabled() {
+      addAttr("disabled", null);
+      return this;
+    }
+
+    @Override
+    public BUTTON<T> $tabindex(int value) {
+      addAttr("tabindex", value);
+      return this;
+    }
+
+    @Override
+    public BUTTON<T> $accesskey(String value) {
+      addAttr("accesskey", value);
+      return this;
+    }
+
+    @Override
+    public BUTTON<T> $onfocus(String value) {
+      addAttr("onfocus", value);
+      return this;
+    }
+
+    @Override
+    public BUTTON<T> $onblur(String value) {
+      addAttr("onblur", value);
+      return this;
+    }
+
+    @Override
+    public TABLE<BUTTON<T>> table() {
+      closeAttrs();
+      return table_(this, false);
+    }
+
+    @Override
+    public TABLE<BUTTON<T>> table(String selector) {
+      return setSelector(table(), selector);
+    }
+
+    @Override
+    public BUTTON<T> address(String cdata) {
+      return address().__(cdata).__();
+    }
+
+    @Override
+    public ADDRESS<BUTTON<T>> address() {
+      closeAttrs();
+      return address_(this, false);
+    }
+
+    @Override
+    public P<BUTTON<T>> p(String selector) {
+      return setSelector(p(), selector);
+    }
+
+    @Override
+    public P<BUTTON<T>> p() {
+      closeAttrs();
+      return p_(this, false);
+    }
+
+    @Override
+    public BUTTON<T> __(Class<? extends SubView> cls) {
+      _v(cls);
+      return this;
+    }
+
+    @Override
+    public HR<BUTTON<T>> hr() {
+      closeAttrs();
+      return hr_(this, false);
+    }
+
+    @Override
+    public BUTTON<T> hr(String selector) {
+      return setSelector(hr(), selector).__();
+    }
+
+    @Override
+    public DL<BUTTON<T>> dl(String selector) {
+      return setSelector(dl(), selector);
+    }
+
+    @Override
+    public DL<BUTTON<T>> dl() {
+      closeAttrs();
+      return dl_(this, false);
+    }
+
+    @Override
+    public DIV<BUTTON<T>> div(String selector) {
+      return setSelector(div(), selector);
+    }
+
+    @Override
+    public DIV<BUTTON<T>> div() {
+      closeAttrs();
+      return div_(this, false);
+    }
+
+    @Override
+    public BLOCKQUOTE<BUTTON<T>> blockquote() {
+      closeAttrs();
+      return blockquote_(this, false);
+    }
+
+    @Override
+    public BLOCKQUOTE<BUTTON<T>> bq() {
+      closeAttrs();
+      return blockquote_(this, false);
+    }
+
+    @Override
+    public BUTTON<T> h1(String cdata) {
+      return h1().__(cdata).__();
+    }
+
+    @Override
+    public H1<BUTTON<T>> h1() {
+      closeAttrs();
+      return h1_(this, false);
+    }
+
+    @Override
+    public BUTTON<T> h1(String selector, String cdata) {
+      return setSelector(h1(), selector).__(cdata).__();
+    }
+
+    @Override
+    public BUTTON<T> h2(String cdata) {
+      return h2().__(cdata).__();
+    }
+
+    @Override
+    public H2<BUTTON<T>> h2() {
+      closeAttrs();
+      return h2_(this, false);
+    }
+
+    @Override
+    public BUTTON<T> h2(String selector, String cdata) {
+      return setSelector(h2(), selector).__(cdata).__();
+    }
+
+    @Override
+    public H3<BUTTON<T>> h3() {
+      closeAttrs();
+      return h3_(this, false);
+    }
+
+    @Override
+    public BUTTON<T> h3(String cdata) {
+      return h3().__(cdata).__();
+    }
+
+    @Override
+    public BUTTON<T> h3(String selector, String cdata) {
+      return setSelector(h3(), selector).__(cdata).__();
+    }
+
+    @Override
+    public H4<BUTTON<T>> h4() {
+      closeAttrs();
+      return h4_(this, false);
+    }
+
+    @Override
+    public BUTTON<T> h4(String cdata) {
+      return h4().__(cdata).__();
+    }
+
+    @Override
+    public BUTTON<T> h4(String selector, String cdata) {
+      return setSelector(h4(), selector).__(cdata).__();
+    }
+
+    @Override
+    public H5<BUTTON<T>> h5() {
+      closeAttrs();
+      return h5_(this, false);
+    }
+
+    @Override
+    public BUTTON<T> h5(String cdata) {
+      return h5().__(cdata).__();
+    }
+
+    @Override
+    public BUTTON<T> h5(String selector, String cdata) {
+      return setSelector(h5(), selector).__(cdata).__();
+    }
+
+    @Override
+    public H6<BUTTON<T>> h6() {
+      closeAttrs();
+      return h6_(this, false);
+    }
+
+    @Override
+    public BUTTON<T> h6(String cdata) {
+      return h6().__(cdata).__();
+    }
+
+    @Override
+    public BUTTON<T> h6(String selector, String cdata) {
+      return setSelector(h6(), selector).__(cdata).__();
+    }
+
+    @Override
+    public UL<BUTTON<T>> ul() {
+      closeAttrs();
+      return ul_(this, false);
+    }
+
+    @Override
+    public UL<BUTTON<T>> ul(String selector) {
+      return setSelector(ul(), selector);
+    }
+
+    @Override
+    public OL<BUTTON<T>> ol() {
+      closeAttrs();
+      return ol_(this, false);
+    }
+
+    @Override
+    public OL<BUTTON<T>> ol(String selector) {
+      return setSelector(ol(), selector);
+    }
+
+    @Override
+    public PRE<BUTTON<T>> pre() {
+      closeAttrs();
+      return pre_(this, false);
+    }
+
+    @Override
+    public PRE<BUTTON<T>> pre(String selector) {
+      return setSelector(pre(), selector);
+    }
+
+    @Override
+    public BUTTON<T> __(Object... lines) {
+      _p(true, lines);
+      return this;
+    }
+
+    @Override
+    public BUTTON<T> _r(Object... lines) {
+      _p(false, lines);
+      return this;
+    }
+
+    @Override
+    public B<BUTTON<T>> b() {
+      closeAttrs();
+      return b_(this, true);
+    }
+
+    @Override
+    public BUTTON<T> b(String cdata) {
+      return b().__(cdata).__();
+    }
+
+    @Override
+    public BUTTON<T> b(String selector, String cdata) {
+      return setSelector(b(), selector).__(cdata).__();
+    }
+
+    @Override
+    public I<BUTTON<T>> i() {
+      closeAttrs();
+      return i_(this, true);
+    }
+
+    @Override
+    public BUTTON<T> i(String cdata) {
+      return i().__(cdata).__();
+    }
+
+    @Override
+    public BUTTON<T> i(String selector, String cdata) {
+      return setSelector(i(), selector).__(cdata).__();
+    }
+
+    @Override
+    public SMALL<BUTTON<T>> small() {
+      closeAttrs();
+      return small_(this, true);
+    }
+
+    @Override
+    public BUTTON<T> small(String cdata) {
+      return small().__(cdata).__();
+    }
+
+    @Override
+    public BUTTON<T> small(Str

<TRUNCATED>

---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org