package kinugasa.contents.text;

import java.io.Serializable;
import java.util.Collection;
import kinugasa.contents.resource.Storage;

/**
 * 1つのXML要素が持つ属性のマップです.
 * <br>
 *
 * <br>
 *
 * @version 1.0.0 - 2013/03/15_17:53:23.<br>
 * @author dra0211 ( <a href="mailto:d0211@live.jp">d0211@live.jp</a>&nbsp;).<br>
 * <br>
 */
public class XMLAttributeStorage extends Storage<XMLAttribute> implements Serializable {

	private static final long serialVersionUID = -4953330104834129110L;

	/**
	 * 新しいXMLAttributeStorageを作成します.
	 */
	public XMLAttributeStorage() {
	}

	/**
	 * 容量の初期値を指定して、新しいXMLAttributeStorageを作成します.
	 * @param initialSize Strageの初期容量を指定します。<br>
	 */
	public XMLAttributeStorage(int initialSize) {
		super(initialSize);
	}

	/**
	 * XMLAttributeのコレクションを全て追加したStrageを作成します.
	 * @param attributes 
	 */
	public XMLAttributeStorage(Collection<XMLAttribute> attributes) {
		this(attributes.size());
		addAll(attributes);
	}

	/**
	 * 全ての属性をスペースで区切って並べた文字列を返します.
	 * @return 属性をkey=valueの形式で、スペースで区切って並べた文字列を返します。<br>
	 */
	@Override
	public String toString() {
		StringBuilder result = new StringBuilder();
		for (XMLAttribute attr : this) {
			result.append(attr);
			result.append(' ');
		}
		return result.toString();
	}
}
