# Class HTMLWriter

java.lang.Object
javax.swing.text.AbstractWriter
javax.swing.text.html.HTMLWriter

public class HTMLWriter extends AbstractWriter
This is a writer for HTMLDocuments.

- ## Field Summary

  ### Fields declared in class AbstractWriter

  `NEWLINE`
  Modifier and Type
  Field
  Description
  `protected static final char`
  `NEWLINE`
  How the text packages models newlines.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `HTMLWriter(Writer w, HTMLDocument doc)`
  Creates a new HTMLWriter.
  `HTMLWriter(Writer w, HTMLDocument doc, int pos, int len)`
  Creates a new HTMLWriter.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected void`
  `closeOutUnwantedEmbeddedTags(AttributeSet attr)`
  Searches the attribute set and for each tag that is stored in the tag vector.
  `protected void`
  `comment(Element elem)`
  Writes out comments.
  `protected void`
  `emptyTag(Element elem)`
  Writes out all empty elements (all tags that have no corresponding end tag).
  `protected void`
  `endTag(Element elem)`
  Writes out an end tag for the element.
  `protected boolean`
  `isBlockTag(AttributeSet attr)`
  Determines if the HTML.Tag associated with the element is a block tag.
  `protected boolean`
  `matchNameAttribute(AttributeSet attr, HTML.Tag tag)`
  Returns true if the StyleConstants.NameAttribute is equal to the tag that is passed in as a parameter.
  `protected void`
  `output(char[] chars, int start, int length)`
  This method is overridden to map any character entities, such as < to &lt;.
  `protected void`
  `selectContent(AttributeSet attr)`
  Writes out the content of the SELECT form element.
  `protected void`
  `startTag(Element elem)`
  Writes out a start tag for the element.
  `protected boolean`
  `synthesizedElement(Element elem)`
  Returns `true` if the element is a synthesized element.
  `protected void`
  `text(Element elem)`
  Writes out text.
  `protected void`
  `textAreaContent(AttributeSet attr)`
  Writes out text that is contained in a TEXTAREA form element.
  `void`
  `write()`
  Iterates over the Element tree and controls the writing out of all the tags and its attributes.
  `protected void`
  `writeAttributes(AttributeSet attr)`
  Writes out the attribute set.
  `protected void`
  `writeEmbeddedTags(AttributeSet attr)`
  Searches for embedded tags in the AttributeSet and writes them out.
  `protected void`
  `writeLineSeparator()`
  Writes the line separator.
  `protected void`
  `writeOption(Option option)`
  Writes out the content of the Option form element.

  ### Methods declared in class AbstractWriter

  `decrIndent, getCanWrapLines, getCurrentLineLength, getDocument, getElementIterator, getEndOffset, getIndentLevel, getIndentSpace, getLineLength, getLineSeparator, getStartOffset, getText, getWriter, incrIndent, indent, inRange, isLineEmpty, setCanWrapLines, setCurrentLineLength, setIndentSpace, setLineLength, setLineSeparator, write, write, write`
  Modifier and Type
  Method
  Description
  `protected void`
  `decrIndent()`
  Decrements the indent level.
  `protected boolean`
  `getCanWrapLines()`
  Returns whether or not the lines can be wrapped.
  `protected int`
  `getCurrentLineLength()`
  Returns the current line length.
  `protected Document`
  `getDocument()`
  Fetches the document.
  `protected ElementIterator`
  `getElementIterator()`
  Fetches the ElementIterator.
  `int`
  `getEndOffset()`
  Returns the last offset to be output.
  `protected int`
  `getIndentLevel()`
  Returns the current indentation level.
  `protected int`
  `getIndentSpace()`
  Returns the amount of space to indent.
  `protected int`
  `getLineLength()`
  Returns the maximum line length.
  `String`
  `getLineSeparator()`
  Returns the string used to represent newlines.
  `int`
  `getStartOffset()`
  Returns the first offset to be output.
  `protected String`
  `getText(Element elem)`
  Returns the text associated with the element.
  `protected Writer`
  `getWriter()`
  Returns the Writer that is used to output the content.
  `protected void`
  `incrIndent()`
  Increments the indent level.
  `protected void`
  `indent()`
  Does indentation.
  `protected boolean`
  `inRange(Element next)`
  This method determines whether the current element is in the range specified.
  `protected boolean`
  `isLineEmpty()`
  Returns true if the current line should be considered empty.
  `protected void`
  `setCanWrapLines(boolean newValue)`
  Sets whether or not lines can be wrapped.
  `protected void`
  `setCurrentLineLength(int length)`
  Sets the current line length.
  `protected void`
  `setIndentSpace(int space)`
  Enables subclasses to specify how many spaces an indent maps to.
  `protected void`
  `setLineLength(int l)`
  Enables subclasses to set the number of characters they want written per line.
  `void`
  `setLineSeparator(String value)`
  Sets the String used to represent newlines.
  `protected void`
  `write(char ch)`
  Writes out a character.
  `protected void`
  `write(char[] chars, int startIndex, int length)`
  All write methods call into this one.
  `protected void`
  `write(String content)`
  Writes out a string.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Constructor Details

  - ### HTMLWriter

    public HTMLWriter(Writer w, HTMLDocument doc)
    Creates a new HTMLWriter.
    Parameters:
      `w` - a Writer
      `doc` - an HTMLDocument

  - ### HTMLWriter

    public HTMLWriter(Writer w, HTMLDocument doc, int pos, int len)
    Creates a new HTMLWriter.
    Parameters:
      `w` - a Writer
      `doc` - an HTMLDocument
      `pos` - the document location from which to fetch the content
      `len` - the amount to write out

- ## Method Details

  - ### write

    public void write() throws IOException, BadLocationException
    Iterates over the Element tree and controls the writing out of all the tags and its attributes.
    Specified by:
      `write` in class `AbstractWriter`
    Throws:
      `IOException` - on any I/O error
      `BadLocationException` - if pos represents an invalid location within the document.

  - ### writeAttributes

    protected void writeAttributes(AttributeSet attr) throws IOException
    Writes out the attribute set. Ignores all attributes with a key of type HTML.Tag, attributes with a key of type StyleConstants, and attributes with a key of type HTML.Attribute.ENDTAG.
    Overrides:
      `writeAttributes` in class `AbstractWriter`
    Parameters:
      `attr` - an AttributeSet
    Throws:
      `IOException` - on any I/O error

  - ### emptyTag

    protected void emptyTag(Element elem) throws BadLocationException, IOException
    Writes out all empty elements (all tags that have no corresponding end tag).
    Parameters:
      `elem` - an Element
    Throws:
      `IOException` - on any I/O error
      `BadLocationException` - if pos represents an invalid location within the document.

  - ### isBlockTag

    protected boolean isBlockTag(AttributeSet attr)
    Determines if the HTML.Tag associated with the element is a block tag.
    Parameters:
      `attr` - an AttributeSet
    Returns:
      true if tag is block tag, false otherwise.

  - ### startTag

    protected void startTag(Element elem) throws IOException, BadLocationException
    Writes out a start tag for the element. Ignores all synthesized elements.
    Parameters:
      `elem` - an Element
    Throws:
      `IOException` - on any I/O error
      `BadLocationException` - if pos represents an invalid location within the document.

  - ### textAreaContent

    protected void textAreaContent(AttributeSet attr) throws BadLocationException, IOException
    Writes out text that is contained in a TEXTAREA form element.
    Parameters:
      `attr` - an AttributeSet
    Throws:
      `IOException` - on any I/O error
      `BadLocationException` - if pos represents an invalid location within the document.

  - ### text

    protected void text(Element elem) throws BadLocationException, IOException
    Writes out text. If a range is specified when the constructor is invoked, then only the appropriate range of text is written out.
    Overrides:
      `text` in class `AbstractWriter`
    Parameters:
      `elem` - an Element
    Throws:
      `IOException` - on any I/O error
      `BadLocationException` - if pos represents an invalid location within the document.

  - ### selectContent

    protected void selectContent(AttributeSet attr) throws IOException
    Writes out the content of the SELECT form element.
    Parameters:
      `attr` - the AttributeSet associated with the form element
    Throws:
      `IOException` - on any I/O error

  - ### writeOption

    protected void writeOption(Option option) throws IOException
    Writes out the content of the Option form element.
    Parameters:
      `option` - an Option
    Throws:
      `IOException` - on any I/O error

  - ### endTag

    protected void endTag(Element elem) throws IOException
    Writes out an end tag for the element.
    Parameters:
      `elem` - an Element
    Throws:
      `IOException` - on any I/O error

  - ### comment

    protected void comment(Element elem) throws BadLocationException, IOException
    Writes out comments.
    Parameters:
      `elem` - an Element
    Throws:
      `IOException` - on any I/O error
      `BadLocationException` - if pos represents an invalid location within the document.

  - ### synthesizedElement

    protected boolean synthesizedElement(Element elem)
    Returns `true` if the element is a synthesized element. Currently we are only testing for the p-implied tag.
    Parameters:
      `elem` - an element
    Returns:
      `true` if the element is a synthesized element.

  - ### matchNameAttribute

    protected boolean matchNameAttribute(AttributeSet attr, HTML.Tag tag)
    Returns true if the StyleConstants.NameAttribute is equal to the tag that is passed in as a parameter.
    Parameters:
      `attr` - a set of attributes
      `tag` - an HTML tag
    Returns:
      `true` if the StyleConstants.NameAttribute is equal to the tag that is passed in as a parameter.

  - ### writeEmbeddedTags

    protected void writeEmbeddedTags(AttributeSet attr) throws IOException
    Searches for embedded tags in the AttributeSet and writes them out. It also stores these tags in a vector so that when appropriate the corresponding end tags can be written out.
    Parameters:
      `attr` - a set of attributes
    Throws:
      `IOException` - on any I/O error

  - ### closeOutUnwantedEmbeddedTags

    protected void closeOutUnwantedEmbeddedTags(AttributeSet attr) throws IOException
    Searches the attribute set and for each tag that is stored in the tag vector. If the tag is not found, then the tag is removed from the vector and a corresponding end tag is written out.
    Parameters:
      `attr` - a set of attributes
    Throws:
      `IOException` - on any I/O error

  - ### writeLineSeparator

    protected void writeLineSeparator() throws IOException
    Writes the line separator. This is overridden to make sure we don't replace the newline content in case it is outside normal ascii.
    Overrides:
      `writeLineSeparator` in class `AbstractWriter`
    Throws:
      `IOException` - on any I/O error
    Since:
      1.3

  - ### output

    protected void output(char[] chars, int start, int length) throws IOException
    This method is overridden to map any character entities, such as < to &lt;. `super.output` will be invoked to write the content.
    Overrides:
      `output` in class `AbstractWriter`
    Parameters:
      `chars` - characters to output
      `start` - starting index
      `length` - length of output
    Throws:
      `IOException` - on any I/O error
    Since:
      1.3