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

import org.logical_paradox.common.lang.IllegalObjectStateException;

/**
 * 属性の出し入れのインターフェース
 * @author satoshi akabane@logical-paradox.org
 * @version $Revision: 1.2 $
 */
public interface Attribute {
	/**
	 * 属性に関連づいている値を返す
	 * @param key 属性
	 * @return  値
	 */
	public Object getAttribute(String key) throws IllegalObjectStateException;
	/**
	 * 属性に関連づいている値を設定する
	 * @param key 属性
	 * @param o 値
	 */
	public void setAttribute(String key, Object o) throws IllegalObjectStateException;
	/**
	 * 属性を削除する
	 * @param key 属性
	 */
	public void removeAttribute(String key) throws IllegalObjectStateException;
}
