Class XhtmlBaseSink

    • Field Detail

      • writer

        private final java.io.PrintWriter writer
        The PrintWriter to write the result.
      • textBuffer

        private java.lang.StringBuffer textBuffer
        Used to collect text events mainly for the head events.
      • headFlag

        private boolean headFlag
        An indication on if we're inside a head.
      • figureCaptionFlag

        private boolean figureCaptionFlag
        An indication on if we're inside an image caption flag.
      • paragraphFlag

        private boolean paragraphFlag
        An indication on if we're inside a paragraph flag.
      • verbatimFlag

        private boolean verbatimFlag
        An indication on if we're in verbatim mode.
      • cellJustifStack

        private final java.util.LinkedList<int[]> cellJustifStack
        Stack of alignment int[] of table cells.
      • isCellJustifStack

        private final java.util.LinkedList<java.lang.Boolean> isCellJustifStack
        Stack of justification of table cells.
      • cellCountStack

        private final java.util.LinkedList<java.lang.Integer> cellCountStack
        Stack of current table cell.
      • evenTableRow

        private boolean evenTableRow
        Used to style successive table rows differently.
      • tableContentWriterStack

        private final java.util.LinkedList<java.io.StringWriter> tableContentWriterStack
        The stack of StringWriter to write the table result temporary, so we could play with the output DOXIA-177.
      • tableCaptionWriterStack

        private final java.util.LinkedList<java.io.StringWriter> tableCaptionWriterStack
      • tableCaptionXMLWriterStack

        private final java.util.LinkedList<org.codehaus.plexus.util.xml.PrettyPrintXMLWriter> tableCaptionXMLWriterStack
      • tableCaptionStack

        private final java.util.LinkedList<java.lang.String> tableCaptionStack
        The stack of table caption
      • tableAttributes

        protected javax.swing.text.MutableAttributeSet tableAttributes
        used to store attributes passed to table().
      • legacyFigure

        private boolean legacyFigure
        Used to distinguish old-style figure handling.
      • legacyFigureCaption

        private boolean legacyFigureCaption
        Used to distinguish old-style figure handling.
      • inFigure

        private boolean inFigure
        Indicates that an image is part of a figure.
      • tableRows

        protected boolean tableRows
        Flag to know if tableRows(int[], boolean) is called or not. It is mainly to be backward compatible with some plugins (like checkstyle) which uses:
         sink.table();
         sink.tableRow();
         
        instead of
         sink.table();
         sink.tableRows( justify, true );
         sink.tableRow();
         
      • inlineStack

        protected java.util.Stack<java.util.List<javax.swing.text.html.HTML.Tag>> inlineStack
        Keep track of the closing tags for inline events.
      • warnMessages

        private java.util.Map<java.lang.String,​java.util.Set<java.lang.String>> warnMessages
        Map of warn messages with a String as key to describe the error type and a Set as value. Using to reduce warn messages.
    • Constructor Detail

      • XhtmlBaseSink

        public XhtmlBaseSink​(java.io.Writer out)
        Constructor, initialize the PrintWriter.
        Parameters:
        out - The writer to write the result.
    • Method Detail

      • getTextBuffer

        protected java.lang.StringBuffer getTextBuffer()
        To use mainly when playing with the head events.
        Returns:
        the current buffer of text events.
      • setHeadFlag

        protected void setHeadFlag​(boolean headFlag)

        Setter for the field headFlag.

        Parameters:
        headFlag - an header flag.
      • isHeadFlag

        protected boolean isHeadFlag()

        isHeadFlag.

        Returns:
        the current headFlag.
      • setVerbatimFlag

        protected void setVerbatimFlag​(boolean verb)

        Setter for the field verbatimFlag.

        Parameters:
        verb - a verbatim flag.
      • isVerbatimFlag

        protected boolean isVerbatimFlag()

        isVerbatimFlag.

        Returns:
        the current verbatim flag.
      • setCellJustif

        protected void setCellJustif​(int[] justif)

        Setter for the field cellJustif.

        Parameters:
        justif - the new cell justification array.
      • getCellJustif

        protected int[] getCellJustif()

        Getter for the field cellJustif.

        Returns:
        the current cell justification array.
      • setCellCount

        protected void setCellCount​(int count)

        Setter for the field cellCount.

        Parameters:
        count - the new cell count.
      • getCellCount

        protected int getCellCount()

        Getter for the field cellCount.

        Returns:
        the current cell count.
      • resetState

        protected void resetState()
        Deprecated.
        since 1.1.2, use init() instead of.
        Reset all variables.
      • resetTextBuffer

        protected void resetTextBuffer()
        Reset the text buffer.
      • section

        public void section​(int level,
                            SinkEventAttributes attributes)
        Start a new section at the given level.

        Sections with higher level have to be entirely contained within sections of lower level.

        Supported attributes are the base attributes.

        Specified by:
        section in interface Sink
        Overrides:
        section in class SinkAdapter
        Parameters:
        level - the section level.
        attributes - A set of SinkEventAttributes, may be null.
      • sectionTitle

        public void sectionTitle​(int level,
                                 SinkEventAttributes attributes)
        Start a new section title at the given level.

        This element is optional, but if it exists, it has to be contained, and be the first element, within a corresponding section element of the same level.

        NOTE: It is strongly recommended not to make section titles implicit anchors. Neither Parsers nor Sinks should insert any content that is not explicitly present in the original source document, as this would lead to undefined behaviour for multi-format processing chains. However, while Parsers must never emit anchors for section titles, some specialized Sinks may implement such a feature if the resulting output documents are not going to be further processed (and this is properly documented).

        Supported attributes are the base attributes plus ALIGN.

        Specified by:
        sectionTitle in interface Sink
        Overrides:
        sectionTitle in class SinkAdapter
        Parameters:
        level - the section title level.
        attributes - A set of SinkEventAttributes, may be null.
      • sectionTitle_

        public void sectionTitle_​(int level)
        Ends a section title at the given level.
        Specified by:
        sectionTitle_ in interface Sink
        Overrides:
        sectionTitle_ in class SinkAdapter
        Parameters:
        level - the section title level.
      • section_

        public void section_​(int level)
        Ends a section at the given level.
        Specified by:
        section_ in interface Sink
        Overrides:
        section_ in class SinkAdapter
        Parameters:
        level - the section level.
      • onSection

        protected void onSection​(int depth,
                                 SinkEventAttributes attributes)
        Starts a section. The default class style is section.
        Parameters:
        depth - The level of the section.
        attributes - some attributes. May be null.
        See Also:
        HTML.Tag.DIV
      • onSection_

        protected void onSection_​(int depth)
        Ends a section.
        Parameters:
        depth - The level of the section.
        See Also:
        HTML.Tag.DIV
      • onSectionTitle

        protected void onSectionTitle​(int depth,
                                      SinkEventAttributes attributes)
        Starts a section title.
        Parameters:
        depth - The level of the section title.
        attributes - some attributes. May be null.
        See Also:
        HTML.Tag.H2, HTML.Tag.H3, HTML.Tag.H4, HTML.Tag.H5, HTML.Tag.H6
      • onSectionTitle_

        protected void onSectionTitle_​(int depth)
        Ends a section title.
        Parameters:
        depth - The level of the section title.
        See Also:
        HTML.Tag.H2, HTML.Tag.H3, HTML.Tag.H4, HTML.Tag.H5, HTML.Tag.H6
      • list

        public void list()
        Starts an unordered list element.
        Specified by:
        list in interface Sink
        Overrides:
        list in class SinkAdapter
        See Also:
        HTML.Tag.UL
      • list_

        public void list_()
        Ends an unordered list element.
        Specified by:
        list_ in interface Sink
        Overrides:
        list_ in class SinkAdapter
        See Also:
        HTML.Tag.UL
      • listItem

        public void listItem()
        Starts a list item element within an unordered list.
        Specified by:
        listItem in interface Sink
        Overrides:
        listItem in class SinkAdapter
        See Also:
        HTML.Tag.LI
      • listItem_

        public void listItem_()
        Ends a list item element within an unordered list.
        Specified by:
        listItem_ in interface Sink
        Overrides:
        listItem_ in class SinkAdapter
        See Also:
        HTML.Tag.LI
      • numberedList

        public void numberedList​(int numbering)
        The default list style depends on the numbering. Starts an ordered list element.
        Specified by:
        numberedList in interface Sink
        Overrides:
        numberedList in class SinkAdapter
        Parameters:
        numbering - the numbering style.
        See Also:
        HTML.Tag.OL
      • definedTerm

        public void definedTerm()
        Starts a definition term element within a definition list.
        Specified by:
        definedTerm in interface Sink
        Overrides:
        definedTerm in class SinkAdapter
        See Also:
        HTML.Tag.DT
      • definedTerm_

        public void definedTerm_()
        Ends a definition term element within a definition list.
        Specified by:
        definedTerm_ in interface Sink
        Overrides:
        definedTerm_ in class SinkAdapter
        See Also:
        HTML.Tag.DT
      • definition

        public void definition()
        Starts a definition element within a definition list.
        Specified by:
        definition in interface Sink
        Overrides:
        definition in class SinkAdapter
        See Also:
        HTML.Tag.DD
      • definition_

        public void definition_()
        Ends a definition element within a definition list.
        Specified by:
        definition_ in interface Sink
        Overrides:
        definition_ in class SinkAdapter
        See Also:
        HTML.Tag.DD
      • figure

        public void figure()
        Deprecated.
        Use figure(SinkEventAttributes), this method is only kept for backward compatibility. Note that the behavior is different though, as this method writes an img tag, while correctly the img tag should be written by figureGraphics().
        Starts a basic image embedding element.
        Specified by:
        figure in interface Sink
        Overrides:
        figure in class SinkAdapter
        See Also:
        HTML.Tag.IMG
      • figure

        public void figure​(SinkEventAttributes attributes)
        Starts a basic image embedding element.

        The canonical sequence of events for the figure element is:

           sink.figure();
        
           sink.figureGraphics( "figure.png" );
        
           sink.figureCaption();
           sink.text( "Figure caption",);
           sink.figureCaption_();
        
           sink.figure_();
         

        where the figureCaption element is optional.

        However, NOTE that the order of figureCaption and figureGraphics events is arbitrary, ie a parser may emit the figureCaption before or after the figureGraphics. Implementing sinks should be prepared to handle both possibilities.

        NOTE also that the figureGraphics() event does not have to be embedded inside figure(), in particular for in-line images the figureGraphics() should be used stand-alone (in HTML language, figureGraphics() produces a <img> tag, while figure() opens a paragraph- or <div>- like environment).

        Supported attributes are the base attributes.

        Specified by:
        figure in interface Sink
        Overrides:
        figure in class SinkAdapter
        Parameters:
        attributes - A set of SinkEventAttributes, may be null.
        See Also:
        HTML.Tag.IMG
      • figure_

        public void figure_()
        Ends a basic image embedding element.
        Specified by:
        figure_ in interface Sink
        Overrides:
        figure_ in class SinkAdapter
      • figureGraphics

        public void figureGraphics​(java.lang.String name)
        Deprecated.
        Use figureGraphics(String,SinkEventAttributes), this method is only kept for backward compatibility. Note that the behavior is different though, as this method does not write the img tag, only the src attribute.
        Adding a source of a graphic.
        Specified by:
        figureGraphics in interface Sink
        Overrides:
        figureGraphics in class SinkAdapter
        Parameters:
        name - the source
      • paragraph

        public void paragraph()
        Starts an element which represents a paragraph.
        Specified by:
        paragraph in interface Sink
        Overrides:
        paragraph in class SinkAdapter
        See Also:
        HTML.Tag.P
      • paragraph_

        public void paragraph_()
        Ends a paragraph element.
        Specified by:
        paragraph_ in interface Sink
        Overrides:
        paragraph_ in class SinkAdapter
        See Also:
        HTML.Tag.P
      • address

        public void address()
        Starts an address element.
        Specified by:
        address in interface Sink
        Overrides:
        address in class SinkAdapter
        See Also:
        HTML.Tag.ADDRESS
      • address_

        public void address_()
        Ends an address element.
        Specified by:
        address_ in interface Sink
        Overrides:
        address_ in class SinkAdapter
        See Also:
        HTML.Tag.ADDRESS
      • blockquote

        public void blockquote()
        Starts a blockquote element.
        Specified by:
        blockquote in interface Sink
        Overrides:
        blockquote in class SinkAdapter
        See Also:
        HTML.Tag.BLOCKQUOTE
      • blockquote_

        public void blockquote_()
        Ends an blockquote element.
        Specified by:
        blockquote_ in interface Sink
        Overrides:
        blockquote_ in class SinkAdapter
        See Also:
        HTML.Tag.BLOCKQUOTE
      • division

        public void division()
        Starts a division element grouping together other elements.
        Specified by:
        division in interface Sink
        Overrides:
        division in class SinkAdapter
        See Also:
        HTML.Tag.DIV
      • division_

        public void division_()
        Ends a division element.
        Specified by:
        division_ in interface Sink
        Overrides:
        division_ in class SinkAdapter
        See Also:
        HTML.Tag.DIV
      • verbatim

        public void verbatim​(boolean boxed)
        The default class style for boxed is source. Starts an element which indicates that whitespace in the enclosed text has semantic relevance.
        Specified by:
        verbatim in interface Sink
        Overrides:
        verbatim in class SinkAdapter
        Parameters:
        boxed - true to add a box, false otherwise
        See Also:
        HTML.Tag.DIV, HTML.Tag.PRE
      • verbatim

        public void verbatim​(SinkEventAttributes attributes)
        The default class style for boxed is source. Starts a verbatim block, ie a block where whitespace has semantic relevance.

        Text in a verbatim block must only be wrapped at the linebreaks in the source, and spaces should not be collapsed. It should be displayed in a fixed-width font to retain the formatting but the overall size may be chosen by the implementation.

        Most Sink events may be emitted within a verbatim block, the only elements explicitly forbidden are font-changing events and figures. Also, verbatim blocks may not be nested.

        Supported attributes are the base attributes plus:

        DECORATION (value: "boxed"), ALIGN, WIDTH.
        Specified by:
        verbatim in interface Sink
        Overrides:
        verbatim in class SinkAdapter
        Parameters:
        attributes - A set of SinkEventAttributes, may be null.
        See Also:
        HTML.Tag.DIV, HTML.Tag.PRE
      • verbatim_

        public void verbatim_()
        Ends a verbatim element.
        Specified by:
        verbatim_ in interface Sink
        Overrides:
        verbatim_ in class SinkAdapter
        See Also:
        HTML.Tag.DIV, HTML.Tag.PRE
      • horizontalRule

        public void horizontalRule()
        Adding a separator of sections from a text to each other.
        Specified by:
        horizontalRule in interface Sink
        Overrides:
        horizontalRule in class SinkAdapter
        See Also:
        HTML.Tag.HR
      • table

        public void table​(SinkEventAttributes attributes)
        Starts a table.

        The canonical sequence of events for the table element is:

           sink.table();
        
           sink.tableRows( justify, true );
        
           sink.tableRow();
           sink.tableCell();
           sink.text( "cell 1,1" );
           sink.tableCell_();
           sink.tableCell();
           sink.text( "cell 1,2" );
           sink.tableCell_();
           sink.tableRow_();
        
           sink.tableRows_();
        
           sink.tableCaption();
           sink.text( "Table caption" );
           sink.tableCaption_();
        
           sink.table_();
        
         

        where the tableCaption element is optional.

        However, NOTE that the order of tableCaption and Sink.tableRows(int[],boolean) events is arbitrary, ie a parser may emit the tableCaption before or after the tableRows. Implementing sinks should be prepared to handle both possibilities.

        Supported attributes are the base attributes plus:

        ALIGN, BGCOLOR, BORDER, CELLPADDING, CELLSPACING, FRAME, RULES, SUMMARY, WIDTH.
        Specified by:
        table in interface Sink
        Overrides:
        table in class SinkAdapter
        Parameters:
        attributes - A set of SinkEventAttributes, may be null.
      • table_

        public void table_()
        Ends a table element.
        Specified by:
        table_ in interface Sink
        Overrides:
        table_ in class SinkAdapter
        See Also:
        HTML.Tag.TABLE
      • tableRows

        public void tableRows​(int[] justification,
                              boolean grid)
        The default class style is bodyTable. The default align is center. Starts an element that contains rows of table data.
        Specified by:
        tableRows in interface Sink
        Overrides:
        tableRows in class SinkAdapter
        Parameters:
        justification - the default justification of columns. This can be overridden by individual table rows or table cells. If null a left alignment is assumed by default. If this array has less elements than there are columns in the table then the value of the last array element will be taken as default for the remaining table cells.
        grid - true to provide a grid, false otherwise.
        See Also:
        HTML.Tag.TABLE
      • tableRows_

        public void tableRows_()
        Ends an element that contains rows of table data.
        Specified by:
        tableRows_ in interface Sink
        Overrides:
        tableRows_ in class SinkAdapter
      • tableRow

        public void tableRow()
        The default class style is a or b depending the row id. Starts a row element which acts as a container for a row of table cells.
        Specified by:
        tableRow in interface Sink
        Overrides:
        tableRow in class SinkAdapter
        See Also:
        HTML.Tag.TR
      • tableRow_

        public void tableRow_()
        Ends a row element.
        Specified by:
        tableRow_ in interface Sink
        Overrides:
        tableRow_ in class SinkAdapter
        See Also:
        HTML.Tag.TR
      • tableCell

        public void tableCell​(java.lang.String width)
        Starts a cell element which defines a cell that contains data.
        Specified by:
        tableCell in interface Sink
        Overrides:
        tableCell in class SinkAdapter
        Parameters:
        width - the size of the cell.
      • tableHeaderCell

        public void tableHeaderCell​(java.lang.String width)
        Starts a cell element which defines a cell that contains header information.
        Specified by:
        tableHeaderCell in interface Sink
        Overrides:
        tableHeaderCell in class SinkAdapter
        Parameters:
        width - the size of the header cell.
      • tableCell

        private void tableCell​(boolean headerRow,
                               javax.swing.text.MutableAttributeSet attributes)
        Parameters:
        headerRow - true if it is an header row
        attributes - the cell attributes
        See Also:
        HTML.Tag.TH, HTML.Tag.TD
      • tableCell_

        private void tableCell_​(boolean headerRow)
        Ends a table cell.
        Parameters:
        headerRow - true if it is an header row
        See Also:
        HTML.Tag.TH, HTML.Tag.TD
      • tableCaption

        public void tableCaption()
        Starts a caption element of a table.
        Specified by:
        tableCaption in interface Sink
        Overrides:
        tableCaption in class SinkAdapter
        See Also:
        HTML.Tag.CAPTION
      • anchor

        public void anchor​(java.lang.String name)
        Starts an element which defines an anchor.
        Specified by:
        anchor in interface Sink
        Overrides:
        anchor in class SinkAdapter
        Parameters:
        name - the name of the anchor.
        See Also:
        HTML.Tag.A
      • anchor

        public void anchor​(java.lang.String name,
                           SinkEventAttributes attributes)
        Starts an element which defines an anchor.

        The name parameter has to be a valid SGML NAME token. According to the HTML 4.01 specification section 6.2 SGML basic types:

        ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").

        Supported attributes are the base attributes. If NAME is specified in the SinkEventAttributes, it will be overwritten by the name parameter.

        Specified by:
        anchor in interface Sink
        Overrides:
        anchor in class SinkAdapter
        Parameters:
        name - the name of the anchor. This has to be a valid SGML NAME token.
        attributes - A set of SinkEventAttributes, may be null.
        See Also:
        HTML.Tag.A
      • anchor_

        public void anchor_()
        Ends an anchor element.
        Specified by:
        anchor_ in interface Sink
        Overrides:
        anchor_ in class SinkAdapter
        See Also:
        HTML.Tag.A
      • link

        public void link​(java.lang.String name,
                         SinkEventAttributes attributes)
        Starts a link.

        The name parameter has to be a valid html href parameter, ie for internal links (links to an anchor within the same source document), name should start with the character "#".

        Supported attributes are the base attributes plus:

        CHARSET, COORDS, HREF, HREFLANG, REL, REV, SHAPE, TARGET, TYPE.

        If HREF is specified in the SinkEventAttributes, it will be overwritten by the name parameter.

        Specified by:
        link in interface Sink
        Overrides:
        link in class SinkAdapter
        Parameters:
        name - the name of the link.
        attributes - A set of SinkEventAttributes, may be null.
      • link

        private void link​(java.lang.String href,
                          java.lang.String target,
                          javax.swing.text.MutableAttributeSet attributes)
        Adds a link with an optional target. The default style class for external link is externalLink.
        Parameters:
        href - the link href.
        target - the link target, may be null.
        attributes - an AttributeSet, may be null. This is supposed to be filtered already.
        See Also:
        HTML.Tag.A
      • link_

        public void link_()
        Ends a link element.
        Specified by:
        link_ in interface Sink
        Overrides:
        link_ in class SinkAdapter
        See Also:
        HTML.Tag.A
      • inlineSemantics

        private void inlineSemantics​(SinkEventAttributes attributes,
                                     java.lang.String semantic,
                                     java.util.List<javax.swing.text.html.HTML.Tag> tags,
                                     javax.swing.text.html.HTML.Tag tag)
      • inline

        public void inline​(SinkEventAttributes attributes)
        Starts an inline element.

        The inline method is similar to Sink.text(String,SinkEventAttributes), but allows you to wrap arbitrary elements in addition to text.

        Supported attributes are the base attributes plus

        SEMANTICS (values "emphasis", "strong", "small", "line-through", "citation", "quote", "definition", "abbreviation", "italic", "bold", "monospaced", "variable", "sample", "keyboard", "superscript", "subscript", "annotation", "highlight", "ruby", "rubyBase", "rubyText", "rubyTextContainer", "rubyParentheses", "bidirectionalIsolation", "bidirectionalOverride", "phrase", "insert", "delete").
        Specified by:
        inline in interface Sink
        Overrides:
        inline in class SinkAdapter
        Parameters:
        attributes - A set of SinkEventAttributes, may be null.
      • lineBreak

        public void lineBreak()
        Adds a line break.
        Specified by:
        lineBreak in interface Sink
        Overrides:
        lineBreak in class SinkAdapter
        See Also:
        HTML.Tag.BR
      • nonBreakingSpace

        public void nonBreakingSpace()
        Adding a non breaking space, ie a space without any special formatting operations.
        Specified by:
        nonBreakingSpace in interface Sink
        Overrides:
        nonBreakingSpace in class SinkAdapter
      • text

        public void text​(java.lang.String text,
                         SinkEventAttributes attributes)
        Adds a text.

        The text parameter should contain only real content, ie any ignorable/collapsable whitespace/EOLs or other pretty-printing should be removed/normalized by a parser.

        If text contains any variants of line terminators, they should be normalized to the System EOL by an implementing Sink.

        Supported attributes are the base attributes plus

        SEMANTICS (values "emphasis", "strong", "small", "line-through", "citation", "quote", "definition", "abbreviation", "italic", "bold", "monospaced", "variable", "sample", "keyboard", "superscript", "subscript", "annotation", "highlight", "ruby", "rubyBase", "rubyText", "rubyTextContainer", "rubyParentheses", "bidirectionalIsolation", "bidirectionalOverride", "phrase", "insert", "delete").

        The following attributes are deprecated:

        VALIGN (values "sub", "sup"), DECORATION (values "underline", "overline", "line-through"), STYLE (values "italic", "bold", "monospaced").
        Specified by:
        text in interface Sink
        Overrides:
        text in class SinkAdapter
        Parameters:
        text - The text to write.
        attributes - A set of SinkEventAttributes, may be null.
      • rawText

        public void rawText​(java.lang.String text)
        Adding a raw text, ie a text without any special formatting operations.
        Specified by:
        rawText in interface Sink
        Overrides:
        rawText in class SinkAdapter
        Parameters:
        text - The text to write.
      • comment

        public void comment​(java.lang.String comment)
        Add a comment.
        Specified by:
        comment in interface Sink
        Overrides:
        comment in class SinkAdapter
        Parameters:
        comment - The comment to write.
      • unknown

        public void unknown​(java.lang.String name,
                            java.lang.Object[] requiredParams,
                            SinkEventAttributes attributes)
        Add an unknown event. This can be used to generate html tags for which no corresponding sink event exists.

        If HtmlTools.getHtmlTag( name ) does not return null, the corresponding tag will be written.

        For example, the div block

          <div class="detail" style="display:inline">text</div>
         

        can be generated via the following event sequence:

          SinkEventAttributeSet atts = new SinkEventAttributeSet();
          atts.addAttribute( SinkEventAttributes.CLASS, "detail" );
          atts.addAttribute( SinkEventAttributes.STYLE, "display:inline" );
          sink.unknown( "div", new Object[]{new Integer( HtmlMarkup.TAG_TYPE_START )}, atts );
          sink.text( "text" );
          sink.unknown( "div", new Object[]{new Integer( HtmlMarkup.TAG_TYPE_END )}, null );
         
        Specified by:
        unknown in interface Sink
        Overrides:
        unknown in class SinkAdapter
        Parameters:
        name - the name of the event. If this is not a valid xhtml tag name as defined in HtmlMarkup then the event is ignored.
        requiredParams - If this is null or the first argument is not an Integer then the event is ignored. The first argument should indicate the type of the unknown event, its integer value should be one of TAG_TYPE_START, TAG_TYPE_END, TAG_TYPE_SIMPLE, ENTITY_TYPE, or CDATA_TYPE, otherwise the event will be ignored.
        attributes - a set of attributes for the event. May be null. The attributes will always be written, no validity check is performed.
      • flush

        public void flush()
        Flush the writer or the stream, if needed. Flushing a previously-flushed Sink has no effect.
        Specified by:
        flush in interface Sink
        Overrides:
        flush in class SinkAdapter
      • close

        public void close()
        Close the writer or the stream, if needed. Closing a previously-closed Sink has no effect.
        Specified by:
        close in interface Sink
        Overrides:
        close in class SinkAdapter
      • content

        protected void content​(java.lang.String text)
        Write HTML escaped text to output.
        Parameters:
        text - The text to write.
      • verbatimContent

        protected void verbatimContent​(java.lang.String text)
        Write HTML escaped text to output.
        Parameters:
        text - The text to write.
      • escapeHTML

        protected static java.lang.String escapeHTML​(java.lang.String text)
        Forward to HtmlTools.escapeHTML( text ).
        Parameters:
        text - the String to escape, may be null
        Returns:
        the text escaped, "" if null String input
        See Also:
        HtmlTools.escapeHTML(String)
      • encodeURL

        protected static java.lang.String encodeURL​(java.lang.String text)
        Forward to HtmlTools.encodeURL( text ).
        Parameters:
        text - the String to encode, may be null.
        Returns:
        the text encoded, null if null String input.
        See Also:
        HtmlTools.encodeURL(String)
      • write

        protected void write​(java.lang.String text)
        Write a text to the sink.
        Specified by:
        write in class AbstractXmlSink
        Parameters:
        text - the given text to write
      • writeStartTag

        protected void writeStartTag​(javax.swing.text.html.HTML.Tag t,
                                     javax.swing.text.MutableAttributeSet att,
                                     boolean isSimpleTag)
        Starts a Tag with attributes. For instance:
         <tag attName="attValue">
         
        Overrides:
        writeStartTag in class AbstractXmlSink
        Parameters:
        t - a non null tag.
        att - a set of attributes. May be null.
        isSimpleTag - boolean to write as a simple tag.
      • writeEndTag

        protected void writeEndTag​(javax.swing.text.html.HTML.Tag t)
        Ends a Tag without writing an EOL. For instance:
        </tag>
        .
        Overrides:
        writeEndTag in class AbstractXmlSink
        Parameters:
        t - a tag.
      • logMessage

        private void logMessage​(java.lang.String key,
                                java.lang.String msg)
        If debug mode is enabled, log the msg as is, otherwise add unique msg in warnMessages.
        Parameters:
        key - not null
        msg - not null
        Since:
        1.1.1
        See Also:
        close()