package org.itscool.stylist.io;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;

import org.itscool.commons.util.ServletTagUtil;
import org.itscool.stylist.tag.HtmlAttribute;
import org.itscool.stylist.tag.HtmlTag;

/**
 * XHTMLに含まれる比較(制御)タグ情報を応答データに変換します
 * @author kano
 * @version 1.00A 2006/08/09 新規作成
 */
public class HtmlWriteTagConverter extends HtmlConverter {
//    /**
//     * インスタンスの初期化を行います
//     * @param context ServletContextインスタンス
//     * @param req HttpServletRequestインスタンス
//     */
//    public HtmlCompareTagConverter(ServletContext context,
//        HttpServletRequest req) {
//        super(context, req);
//    }
    
    /**
     * 応答用のXHTMLデータの作成を開始します
     * @param node HtmlTagインスタンス
     * @return 応答データ
     */
    public String convert(HtmlTag node, String tab) {
        String tagName = node.getTagName();
        StringBuffer sb = new StringBuffer();
        
        String name = node.getAttribute(HtmlAttribute.W_NAME);
        String property = node.getAttribute(HtmlAttribute.W_PROPERTY);
        String scope = node.getAttribute(HtmlAttribute.W_SCOPE);
        String value = node.getAttribute(HtmlAttribute.W_VALUE);
        Object obj1;
        if( value != null && value.length() > 0 ){
            obj1 = ServletTagUtil.findValue(context, req, value, scope);
        }else{
            obj1 = ServletTagUtil.findProperty(context, req, name, property, scope);
        }
        if( obj1 != null ){
            sb.append(obj1.toString());
        }else{
            sb.append("");
        }
        return sb.toString();
    }
    
}
