/*
 * $Id: HTMLNodeFactoryImpl.java,v 1.4 2005/11/03 09:41:47 sugimotokenichi Exp $
 * Copyright (C) 2005 SUGIMOTO Ken-ichi
 * 作成日: 2005/07/30
 */
package feat.v1.impl.template;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import feat.v1.template.HTMLDocument;
import feat.v1.template.HTMLElement;
import feat.v1.template.HTMLRemark;
import feat.v1.template.HTMLText;
import feat.v1.template.RemarkTextException;

/**
 * ノードのファクトリクラス。
 * @author SUGIMOTO Ken-ichi
 */
public class HTMLNodeFactoryImpl {

    private static final Log log = LogFactory.getLog(HTMLNodeFactoryImpl.class);

    public static HTMLDocument createHTMLDocument() {
        return new HTMLElementImpl(true);
    }

    /**
     * どのツリーにも属さない要素ノードを作る。
     * @param tagName タグの名前
     * @param endTag 終了タグが必要ならtrue
     * @return
     */
    public static HTMLElement createHTMLElement(String tagName, boolean endTag) {
        return new HTMLElementImpl(tagName, true, endTag, false);
    }

    /**
     * どのツリーにも属さないテキストノードを作る。
     * @param text テキストノードに格納する文字列。この文字列はエスケープされる。nullを渡してもよい
     * @return
     */
    public static HTMLText createHTMLText(String text) {
        HTMLText ret = new HTMLTextImpl();
        ret.setRawText(text);
        return ret;
    }

    /**
     * どのツリーにも属さない注釈ノードを作る。
     * @param text 注釈ノードに格納する文字列。nullを渡してもよい
     * @return
     * @throws RemarkTextException
     */
    public static HTMLRemark createHTMLRemark(String text) throws RemarkTextException {
        HTMLRemark ret = new HTMLRemarkImpl(text);
        return ret;
    }

}
