/*
 * 作成日: 2005/02/07
 */
package jp.co.ntt.lms.xmo.Lo.lom;

import java.io.Serializable;
import java.util.Iterator;
import java.util.Vector;


/**
 * <p>LOM情報表示用データ構造体。</p>
 * <p>主に、LOM属性追加とLOM属性検索にて使用され、
 *    画面表示の各項目単位で格納されます。</p>
 * 
 * @author t-sugawara
 */
public class DisplayData implements Serializable {
    /** LOM表示種別：テキスト */
    public static final String LOM_TYPE_TEXT        = "00";
    /** LOM表示種別：コンボボックス */
    public static final String LOM_TYPE_COMBOBOX    = "11";
    /** LOM表示種別：チェックボックス */
    public static final String LOM_TYPE_CHECKBOX    = "12";
    /** LOM表示種別：ラジオボタン */
    public static final String LOM_TYPE_RADIOBUTTON = "13";
    /** LOM表示種別：テキスト選択 */
    public static final String LOM_TYPE_SELECTTEXT  = "14";
    /** LOM表示種別：幾つかのテキスト項目 */
    public static final String LOM_TYPE_ANYTEXT     = "15";

    /** LOM情報のパス */
    private String path = null;
    /** 表示種別 */
    private String lomType = null;
    /** 表示項目名 */
    private String name = null;
    /** 項目データ */
    private Vector displayValue = null;
    
    /**
     * コンストラクタ
     * @param path パス
     * @param lomType Lo種別
     * @param name Lo表示項目名
     * @param displayValue DisplayDataを格納したベクタ
     */
    public DisplayData(String path, 
            			String lomType,
            			String name,
            			Vector displayValue) {
        this.path = path;
        this.lomType = lomType;
        this.name = name;
        this.displayValue  = displayValue;
    }
    
    /**
     * 項目値のイテレータを取得します。
     * @return displayValueのイテレータ
     */
    public Iterator getDisplayValueIterator() {
        if (displayValue == null) {
            return null;
        }
        return displayValue.iterator();
    }
    
    /**
     * DisplayValueのベクタを取得します。
     * @return displayValue。
     */
    public Vector getDisplayValue() {
        return displayValue;
    }

    /**
     * インデックス指定でDisplayValueを取得します。
     * @param index 指定するインデックス
     * @return インデックスのDisplayValue
     */
    public DisplayValue getDisplayValue(int index) {
        return (DisplayValue) displayValue.get(index);
    }
    /**
     * LomTypeを取得します。
     * @return lomType
     */
    public String getLomType() {
        return lomType;
    }
    /**
     * Lom表示項目名を取得します
     * @return name
     */
    public String getName() {
        return name;
    }
    /**
     * LOM情報のパスを取得します。
     * @return path
     */
    public String getPath() {
        return path;
    }

    /**
     * <p>デバッグ用。</p>
     * DisplayDataの内容を文字列として返します。
     * @return デバッグ用出力文
     */
    public String toString() {
        StringBuffer buff = new StringBuffer();
        
        buff.append("Path:").append(path).append("\n");
        buff.append("LomType").append(lomType).append("\n");
        buff.append("Name:").append(name).append("\n");
        buff.append("DisplayValue").append(displayValue).append("\n");
        
        return buff.toString();
    }
}
