Class ElementBuilderImpl

  • Direct Known Subclasses:
    DomBuilderImpl, HtmlBuilderImpl

    public abstract class ElementBuilderImpl
    extends java.lang.Object
    Base implementation of ElementBuilderBase that handles state, but nothing else.

    DO NOT USE THIS CLASS. This class is an implementation class and may change in the future.

    This class is used to ensure that the HTML and DOM implementations throw the same exceptions, even if something is valid in one and not the other. For example, the DOM implementation supports changing an attribute after setting inner HTML, but the HTML version does not, so they should both throw an error. Otherwise, they would not be swappable.
    • Constructor Detail

      • ElementBuilderImpl

        public ElementBuilderImpl()
    • Method Detail

      • end

        public void end()
      • end

        public void end​(java.lang.String tagName)
      • endStyle

        public void endStyle()
      • finish

        public Element finish()
        Return the built DOM as an Element.
        Returns:
        the Element that was built
      • getDepth

        public int getDepth()
      • html

        public void html​(SafeHtml html)
      • onStart

        public void onStart​(java.lang.String tagName,
                            ElementBuilderBase<?> builder)
      • text

        public void text​(java.lang.String text)
      • assertCanAddAttributeImpl

        protected void assertCanAddAttributeImpl()
        Assert that the builder is in a state where an attribute can be added.
      • assertCanAddStylePropertyImpl

        protected void assertCanAddStylePropertyImpl()
        Assert that a style property can be added, and setup the state as if one is about to be added.
      • assertValidTagName

        protected void assertValidTagName​(java.lang.String tagName)
        Assert that the specified tag name is valid.
        Throws:
        java.lang.IllegalArgumentException - if not valid
      • doCloseStartTagImpl

        protected abstract void doCloseStartTagImpl()
        Close the start tag.
      • doCloseStyleAttributeImpl

        protected abstract void doCloseStyleAttributeImpl()
        Close the style attribute.
      • doEndStartTagImpl

        protected abstract void doEndStartTagImpl()
        Self-close the start tag. This method is called for elements that forbid the end tag.
      • doEndTagImpl

        protected abstract void doEndTagImpl​(java.lang.String tagName)
        End the specified tag.
        Parameters:
        tagName - the name of the tag to end
      • doFinishImpl

        protected abstract Element doFinishImpl()
        Return the build element.
        Returns:
        the element
      • doHtmlImpl

        protected abstract void doHtmlImpl​(SafeHtml html)
        Set the specified html as the inner HTML of the current element.
        Parameters:
        html - the HTML to set
      • doOpenStyleImpl

        protected abstract void doOpenStyleImpl()
        Open the style attribute.
      • doTextImpl

        protected abstract void doTextImpl​(java.lang.String text)
        Set the specified text as the inner text of the current element.
        Parameters:
        text - the text to set
      • endAllTags

        protected void endAllTags()
        End all open tags, including the root element.

        Doing so also ensures that all builder methods will throw an exception because the stack is empty, and a new element cannot be started.

      • lockCurrentElement

        protected void lockCurrentElement()
        Lock the current element, preventing any additional changes to it. The only valid option is to call end().