/**
 * @(#)Attribute.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 Attribute{
	public String name;
	public String value;
	
	private HashMap myOptions;
	
	/**
	 * @param	namestring	attribute名
	 * @param	valuestring	attribute値
	 * @since	1.00
	 */
	public Attribute(String namestring ,String valuestring){
		if(null!=namestring)	name	= new String(namestring);
		if(null!=valuestring){
			String s = valuestring.trim();
			if(0 < s.length())	value = s;
		}
		
		myOptions = new HashMap();
	}
	
	/**
	 * 子attributeを追加する。
	 * @param	name	attribute名
	 * @param	value	attribute値
	 * @since	1.00
	 */
	public void	option(String name ,String value){	option(new Attribute(name ,value)); }
	
	/**
	 * 子attributeを追加する。
	 * @param	attribute	attribute
	 * @since	1.00
	 */
	public void	option(Attribute attribute){
		if(null==attribute)			return;
		if(null==attribute.name)	return;
		if(null==attribute.value)	return;
		myOptions.put(attribute.name ,attribute);
	}
	
	/**
	 * 全子attributeを取得する。
	 * @return	attribute配列
	 * @since	1.00
	 */
	public Attribute[]	options(){
		if(0 >= myOptions.size())	return null;
		return (Attribute[])myOptions.values().toArray(new Attribute[0]);
	}
}
