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