Module java.desktop
Package javax.swing.text.html

## 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 javax.swing.text.AbstractWriter

      `NEWLINE`

  - ### 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 overriden 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 javax.swing.text.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`

    - ### Methods declared in class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### 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 Detail

    - #### 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 overriden 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 overriden 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