| 
68
 | 
     1 package fschmidt.html;
 | 
| 
 | 
     2 
 | 
| 
 | 
     3 
 | 
| 
 | 
     4 public final class HtmlNode extends HtmlTag {
 | 
| 
 | 
     5 	public final Html children;
 | 
| 
 | 
     6 
 | 
| 
 | 
     7 	public HtmlNode(HtmlTag tag,Html children) {
 | 
| 
 | 
     8 		super(tag);
 | 
| 
 | 
     9 		if( tag.isEmpty() )
 | 
| 
 | 
    10 			throw new RuntimeException();
 | 
| 
 | 
    11 		this.children = children;
 | 
| 
 | 
    12 	}
 | 
| 
 | 
    13 
 | 
| 
 | 
    14 	@Override public String toString() {
 | 
| 
 | 
    15 		return super.toString() + children + "</" + getName() + ">";
 | 
| 
 | 
    16 	}
 | 
| 
 | 
    17 
 | 
| 
 | 
    18 	@Override public boolean equals(Object obj) {
 | 
| 
 | 
    19 		if( !super.equals(obj) )
 | 
| 
 | 
    20 			return false;
 | 
| 
 | 
    21 		if( !(obj instanceof HtmlNode) )
 | 
| 
 | 
    22 			return false;
 | 
| 
 | 
    23 		HtmlNode node = (HtmlNode)obj;
 | 
| 
 | 
    24 		return children.equals(node.children);
 | 
| 
 | 
    25 	}
 | 
| 
 | 
    26 
 | 
| 
 | 
    27 	void flattenTo(Html html) {
 | 
| 
 | 
    28 		html.add( new HtmlTag(this) );
 | 
| 
 | 
    29 		children.flattenTo(html);
 | 
| 
 | 
    30 		html.add( new HtmlTag( "/" + getName() ) );
 | 
| 
 | 
    31 	}
 | 
| 
 | 
    32 }
 |