/** * Tag.java * Got from http://artho.com/webtools/java/index.shtml */ package app.astrosoft.html; import java.util.*; public class Tag extends LinkedList{ private Attributes attributes; // tag attributes private String name; // name of tag private boolean close; // closing tag y/n public Tag(String name) { super(); close = true; this.name = name.toLowerCase(); attributes = new Attributes(); } public Tag(String name, boolean close) { this(name); this.close = close; } public Tag(String name, Attributes attr) { this(name); attributes = attr; } public Tag(String name, Attributes attr, boolean close) { this(name, attr); this.close = close; } public Tag(String name, String attr) { this(name); attributes = new Attributes(attr); } public Tag(String name, String attr, boolean close) { this(name, attr); this.close = close; } public Tag(String name, Attributes attr, List content) { super(content); this.name = name.toLowerCase(); attributes = attr; } public Tag(String name, Attributes attr, List content, boolean close) { this(name, attr, content); this.close = close; } /** * Get the value of close. * @return Value of close. */ public boolean getClose() {return close;} /** * Set the value of close. * @param v Value to assign to close. */ public void setClose(boolean v) {this.close = v;} public String toString() { StringBuffer out = new StringBuffer("<" + name); out.append(attributes.toString()); out.append(">\n"); // content ListIterator iterator = super.listIterator(); while (iterator.hasNext()) { out.append(iterator.next().toString()); } if (close) out.append("</" + name + ">\n"); return out.toString(); } /** * Get the value of attributes. * @return Value of attributes. */ public Attributes getAttributes() {return attributes;} /** * Set the value of attributes. * @param v Value to assign to attributes. */ public void setAttributes(Attributes v) {this.attributes = v;} public void addAttribute(Attribute attr) { attributes.add(attr); } }