/**
 * LOGICAL-PARADOX.ORG
 * Copyright (C)2004 satoshi akabane(akabane@logical-paradox.org)
 *
 */
package org.logical_paradox.shell;

/**
 * コマンドラインオプション
 * @author satoshi akabane@logical-paradox.org
 * @version $Revision: 1.2 $
 */
public class Option {
	/** オプションのプレフィックス */
	public static final String OPTION_PREFIX = "--";

	/** オプション */
	private final String name;
	/** オプションに対して設定された値 */
	private final String value;

	/**
	 * コンストラクタ
	 * @param token オプションと値が'='で結合されたセット
	 */
	public Option(String token) {
		if(token.startsWith(OPTION_PREFIX)) {
			// '--'で始まっている場合はその部分をまずカット
			token = token.substring(OPTION_PREFIX.length());
		}
		int eqpos = token.indexOf("=");
		if(eqpos < 0) {
			name = token;
			value = "";
		} else if(eqpos == 0) {
			name = "";
			value = token;
		} else {
			name = token.substring(0, eqpos);
			value = token.substring(eqpos+1);
		}
	}
	/**
	 * コンストラクタ
	 * @param name_ オプション
	 * @param value_ 値
	 */
	public Option(String name_, String value_) {
		name = name_;
		value = value_;
	}
	/**
	 * 名前を返す
	 * @return 名前
	 */
	public String getName() {
		return name;
	}
	/**
	 * 値を返す
	 * @return 値
	 */
	public String getValue() {
		return value;
	}
	/**
	 * このオプションを文字列に変換して返す
	 * @return 文字列表現
	 */
	public String toString() {
		return OPTION_PREFIX + getName() + "=" + getValue();
	}
}
