com.google.gwt.dom.builder.shared.HtmlElementBuilderBase.java Source code

Java tutorial

Introduction

Here is the source code for com.google.gwt.dom.builder.shared.HtmlElementBuilderBase.java

Source

/*
 * Copyright 2011 Google Inc.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package com.google.gwt.dom.builder.shared;

import com.google.gwt.dom.client.TitleElement;
import com.google.gwt.safehtml.shared.SafeHtml;

/**
 * Implementation of {@link ElementBuilderBase} that delegates to an
 * {@link HtmlBuilderImpl}.
 * 
 * <p>
 * Subclasses of {@link HtmlElementBuilderBase} act as typed wrappers around a
 * shared {@link ElementBuilderBase} implementation that handles the actual
 * building. The wrappers merely delegate to the shared implementation, so
 * wrapper instances can be reused, avoiding object creation. This approach is
 * necessary so that the return value of common methods, such as
 * {@link #id(String)}, return a typed builder instead of the generic
 * {@link ElementBuilderBase}.
 * </p>
 * 
 * @param <R> the builder type returned from build methods
 */
public class HtmlElementBuilderBase<R extends ElementBuilderBase<?>> extends AbstractElementBuilderBase<R> {

    private final HtmlBuilderImpl delegate;

    /**
     * Construct a new {@link HtmlElementBuilderBase}.
     * 
     * @param delegate the delegate that builds the element
     */
    HtmlElementBuilderBase(HtmlBuilderImpl delegate) {
        this(delegate, false);
    }

    /**
     * Construct a new {@link HtmlElementBuilderBase}.
     * 
     * @param delegate the delegate that builds the element
     * @param isEndTagForbidden true if the end tag is forbidden for this element
     */
    HtmlElementBuilderBase(HtmlBuilderImpl delegate, boolean isEndTagForbidden) {
        super(delegate, isEndTagForbidden);
        this.delegate = delegate;
    }

    /**
     * Return the HTML as a {@link SafeHtml} string.
     */
    public SafeHtml asSafeHtml() {
        return delegate.asSafeHtml();
    }

    @Override
    public R attribute(String name, int value) {
        delegate.attribute(name, value);
        return getReturnBuilder();
    }

    @Override
    public R attribute(String name, String value) {
        delegate.attribute(name, value);
        return getReturnBuilder();
    }

    @Override
    public R className(String className) {
        return trustedAttribute("class", className);
    }

    @Override
    public R dir(String dir) {
        return trustedAttribute("dir", dir);
    }

    @Override
    public R draggable(String draggable) {
        return trustedAttribute("draggable", draggable);
    }

    /**
     * End the current element.
     * 
     * @see #end()
     */
    public void endTitle() {
        end(TitleElement.TAG);
    }

    @Override
    public R id(String id) {
        return trustedAttribute("id", id);
    }

    @Override
    public R lang(String lang) {
        return trustedAttribute("lang", lang);
    }

    @Override
    public AnchorBuilder startAnchor() {
        return delegate.startAnchor();
    }

    @Override
    public AreaBuilder startArea() {
        return delegate.startArea();
    }

    @Override
    public AudioBuilder startAudio() {
        return delegate.startAudio();
    }

    @Override
    public BaseBuilder startBase() {
        return delegate.startBase();
    }

    @Override
    public QuoteBuilder startBlockQuote() {
        return delegate.startBlockQuote();
    }

    @Override
    public BodyBuilder startBody() {
        return delegate.startBody();
    }

    @Override
    public BRBuilder startBR() {
        return delegate.startBR();
    }

    @Override
    public InputBuilder startButtonInput() {
        return delegate.startButtonInput();
    }

    @Override
    public CanvasBuilder startCanvas() {
        return delegate.startCanvas();
    }

    @Override
    public InputBuilder startCheckboxInput() {
        return delegate.startCheckboxInput();
    }

    @Override
    public TableColBuilder startCol() {
        return delegate.startCol();
    }

    @Override
    public TableColBuilder startColGroup() {
        return delegate.startColGroup();
    }

    @Override
    public DivBuilder startDiv() {
        return delegate.startDiv();
    }

    @Override
    public DListBuilder startDList() {
        return delegate.startDList();
    }

    @Override
    public FieldSetBuilder startFieldSet() {
        return delegate.startFieldSet();
    }

    @Override
    public InputBuilder startFileInput() {
        return delegate.startFileInput();
    }

    @Override
    public FormBuilder startForm() {
        return delegate.startForm();
    }

    @Override
    public FrameBuilder startFrame() {
        return delegate.startFrame();
    }

    @Override
    public FrameSetBuilder startFrameSet() {
        return delegate.startFrameSet();
    }

    @Override
    public HeadingBuilder startH1() {
        return delegate.startH1();
    }

    @Override
    public HeadingBuilder startH2() {
        return delegate.startH2();
    }

    @Override
    public HeadingBuilder startH3() {
        return delegate.startH3();
    }

    @Override
    public HeadingBuilder startH4() {
        return delegate.startH4();
    }

    @Override
    public HeadingBuilder startH5() {
        return delegate.startH5();
    }

    @Override
    public HeadingBuilder startH6() {
        return delegate.startH6();
    }

    @Override
    public HeadBuilder startHead() {
        return delegate.startHead();
    }

    @Override
    public InputBuilder startHiddenInput() {
        return delegate.startHiddenInput();
    }

    @Override
    public HRBuilder startHR() {
        return delegate.startHR();
    }

    @Override
    public IFrameBuilder startIFrame() {
        return delegate.startIFrame();
    }

    @Override
    public ImageBuilder startImage() {
        return delegate.startImage();
    }

    @Override
    public InputBuilder startImageInput() {
        return delegate.startImageInput();
    }

    @Override
    public LabelBuilder startLabel() {
        return delegate.startLabel();
    }

    @Override
    public LegendBuilder startLegend() {
        return delegate.startLegend();
    }

    @Override
    public LIBuilder startLI() {
        return delegate.startLI();
    }

    @Override
    public LinkBuilder startLink() {
        return delegate.startLink();
    }

    @Override
    public MapBuilder startMap() {
        return delegate.startMap();
    }

    @Override
    public MetaBuilder startMeta() {
        return delegate.startMeta();
    }

    @Override
    public OListBuilder startOList() {
        return delegate.startOList();
    }

    @Override
    public OptGroupBuilder startOptGroup() {
        return delegate.startOptGroup();
    }

    @Override
    public OptionBuilder startOption() {
        return delegate.startOption();
    }

    @Override
    public ParagraphBuilder startParagraph() {
        return delegate.startParagraph();
    }

    @Override
    public ParamBuilder startParam() {
        return delegate.startParam();
    }

    @Override
    public InputBuilder startPasswordInput() {
        return delegate.startPasswordInput();
    }

    @Override
    public PreBuilder startPre() {
        return delegate.startPre();
    }

    @Override
    public ButtonBuilder startPushButton() {
        return delegate.startPushButton();
    }

    @Override
    public QuoteBuilder startQuote() {
        return delegate.startQuote();
    }

    @Override
    public InputBuilder startRadioInput(String name) {
        return delegate.startRadioInput(name);
    }

    @Override
    public ButtonBuilder startResetButton() {
        return delegate.startResetButton();
    }

    @Override
    public InputBuilder startResetInput() {
        return delegate.startResetInput();
    }

    @Override
    public ScriptBuilder startScript() {
        return delegate.startScript();
    }

    @Override
    public SelectBuilder startSelect() {
        return delegate.startSelect();
    }

    @Override
    public SourceBuilder startSource() {
        return delegate.startSource();
    }

    @Override
    public SpanBuilder startSpan() {
        return delegate.startSpan();
    }

    @Override
    public StyleBuilder startStyle() {
        return delegate.startStyle();
    }

    @Override
    public ButtonBuilder startSubmitButton() {
        return delegate.startSubmitButton();
    }

    @Override
    public InputBuilder startSubmitInput() {
        return delegate.startSubmitInput();
    }

    @Override
    public TableBuilder startTable() {
        return delegate.startTable();
    }

    @Override
    public TableCaptionBuilder startTableCaption() {
        return delegate.startTableCaption();
    }

    @Override
    public TableSectionBuilder startTBody() {
        return delegate.startTBody();
    }

    @Override
    public TableCellBuilder startTD() {
        return delegate.startTD();
    }

    @Override
    public TextAreaBuilder startTextArea() {
        return delegate.startTextArea();
    }

    @Override
    public InputBuilder startTextInput() {
        return delegate.startTextInput();
    }

    @Override
    public TableSectionBuilder startTFoot() {
        return delegate.startTFoot();
    }

    @Override
    public TableCellBuilder startTH() {
        return delegate.startTH();
    }

    @Override
    public TableSectionBuilder startTHead() {
        return delegate.startTHead();
    }

    /**
     * Append a title element.
     * 
     * @return the builder for the new element
     */
    public TitleBuilder startTitle() {
        return delegate.startTitle();
    }

    @Override
    public TableRowBuilder startTR() {
        return delegate.startTR();
    }

    @Override
    public UListBuilder startUList() {
        return delegate.startUList();
    }

    @Override
    public VideoBuilder startVideo() {
        return delegate.startVideo();
    }

    @Override
    public R tabIndex(int tabIndex) {
        return trustedAttribute("tabIndex", tabIndex);
    }

    @Override
    public R title(String title) {
        return trustedAttribute("title", title);
    }

    @Override
    public ElementBuilder trustedStart(String tagName) {
        return delegate.trustedStart(tagName);
    }

    /**
     * Add an attribute with a trusted name.
     */
    R trustedAttribute(String name, int value) {
        delegate.trustedAttribute(name, value);
        return getReturnBuilder();
    }

    /**
     * Add an attribute with a trusted name. The name is still escaped.
     */
    R trustedAttribute(String name, String value) {
        delegate.trustedAttribute(name, value);
        return getReturnBuilder();
    }
}