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

import org.logical_paradox.common.fsm.State;

/**
 * 検索条件状態
 * @author satoshi akabane@logical-paradox.org
 * @version $Revision: 1.1 $
 */
public class SearchConditionState implements State {
	/** 初期状態 */
	public static final int INITIAL = 0;
	/** 受信中 */
	public static final int ACCEPTING = 1;
	/** 最終状態 */
	public static final int FINAL = 2;

	/** 現在の状態 */
	private int state;

	/**
	 * コンストラクタ
	 * 生成直後，INITIAL状態になっている
	 */
	public SearchConditionState() {
		state = INITIAL;
	}
	/**
	 * コンストラクタ
	 * @param st 状態
	 */
	public SearchConditionState(int st) {
		state = st;
	}
	/**
	 * 状態遷移
	 * @param st 変更先状態
	 */
	public void transition(int st) {
		state = st;
	}
	/**
	 * 現在の状態を返す
	 * @return 状態
	 */
	public int getCurrentState() {
		return state;
	}
	/**
	 * 比較する
	 * @param o 比較対象
	 * @return true:同じ / false:違う
	 */
	public boolean equals(Object o) {
		if(o instanceof SearchConditionState == false) {
			return false;
		}
		SearchConditionState buddy = (SearchConditionState)o;
		return state == buddy.getCurrentState();
	}
}
