com.google.gwt.dom.builder.shared

## Class ElementBuilderImpl

- java.lang.Object
- - com.google.gwt.dom.builder.shared.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 Summary

    Constructors
    Constructor and Description
    `ElementBuilderImpl()`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `assertCanAddAttributeImpl()` Assert that the builder is in a state where an attribute can be added.
    `protected void` | `assertCanAddStylePropertyImpl()` Assert that a style property can be added, and setup the state as if one is about to be added.
    `protected void` | `assertValidTagName(java.lang.String tagName)` Assert that the specified tag name is valid.
    `protected abstract void` | `doCloseStartTagImpl()` Close the start tag.
    `protected abstract void` | `doCloseStyleAttributeImpl()` Close the style attribute.
    `protected abstract void` | `doEndStartTagImpl()` Self-close the start tag.
    `protected abstract void` | `doEndTagImpl(java.lang.String tagName)` End the specified tag.
    `protected abstract Element` | `doFinishImpl()` Return the build element.
    `protected abstract void` | `doHtmlImpl(SafeHtml html)` Set the specified html as the inner HTML of the current element.
    `protected abstract void` | `doOpenStyleImpl()` Open the style attribute.
    `protected abstract void` | `doTextImpl(java.lang.String text)` Set the specified text as the inner text of the current element.
    `void` | `end()`
    `void` | `end(java.lang.String tagName)`
    `protected void` | `endAllTags()` End all open tags, including the root element.
    `void` | `endStyle()`
    `Element` | `finish()` Return the built DOM as an `Element`.
    `int` | `getDepth()`
    `void` | `html(SafeHtml html)`
    `protected void` | `lockCurrentElement()` Lock the current element, preventing any additional changes to it.
    `void` | `onStart(java.lang.String tagName, ElementBuilderBase<?> builder)`
    `abstract StylesBuilder` | `style()` Get the `StylesBuilder` used to add style properties to the current element.
    `void` | `text(java.lang.String text)`

    - ### Methods inherited from class java.lang.Object

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

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

    - #### style

          public abstract StylesBuilder style()

      Get the `StylesBuilder` used to add style properties to the current element.
      Returns:
        a `StylesBuilder`

    - #### 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()`.