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

import java.util.EventObject;

/**
 * 属性変更イベントオブジェクト
 * @author satoshi akabane@logical-paradox.org
 * @version $Revision: 1.1 $
 */
public class AttributeChangeEvent extends EventObject {
	/** イベント変更が発生した原因となった値 */
	private Object reason;
	/** このイベントを消化したか true:消化済み / false:消化前 */
	private boolean consumed = false;

	/**
	 * コンストラクタ
	 * @param source イベント発生ソース
	 */
	public AttributeChangeEvent(Object source) {
		super(source);
	}
	/**
	 * コンストラクタ
	 * @param source イベント発生ソース
	 * @param r イベント変更が発生した原因となった値
	 */
	public AttributeChangeEvent(Object source, Object r) {
		super(source);
		reason = r;
	}
	/**
	 * イベント変更が発生した原因となった値を返す
	 * @return 原因
	 */
	public Object getReason() {
		return reason;
	}
	/**
	 * このイベントの消化状態を設定する
	 * @param b true:消化済み / false:消化前
	 */
	public void setConsume(boolean b) {
		consumed = b;
	}
	/**
	 * イベントが消化されたかどうかを返す
	 * @return true:消化済み / false:消化前
	 */
	public boolean isConsumed() {
		return consumed;
	}
}
