package com.interpress_project.modernshare.client.events;

import java.util.EventObject;

/**
 * イベントオブジェクトの実装 属性を持たせる場合は、immutableなオブジェクトとすること。
 * イミュータブルオブジェクトは以下の方針で実装。
 *
 * - 属性値はコンストラクタでのみ設定
 * - 属性値の参照メソッドを実装
 * - 属性値の更新メソッドは実装しない
 * - 属性値を格納するオブジェクト変数はpublicにしない
 */
@SuppressWarnings("serial")
public class GUIEvent extends EventObject {
	private String message = null;
	private GUIEventType type;

	/**
	 * LogEvent
	 * @param source
	 * @param type
	 */
	public GUIEvent(Object source, GUIEventType type) {
		super(source);

		this.message = "";
		this.type = type;
	}

	/**
	 * LogEvent
	 * @param source
	 * @param message
	 * @param type
	 */
	public GUIEvent(Object source, String message, GUIEventType type) {
		super(source);

		this.message = message;
		this.type = type;
	}

	/**
	 * getMessage
	 * @return
	 */
	public String getMessage() {
		return message;
	}

	/**
	 * getLogEventType
	 * @return
	 */
	public GUIEventType getGUIEventType() {
		return type;
	}
}
