/**
 * @(#)Attributes.java
 * Copyright 2001 Nomura Research Institute, LTD. All rights reserved.
 * RID-3 : attributeのリストを保持する
 * @author  Intelligent Technology Inc.
 * @version 1.00 2001/10/01-2002/03/25
 */
package	jp.co.nri.rid.xml;

import java.util.HashMap;

/**
 * 複数のAttributeをハッシュ形式で管理する。
 */
public class Attributes{
	protected HashMap myAttributes;
	
	public Attributes(){ myAttributes = new HashMap(); }
	
	/**
	 * 保持しているattributeの数。
	 * @return	保持しているattributeの数
	 * @since	1.00
	 */
	public int			count(){ return myAttributes.size(); }
	
	/**
	 * attributeを追加する。
	 * @param	attribute	追加するattribute。
	 * @since	1.00
	 */
	public void			add(Attribute attribute){
		if(null==attribute)			return;
		if(null==attribute.name)	return;
		if(null==attribute.value)	return;
		myAttributes.put(attribute.name ,attribute);
	}
	
	/**
	 * attribute名とattribute値を指定してattributeを追加する。
	 * @param	name	attribute名。
	 * @param	value	attribute値。
	 * @since	1.00
	 */
	public void			add(String name ,String value){	add(new Attribute(name ,value)); }
	
	/**
	 * attribute値を取得する。
	 * @param	name	attribute名。
	 * @return	attribute値
	 * @since	1.00
	 */
	public String		attribute(String name){
		Attribute attribute = (Attribute)myAttributes.get(name);
		if(null==attribute)	return null;
		return attribute.value;
	}
	
	/**
	 * 全attributeを取得する。
	 * @return	attribute配列
	 * @since	1.00
	 */
	public Attribute[]	attributes(){
		if(0 >= count())	return null;
		return (Attribute[])myAttributes.values().toArray(new Attribute[0]);
	}
}
