Class TreeBuilder<T>

    • Constructor Detail

      • TreeBuilder

        protected TreeBuilder()
    • Method Detail

      • fatal

        protected void fatal()
                      throws org.xml.sax.SAXException
        Reports an condition that would make the infoset incompatible with XML 1.0 as fatal.
        Throws:
        org.xml.sax.SAXException
        org.xml.sax.SAXParseException
      • fatal

        protected final void fatal​(java.lang.Exception e)
                            throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • fatal

        final void fatal​(java.lang.String s)
                  throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • err

        final void err​(java.lang.String message)
                throws org.xml.sax.SAXException
        Reports a Parse Error.
        Parameters:
        message - the message
        Throws:
        org.xml.sax.SAXException
      • errNoCheck

        final void errNoCheck​(java.lang.String message)
                       throws org.xml.sax.SAXException
        Reports a Parse Error without checking if an error handler is present.
        Parameters:
        message - the message
        Throws:
        org.xml.sax.SAXException
      • errListUnclosedStartTags

        private void errListUnclosedStartTags​(int eltPos)
                                       throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • reportUnclosedElementNameAndLocation

        private final void reportUnclosedElementNameAndLocation​(int pos)
                                                         throws org.xml.sax.SAXException
        Reports the name and location of an unclosed element.
        Throws:
        org.xml.sax.SAXException
      • warn

        final void warn​(java.lang.String message)
                 throws org.xml.sax.SAXException
        Reports a warning
        Parameters:
        message - the message
        Throws:
        org.xml.sax.SAXException
      • warn

        final void warn​(java.lang.String message,
                        org.xml.sax.Locator locator)
                 throws org.xml.sax.SAXException
        Reports a warning with an explicit locator
        Parameters:
        message - the message
        Throws:
        org.xml.sax.SAXException
      • startTokenization

        public final void startTokenization​(Tokenizer self)
                                     throws org.xml.sax.SAXException
        Description copied from interface: TokenHandler
        This method is called at the start of tokenization before any other methods on this interface are called. Implementations should hold the reference to the Tokenizer in order to set the content model flag and in order to be able to query for Locator data.
        Specified by:
        startTokenization in interface TokenHandler
        Parameters:
        self - the Tokenizer.
        Throws:
        org.xml.sax.SAXException - if something went wrong
      • doctype

        public final void doctype​(java.lang.String name,
                                  java.lang.String publicIdentifier,
                                  java.lang.String systemIdentifier,
                                  boolean forceQuirks)
                           throws org.xml.sax.SAXException
        Description copied from interface: TokenHandler
        Receive a doctype token.
        Specified by:
        doctype in interface TokenHandler
        Parameters:
        name - the name
        publicIdentifier - the public id
        systemIdentifier - the system id
        forceQuirks - whether the token is correct
        Throws:
        org.xml.sax.SAXException - if something went wrong
      • isHtml4Doctype

        private boolean isHtml4Doctype​(java.lang.String publicIdentifier)
      • comment

        public final void comment​(char[] buf,
                                  int start,
                                  int length)
                           throws org.xml.sax.SAXException
        Description copied from interface: TokenHandler
        Receive a comment token. The data is junk if the wantsComments() returned false.
        Specified by:
        comment in interface TokenHandler
        Parameters:
        buf - a buffer holding the data
        start - the offset into the buffer
        length - the number of code units to read
        Throws:
        org.xml.sax.SAXException - if something went wrong
      • characters

        public final void characters​(char[] buf,
                                     int start,
                                     int length)
                              throws org.xml.sax.SAXException
        Description copied from interface: TokenHandler
        Receive character tokens. This method has the same semantics as the SAX method of the same name.
        Specified by:
        characters in interface TokenHandler
        Parameters:
        buf - a buffer holding the data
        start - offset into the buffer
        length - the number of code units to read
        Throws:
        org.xml.sax.SAXException - if something went wrong
        See Also:
        TokenHandler.characters(char[], int, int)
      • eof

        public final void eof()
                       throws org.xml.sax.SAXException
        Description copied from interface: TokenHandler
        The end-of-file token.
        Specified by:
        eof in interface TokenHandler
        Throws:
        org.xml.sax.SAXException - if something went wrong
      • startTag

        public final void startTag​(ElementName elementName,
                                   HtmlAttributes attributes,
                                   boolean selfClosing)
                            throws org.xml.sax.SAXException
        Description copied from interface: TokenHandler
        Receive a start tag token.
        Specified by:
        startTag in interface TokenHandler
        Parameters:
        elementName - the tag name
        attributes - the attributes
        selfClosing - TODO
        Throws:
        org.xml.sax.SAXException - if something went wrong
      • isSpecialParentInForeign

        private boolean isSpecialParentInForeign​(StackNode<T> stackNode)
      • extractCharsetFromContent

        public static java.lang.String extractCharsetFromContent​(java.lang.String attributeValue)

        C++ memory note: The return value must be released.

        Returns:
        Throws:
        org.xml.sax.SAXException
        StopSniffingException
      • checkMetaCharset

        private void checkMetaCharset​(HtmlAttributes attributes)
                               throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • endTag

        public final void endTag​(ElementName elementName)
                          throws org.xml.sax.SAXException
        Description copied from interface: TokenHandler
        Receive an end tag token.
        Specified by:
        endTag in interface TokenHandler
        Parameters:
        elementName - the tag name
        Throws:
        org.xml.sax.SAXException - if something went wrong
      • findLastInTableScopeOrRootTbodyTheadTfoot

        private int findLastInTableScopeOrRootTbodyTheadTfoot()
      • findLast

        private int findLast​(java.lang.String name)
      • findLastInTableScope

        private int findLastInTableScope​(java.lang.String name)
      • findLastInButtonScope

        private int findLastInButtonScope​(java.lang.String name)
      • findLastInScope

        private int findLastInScope​(java.lang.String name)
      • findLastInListScope

        private int findLastInListScope​(java.lang.String name)
      • findLastInScopeHn

        private int findLastInScopeHn()
      • generateImpliedEndTagsExceptFor

        private void generateImpliedEndTagsExceptFor​(java.lang.String name)
                                              throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • generateImpliedEndTags

        private void generateImpliedEndTags()
                                     throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • isSecondOnStackBody

        private boolean isSecondOnStackBody()
      • documentModeInternal

        private void documentModeInternal​(DocumentMode m,
                                          java.lang.String publicIdentifier,
                                          java.lang.String systemIdentifier,
                                          boolean html4SpecificAdditionalErrorChecks)
                                   throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • isAlmostStandards

        private boolean isAlmostStandards​(java.lang.String publicIdentifier,
                                          java.lang.String systemIdentifier)
      • isQuirky

        private boolean isQuirky​(java.lang.String name,
                                 java.lang.String publicIdentifier,
                                 java.lang.String systemIdentifier,
                                 boolean forceQuirks)
      • closeTheCell

        private void closeTheCell​(int eltPos)
                           throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • findLastInTableScopeTdTh

        private int findLastInTableScopeTdTh()
      • clearStackBackTo

        private void clearStackBackTo​(int eltPos)
                               throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • resetTheInsertionMode

        private void resetTheInsertionMode()
      • implicitlyCloseP

        private void implicitlyCloseP()
                               throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • clearLastStackSlot

        private boolean clearLastStackSlot()
      • clearLastListSlot

        private boolean clearLastListSlot()
      • push

        private void push​(StackNode<T> node)
                   throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • silentPush

        private void silentPush​(StackNode<T> node)
                         throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • append

        private void append​(StackNode<T> node)
      • insertMarker

        private void insertMarker()
      • clearTheListOfActiveFormattingElementsUpToTheLastMarker

        private void clearTheListOfActiveFormattingElementsUpToTheLastMarker()
      • isCurrent

        private boolean isCurrent​(java.lang.String name)
      • removeFromStack

        private void removeFromStack​(int pos)
                              throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • removeFromStack

        private void removeFromStack​(StackNode<T> node)
                              throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • removeFromListOfActiveFormattingElements

        private void removeFromListOfActiveFormattingElements​(int pos)
      • adoptionAgencyEndTag

        private boolean adoptionAgencyEndTag​(java.lang.String name)
                                      throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • insertIntoStack

        private void insertIntoStack​(StackNode<T> node,
                                     int position)
                              throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • insertIntoListOfActiveFormattingElements

        private void insertIntoListOfActiveFormattingElements​(StackNode<T> formattingClone,
                                                              int bookmark)
      • findInListOfActiveFormattingElements

        private int findInListOfActiveFormattingElements​(StackNode<T> node)
      • findInListOfActiveFormattingElementsContainsBetweenEndAndLastMarker

        private int findInListOfActiveFormattingElementsContainsBetweenEndAndLastMarker​(java.lang.String name)
      • maybeForgetEarlierDuplicateFormattingElement

        private void maybeForgetEarlierDuplicateFormattingElement​(java.lang.String name,
                                                                  HtmlAttributes attributes)
                                                           throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • findLastOrRoot

        private int findLastOrRoot​(java.lang.String name)
      • findLastOrRoot

        private int findLastOrRoot​(int group)
      • addAttributesToBody

        private boolean addAttributesToBody​(HtmlAttributes attributes)
                                     throws org.xml.sax.SAXException
        Attempt to add attribute to the body element.
        Parameters:
        attributes - the attributes
        Returns:
        true iff the attributes were added
        Throws:
        org.xml.sax.SAXException
      • addAttributesToHtml

        private void addAttributesToHtml​(HtmlAttributes attributes)
                                  throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • pushHeadPointerOntoStack

        private void pushHeadPointerOntoStack()
                                       throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • reconstructTheActiveFormattingElements

        private void reconstructTheActiveFormattingElements()
                                                     throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • insertIntoFosterParent

        private void insertIntoFosterParent​(T child)
                                     throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • isInStack

        private boolean isInStack​(StackNode<T> node)
      • pop

        private void pop()
                  throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • silentPop

        private void silentPop()
                        throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • popOnEof

        private void popOnEof()
                       throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • checkAttributes

        private void checkAttributes​(HtmlAttributes attributes,
                                     java.lang.String ns)
                              throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • checkPopName

        private java.lang.String checkPopName​(java.lang.String name)
                                       throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • appendHtmlElementToDocumentAndPush

        private void appendHtmlElementToDocumentAndPush​(HtmlAttributes attributes)
                                                 throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • appendHtmlElementToDocumentAndPush

        private void appendHtmlElementToDocumentAndPush()
                                                 throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • appendToCurrentNodeAndPushHeadElement

        private void appendToCurrentNodeAndPushHeadElement​(HtmlAttributes attributes)
                                                    throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • appendToCurrentNodeAndPushBodyElement

        private void appendToCurrentNodeAndPushBodyElement​(HtmlAttributes attributes)
                                                    throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • appendToCurrentNodeAndPushBodyElement

        private void appendToCurrentNodeAndPushBodyElement()
                                                    throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • appendToCurrentNodeAndPushFormElementMayFoster

        private void appendToCurrentNodeAndPushFormElementMayFoster​(HtmlAttributes attributes)
                                                             throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • appendToCurrentNodeAndPushFormattingElementMayFoster

        private void appendToCurrentNodeAndPushFormattingElementMayFoster​(ElementName elementName,
                                                                          HtmlAttributes attributes)
                                                                   throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • appendToCurrentNodeAndPushElement

        private void appendToCurrentNodeAndPushElement​(ElementName elementName,
                                                       HtmlAttributes attributes)
                                                throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • appendToCurrentNodeAndPushElementMayFoster

        private void appendToCurrentNodeAndPushElementMayFoster​(ElementName elementName,
                                                                HtmlAttributes attributes)
                                                         throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • appendToCurrentNodeAndPushElementMayFosterMathML

        private void appendToCurrentNodeAndPushElementMayFosterMathML​(ElementName elementName,
                                                                      HtmlAttributes attributes)
                                                               throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • annotationXmlEncodingPermitsHtml

        private boolean annotationXmlEncodingPermitsHtml​(HtmlAttributes attributes)
      • appendToCurrentNodeAndPushElementMayFosterSVG

        private void appendToCurrentNodeAndPushElementMayFosterSVG​(ElementName elementName,
                                                                   HtmlAttributes attributes)
                                                            throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • appendToCurrentNodeAndPushElementMayFoster

        private void appendToCurrentNodeAndPushElementMayFoster​(ElementName elementName,
                                                                HtmlAttributes attributes,
                                                                T form)
                                                         throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • appendVoidElementToCurrentMayFoster

        private void appendVoidElementToCurrentMayFoster​(java.lang.String name,
                                                         HtmlAttributes attributes,
                                                         T form)
                                                  throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • appendVoidElementToCurrentMayFoster

        private void appendVoidElementToCurrentMayFoster​(ElementName elementName,
                                                         HtmlAttributes attributes)
                                                  throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • appendVoidElementToCurrentMayFosterSVG

        private void appendVoidElementToCurrentMayFosterSVG​(ElementName elementName,
                                                            HtmlAttributes attributes)
                                                     throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • appendVoidElementToCurrentMayFosterMathML

        private void appendVoidElementToCurrentMayFosterMathML​(ElementName elementName,
                                                               HtmlAttributes attributes)
                                                        throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • appendVoidElementToCurrent

        private void appendVoidElementToCurrent​(java.lang.String name,
                                                HtmlAttributes attributes,
                                                T form)
                                         throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • appendVoidFormToCurrent

        private void appendVoidFormToCurrent​(HtmlAttributes attributes)
                                      throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • accumulateCharactersForced

        private final void accumulateCharactersForced​(char[] buf,
                                                      int start,
                                                      int length)
                                               throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • accumulateCharacters

        protected void accumulateCharacters​(char[] buf,
                                            int start,
                                            int length)
                                     throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • requestSuspension

        protected final void requestSuspension()
      • createElement

        protected abstract T createElement​(java.lang.String ns,
                                           java.lang.String name,
                                           HtmlAttributes attributes)
                                    throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • createElement

        protected T createElement​(java.lang.String ns,
                                  java.lang.String name,
                                  HtmlAttributes attributes,
                                  T form)
                           throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • createHtmlElementSetAsRoot

        protected abstract T createHtmlElementSetAsRoot​(HtmlAttributes attributes)
                                                 throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • detachFromParent

        protected abstract void detachFromParent​(T element)
                                          throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • hasChildren

        protected abstract boolean hasChildren​(T element)
                                        throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • appendElement

        protected abstract void appendElement​(T child,
                                              T newParent)
                                       throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • appendChildrenToNewParent

        protected abstract void appendChildrenToNewParent​(T oldParent,
                                                          T newParent)
                                                   throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • insertFosterParentedChild

        protected abstract void insertFosterParentedChild​(T child,
                                                          T table,
                                                          T stackParent)
                                                   throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • insertFosterParentedCharacters

        protected abstract void insertFosterParentedCharacters​(char[] buf,
                                                               int start,
                                                               int length,
                                                               T table,
                                                               T stackParent)
                                                        throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • appendCharacters

        protected abstract void appendCharacters​(T parent,
                                                 char[] buf,
                                                 int start,
                                                 int length)
                                          throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • appendIsindexPrompt

        protected abstract void appendIsindexPrompt​(T parent)
                                             throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • appendComment

        protected abstract void appendComment​(T parent,
                                              char[] buf,
                                              int start,
                                              int length)
                                       throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • appendCommentToDocument

        protected abstract void appendCommentToDocument​(char[] buf,
                                                        int start,
                                                        int length)
                                                 throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • addAttributesToElement

        protected abstract void addAttributesToElement​(T element,
                                                       HtmlAttributes attributes)
                                                throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • markMalformedIfScript

        protected void markMalformedIfScript​(T elt)
                                      throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • start

        protected void start​(boolean fragmentMode)
                      throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • end

        protected void end()
                    throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • appendDoctypeToDocument

        protected void appendDoctypeToDocument​(java.lang.String name,
                                               java.lang.String publicIdentifier,
                                               java.lang.String systemIdentifier)
                                        throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • elementPushed

        protected void elementPushed​(java.lang.String ns,
                                     java.lang.String name,
                                     T node)
                              throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • elementPopped

        protected void elementPopped​(java.lang.String ns,
                                     java.lang.String name,
                                     T node)
                              throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • documentMode

        protected void documentMode​(DocumentMode m,
                                    java.lang.String publicIdentifier,
                                    java.lang.String systemIdentifier,
                                    boolean html4SpecificAdditionalErrorChecks)
                             throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • wantsComments

        public boolean wantsComments()
        Description copied from interface: TokenHandler
        If this handler implementation cares about comments, return true. If not, return false.
        Specified by:
        wantsComments in interface TokenHandler
        Returns:
        whether this handler wants comments
        See Also:
        TokenHandler.wantsComments()
      • setIgnoringComments

        public void setIgnoringComments​(boolean ignoreComments)
      • setErrorHandler

        public final void setErrorHandler​(org.xml.sax.ErrorHandler errorHandler)
        Sets the errorHandler.
        Parameters:
        errorHandler - the errorHandler to set
      • getErrorHandler

        public org.xml.sax.ErrorHandler getErrorHandler()
        Returns the errorHandler.
        Returns:
        the errorHandler
      • setFragmentContext

        public final void setFragmentContext​(java.lang.String context)
        The argument MUST be an interned string or null.
        Parameters:
        context -
      • cdataSectionAllowed

        public boolean cdataSectionAllowed()
                                    throws org.xml.sax.SAXException
        Description copied from interface: TokenHandler
        Checks if the CDATA sections are allowed.
        Specified by:
        cdataSectionAllowed in interface TokenHandler
        Returns:
        true if CDATA sections are allowed
        Throws:
        org.xml.sax.SAXException - if something went wrong
        See Also:
        TokenHandler.cdataSectionAllowed()
      • isInForeign

        private boolean isInForeign()
      • isInForeignButNotHtmlOrMathTextIntegrationPoint

        private boolean isInForeignButNotHtmlOrMathTextIntegrationPoint()
      • setFragmentContext

        public final void setFragmentContext​(java.lang.String context,
                                             java.lang.String ns,
                                             T node,
                                             boolean quirks)
        The argument MUST be an interned string or null.
        Parameters:
        context -
      • currentNode

        protected final T currentNode()
      • isScriptingEnabled

        public boolean isScriptingEnabled()
        Returns the scriptingEnabled.
        Returns:
        the scriptingEnabled
      • setScriptingEnabled

        public void setScriptingEnabled​(boolean scriptingEnabled)
        Sets the scriptingEnabled.
        Parameters:
        scriptingEnabled - the scriptingEnabled to set
      • setDoctypeExpectation

        public void setDoctypeExpectation​(DoctypeExpectation doctypeExpectation)
        Sets the doctypeExpectation.
        Parameters:
        doctypeExpectation - the doctypeExpectation to set
      • setDocumentModeHandler

        public void setDocumentModeHandler​(DocumentModeHandler documentModeHandler)
        Sets the documentModeHandler.
        Parameters:
        documentModeHandler - the documentModeHandler to set
      • setReportingDoctype

        public void setReportingDoctype​(boolean reportingDoctype)
        Sets the reportingDoctype.
        Parameters:
        reportingDoctype - the reportingDoctype to set
      • flushCharacters

        public final void flushCharacters()
                                   throws org.xml.sax.SAXException
        Flushes the pending characters. Public for document.write use cases only.
        Throws:
        org.xml.sax.SAXException
      • charBufferContainsNonWhitespace

        private boolean charBufferContainsNonWhitespace()
      • newSnapshot

        public TreeBuilderState<T> newSnapshot()
                                        throws org.xml.sax.SAXException
        Creates a comparable snapshot of the tree builder state. Snapshot creation is only supported immediately after a script end tag has been processed. In C++ the caller is responsible for calling delete on the returned object.
        Returns:
        a snapshot.
        Throws:
        org.xml.sax.SAXException
      • loadState

        public void loadState​(TreeBuilderState<T> snapshot,
                              Interner interner)
                       throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • getMode

        public int getMode()
        Returns the mode.
        Specified by:
        getMode in interface TreeBuilderState<T>
        Returns:
        the mode
      • getOriginalMode

        public int getOriginalMode()
        Returns the originalMode.
        Specified by:
        getOriginalMode in interface TreeBuilderState<T>
        Returns:
        the originalMode
      • isFramesetOk

        public boolean isFramesetOk()
        Returns the framesetOk.
        Specified by:
        isFramesetOk in interface TreeBuilderState<T>
        Returns:
        the framesetOk
      • isNeedToDropLF

        public boolean isNeedToDropLF()
        Returns the needToDropLF.
        Specified by:
        isNeedToDropLF in interface TreeBuilderState<T>
        Returns:
        the needToDropLF
      • isQuirks

        public boolean isQuirks()
        Returns the quirks.
        Specified by:
        isQuirks in interface TreeBuilderState<T>
        Returns:
        the quirks
      • errStrayStartTag

        private void errStrayStartTag​(java.lang.String name)
                               throws org.xml.sax.SAXException
        Reports a stray start tag.
        Parameters:
        name - the name of the stray tag
        Throws:
        org.xml.sax.SAXException
      • errStrayEndTag

        private void errStrayEndTag​(java.lang.String name)
                             throws org.xml.sax.SAXException
        Reports a stray end tag.
        Parameters:
        name - the name of the stray tag
        Throws:
        org.xml.sax.SAXException
      • errUnclosedElements

        private void errUnclosedElements​(int eltPos,
                                         java.lang.String name)
                                  throws org.xml.sax.SAXException
        Reports a state when elements expected to be closed were not.
        Parameters:
        eltPos - the position of the start tag on the stack of the element being closed.
        name - the name of the end tag
        Throws:
        org.xml.sax.SAXException
      • errUnclosedElementsImplied

        private void errUnclosedElementsImplied​(int eltPos,
                                                java.lang.String name)
                                         throws org.xml.sax.SAXException
        Reports a state when elements expected to be closed ahead of an implied end tag but were not.
        Parameters:
        eltPos - the position of the start tag on the stack of the element being closed.
        name - the name of the end tag
        Throws:
        org.xml.sax.SAXException
      • errUnclosedElementsCell

        private void errUnclosedElementsCell​(int eltPos)
                                      throws org.xml.sax.SAXException
        Reports a state when elements expected to be closed ahead of an implied table cell close.
        Parameters:
        eltPos - the position of the start tag on the stack of the element being closed.
        Throws:
        org.xml.sax.SAXException
      • errStrayDoctype

        private void errStrayDoctype()
                              throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errAlmostStandardsDoctype

        private void errAlmostStandardsDoctype()
                                        throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errQuirkyDoctype

        private void errQuirkyDoctype()
                               throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errNonSpaceInTrailer

        private void errNonSpaceInTrailer()
                                   throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errNonSpaceAfterFrameset

        private void errNonSpaceAfterFrameset()
                                       throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errNonSpaceInFrameset

        private void errNonSpaceInFrameset()
                                    throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errNonSpaceAfterBody

        private void errNonSpaceAfterBody()
                                   throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errNonSpaceInColgroupInFragment

        private void errNonSpaceInColgroupInFragment()
                                              throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errNonSpaceInNoscriptInHead

        private void errNonSpaceInNoscriptInHead()
                                          throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errFooBetweenHeadAndBody

        private void errFooBetweenHeadAndBody​(java.lang.String name)
                                       throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errStartTagWithoutDoctype

        private void errStartTagWithoutDoctype()
                                        throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errNoSelectInTableScope

        private void errNoSelectInTableScope()
                                      throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errStartSelectWhereEndSelectExpected

        private void errStartSelectWhereEndSelectExpected()
                                                   throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errStartTagWithSelectOpen

        private void errStartTagWithSelectOpen​(java.lang.String name)
                                        throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errBadStartTagInHead

        private void errBadStartTagInHead​(java.lang.String name)
                                   throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errImage

        private void errImage()
                       throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errIsindex

        private void errIsindex()
                         throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errFooSeenWhenFooOpen

        private void errFooSeenWhenFooOpen​(java.lang.String name)
                                    throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errHeadingWhenHeadingOpen

        private void errHeadingWhenHeadingOpen()
                                        throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errFramesetStart

        private void errFramesetStart()
                               throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errNoCellToClose

        private void errNoCellToClose()
                               throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errStartTagInTable

        private void errStartTagInTable​(java.lang.String name)
                                 throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errFormWhenFormOpen

        private void errFormWhenFormOpen()
                                  throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errTableSeenWhileTableOpen

        private void errTableSeenWhileTableOpen()
                                         throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errStartTagInTableBody

        private void errStartTagInTableBody​(java.lang.String name)
                                     throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errEndTagSeenWithoutDoctype

        private void errEndTagSeenWithoutDoctype()
                                          throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errEndTagAfterBody

        private void errEndTagAfterBody()
                                 throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errEndTagSeenWithSelectOpen

        private void errEndTagSeenWithSelectOpen​(java.lang.String name)
                                          throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errGarbageInColgroup

        private void errGarbageInColgroup()
                                   throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errEndTagBr

        private void errEndTagBr()
                          throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errNoElementToCloseButEndTagSeen

        private void errNoElementToCloseButEndTagSeen​(java.lang.String name)
                                               throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errHtmlStartTagInForeignContext

        private void errHtmlStartTagInForeignContext​(java.lang.String name)
                                              throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errTableClosedWhileCaptionOpen

        private void errTableClosedWhileCaptionOpen()
                                             throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errNoTableRowToClose

        private void errNoTableRowToClose()
                                   throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errNonSpaceInTable

        private void errNonSpaceInTable()
                                 throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errUnclosedChildrenInRuby

        private void errUnclosedChildrenInRuby()
                                        throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errStartTagSeenWithoutRuby

        private void errStartTagSeenWithoutRuby​(java.lang.String name)
                                         throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errSelfClosing

        private void errSelfClosing()
                             throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errNoCheckUnclosedElementsOnStack

        private void errNoCheckUnclosedElementsOnStack()
                                                throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errEndTagDidNotMatchCurrentOpenElement

        private void errEndTagDidNotMatchCurrentOpenElement​(java.lang.String name,
                                                            java.lang.String currOpenName)
                                                     throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errEndTagViolatesNestingRules

        private void errEndTagViolatesNestingRules​(java.lang.String name)
                                            throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errEofWithUnclosedElements

        private void errEofWithUnclosedElements()
                                         throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • errEndWithUnclosedElements

        private void errEndWithUnclosedElements​(java.lang.String name)
                                         throws org.xml.sax.SAXException
        Reports arriving at/near end of document with unclosed elements remaining.
        Parameters:
        message - the message
        Throws:
        org.xml.sax.SAXException