package org.arefgard.flow.node;

import java.util.List;

/**
 * ユースケースフローの終了点を表すノード。
 * 
 * @author Takashi Yamashina
 * @since 1.0.0
 */
public class ReplyNode extends Node {
	/** 出力ユースケース変数リスト */
	private List<String> properties = new java.util.ArrayList<String>();

	/**
	 * プロパティを追加する。
	 * @param name プロパティ名(ユースケース変数名)
	 */
	public void addProperty(String name) {
		this.properties.add(name);
	}
	
	/**
	 * プロパティを取得する。
	 * 
	 * @param index インデックス番号
	 * @return 対応するプロパティ
	 */
	public String getProperty(int index) {
		return this.properties.get(index);
	}

	/**
	 * プロパティの数を返す。
	 * 
	 * @return 格納されているプロパティの数。
	 */
	public int getPropertySize() {
		return this.properties.size();
	}
	
	public boolean containsProperty(String name) {
		return this.properties.contains(name);
	}
}
