/**
 * LOGICAL-PARADOX.ORG variable record manager library
 * Copyright (C)2004 satoshi akabane(akabane@logical-paradox.org)
 *
 * Release 1.0
 * ・初期パージョン
 */
package org.logical_paradox.common.vrm;

import org.logical_paradox.common.lang.StringByteStream;

/**
 * 文字列をデータとする，データレコード
 * 
 * @author satoshi akabane@logical-paradox.org
 * @version 1.0
 */
public class StringRecord extends Record {
	/**
	 * コンストラクタ
	 *
	 */
	public StringRecord() {
		super();
	}
	/**
	 * コンストラクタ
	 * @param s 文字列
	 */
	public StringRecord(String s) {
		super(new StringByteStream(s.getBytes()));
	}
	/**
	 * コンストラクタ
	 * @param bstream バイト列
	 */
	public StringRecord(byte[] bstream) {
		super(bstream);
	}
	/**
	 * バイト列からレコードを復元する
	 * @param bstream バイト列
	 * @throws IllegalArgumentException バイト列からの復元に失敗した
	 */
	protected void createObjectFromByteStream(byte[] bstream) throws IllegalArgumentException {
		o = new StringByteStream(bstream);
	}
	/**
	 * レコード値を比較する
	 * @param obj 比較対象
	 * @return true:同じ / false:違う
	 */
	public boolean equals(Object obj) {
		String s = (String)obj;
		return s.equals(((StringByteStream)o).getStringObject());
	}
	/**
	 * このレコードのレコードサイズを返す
	 * @return レコードサイズ(バイト数)
	 */
	public int getRecordSize() {
		return o.byteStream().length;
	}

}
