#% VO Javaソースファイル作成用の雛型ファイル
#% 2010/03/25 By S.Ito

#! package
package #package#;

#! header BigDecimal
import java.math.BigDecimal;
#! header Date
import java.sql.Date;
#! header Time
import java.sql.Time;
#! header Timestamp
import java.sql.Timestamp;
#! header multi
import java.util.List;
import java.util.LinkedList;
#! header
import java.io.Serializable;

/**
 * #nameJp# バリューオブジェクト
 */
@SuppressWarnings("serial")
public class #className# implements Cloneable, Serializable{

#! body define
	/**
	 * #nameJp#
	 */
	private #type# #name#;

#! body define comment
	/**
	 * #nameJp#
	 */
	//private #type# #name#;	---> #comment#

#! body define ---
	// ----------------------------------------------------------------------------------------
	// テーブルデータが格納されているVO
	// ----------------------------------------------------------------------------------------

#! body define record
	/**
	 * #nameJp#
	 */
	private #type# #name# = null;

#! body constructor
	/**
	 * 空のコンストラクタ
	 */
	public  #className#() {
	}

#! body toString 1
	/**
	 * このオブジェクトから文字列を作成する
	 *
	 * @return このオブジェクトを表す文字列
	 */
	@Override
	public String toString() {
#! body toString 1.2
		int count = 0;
#! body toString 1.5
		StringBuilder sb = new StringBuilder();
#! body toString 2

		sb.append("#nameJp#(#name#)=");
		sb.append(#value#);
#! body toString 2-multi

		count = 0;
		sb.append("#nameJp#(#name#)={");
		for(#listClassName# list_rec : #name#){
			if(count > 0){
				sb.append(", ");
			}
			sb.append(++count);
			sb.append("=<");
			sb.append(list_rec.toString());
			sb.append(">");
		}
		sb.append("}");
#! body toString 3
		sb.append(", ");
#! body toString 4

		return sb.toString();
	}
#! body setter getter

	/**
	 * #nameJp#(#name#)の値を取得する
	 *
	 * @return #nameJp#(#name#)
	 */
	public #type# #getterMethod#() {
		return #returnName#;
	}

	/**
	 * #nameJp#(#name#)へ値を設定する
	 *
	 * @param #name#
	 *			#nameJp#
	 */
	public void #setterMethod#(#type# #name#) {
		#setName#;
	}
#! MultiMember

	/**
	 * #nameJp#(#name#)を取得する
	 * @return リスト(#listClassName#)
	 */
	public List<#listClassName#> #getter#(){
		return #name#;
	}

#! body setter getter2

	/**
	 * #nameJp#(#name#)の値を取得する
	 *
	 * @return #nameJp#(#name#)
	 */
	public #type# #getterMethod#() {
		return #returnName#;
	}

	/**
	 * #nameJp#(#name#)へ値を設定する
	 *
	 * @param #name#
	 *			#nameJp#
	 */
	public void #setterMethod#(#type# #name#) {
		if(#recordName# == null){
			#recordName# = new #recordType#();
		}
		#setName#;
	}

#! equalsPrimaryKeys start

	/**
	 * 主キーの比較
	 *
	 * @param targe
	 *            比較する自クラスのオブジェクト
	 * @return rtue=主キーが等しい
	 */
	public boolean equalsPrimaryKeys(#className# target) {

		// ターゲットがNULLのときは等しくない
		if (target == null) {
			return false;
		}

#! equalsPrimaryKeys main
		// #fieldNameJp#の比較
		if (#getterName#() != null && target.#getterName#() != null) {
			if (!#comp#) {
				return false;
			}
		} else if (#getterName#() == null && target.#getterName#() != null) {
			return false;
		} else if (#getterName#() != null && target.#getterName#() == null) {
			return false;
		}

#! equalsPrimaryKeys end
		return true;
	}

#! clone

	/**
	 * このオブジェクトのクローンを作成する
	 * (ディープコピー)
	 * @return このオブジェクトのクローン
	 */
	@Override
	public Object clone() {
		#type# cloneObject = new #type#();
#! clone 1
		cloneObject.#name# = #cloneName#;
#! clone 2
		cloneObject.#name# = #name# == null ? null : (#type#)#name#.clone();
#! clone 3

		for(#type# list_rec : #name#){
			cloneObject.#name#.add((#type#)list_rec.clone());
		}
#! clone 4

		return cloneObject;
	}

#! change field type String-Integer
	/**
	 * IntegerからStringへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected String changeString(Integer value) {
		if (value == null) {
			return null;
		}
		return value.toString();
	}

#! change field type String-Long
	/**
	 * LongからStringへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected String changeString(Long value) {
		if (value == null) {
			return null;
		}
		return value.toString();
	}

#! change field type String-BigDecimal
	/**
	 * BigDecimalからStringへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected String changeString(BigDecimal value) {
		if (value == null) {
			return null;
		}
		return value.toString();
	}

#! change field type String-byte[]
	/**
	 * byte[] からStringへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected String changeString(byte[] value) {
		return null;
	}

#! change field type String-Date
	/**
	 * DateからStringへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected String changeString(Date value) {
		if (value == null) {
			return null;
		}
		return (new SimpleDateFormat("yyyy/MM/dd")).format(value);
	}

#! change field type String-Time
	/**
	 * TimeからStringへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected String changeString(Time value) {
		if (value == null) {
			return null;
		}
		return (new SimpleDateFormat("HH:mm:ss")).format(value);
	}

#! change field type String-Timestamp
	/**
	 * TimestampからStringへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected String changeString(Timestamp value) {
		if (value == null) {
			return null;
		}
		return (new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SSS")).format(value);
	}

#! change field type String-Boolean
	/**
	 * BooleanからStringへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected String changeString(Boolean value) {
		if (value == null) {
			return null;
		}
		return value.toString();
	}

#! change field type Integer-String
	/**
	 * StringからIntegerへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Integer changeInteger(String value) {
		if (value == null) {
			return null;
		}

		try {
			return Integer.parseInt(value);
		} catch (NumberFormatException e) {
			return null;
		}
	}

#! change field type Integer-Long
	/**
	 * LongからIntegerへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Integer changeInteger(Long value) {
		if (value == null) {
			return null;
		}

		return value.intValue();
	}

#! change field type Integer-BigDecimal
	/**
	 * BigDecimalからIntegerへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Integer changeInteger(BigDecimal value) {
		if (value == null) {
			return null;
		}
		return value.intValue();
	}

#! change field type Integer-byte[]
	/**
	 * byte[] からIntegerへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Integer changeInteger(byte[] value) {
		return null;
	}

#! change field type Integer-Date
	/**
	 * DateからIntegerへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Integer changeInteger(Date value) {
		if (value == null) {
			return null;
		}
		try {
			return Integer.parseInt((new SimpleDateFormat("yyyyMMdd")).format(value));
		} catch (NumberFormatException e) {
			return null;
		}
	}

#! change field type Integer-Time
	/**
	 * TimeからIntegerへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Integer changeInteger(Time value) {
		if (value == null) {
			return null;
		}
		try {
			return Integer.parseInt((new SimpleDateFormat("HHmmss")).format(value));
		} catch (NumberFormatException e) {
			return null;
		}
	}

#! change field type Integer-Timestamp
	/**
	 * TimestampからIntegerへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Integer changeInteger(Timestamp value) {
		return null;
	}

#! change field type Integer-Boolean
	/**
	 * BooleanからIntegerへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Integer changeInteger(Boolean value) {
		if (value == null) {
			return null;
		}
		return value ? 1 : 0;
	}

#! change field type Long-String
	/**
	 * StringからLongへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Long changeLong(String value) {
		if (value == null) {
			return null;
		}

		try {
			return Long.parseLong(value);
		} catch (NumberFormatException e) {
			return null;
		}
	}

#! change field type Long-Integer
	/**
	 * IntegerからLongへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Long changeLong(Integer value) {
		if (value == null) {
			return null;
		}
		return value.longValue();
	}

#! change field type Long-BigDecimal
	/**
	 * BigDecimalからLongへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Long changeLong(BigDecimal value) {
		if (value == null) {
			return null;
		}
		return value.longValue();
	}

#! change field type Long-byte[]
	/**
	 * byte[] からLongへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Long changeLong(byte[] value) {
		return null;
	}

#! change field type Long-Date
	/**
	 * DateからLongへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Long changeLong(Date value) {
		if (value == null) {
			return null;
		}
		try {
			return Long.parseLong((new SimpleDateFormat("yyyyMMdd")).format(value));
		} catch (NumberFormatException e) {
			return null;
		}
	}

#! change field type Long-Time
	/**
	 * TimeからLongへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Long changeLong(Time value) {
		if (value == null) {
			return null;
		}
		try {
			return Long.parseLong((new SimpleDateFormat("HHmmss")).format(value));
		} catch (NumberFormatException e) {
			return null;
		}
	}

#! change field type Long-Timestamp
	/**
	 * TimestampからLongへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Long changeLong(Timestamp value) {
		if (value == null) {
			return null;
		}
		try {
			return Long.parseLong((new SimpleDateFormat("yyyyMMddHHmmssSSS")).format(value));
		} catch (NumberFormatException e) {
			return null;
		}
	}

#! change field type Long-Boolean
	/**
	 * BooleanからLongへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Long changeLong(Boolean value) {
		if (value == null) {
			return null;
		}
		return value ? 1L : 0L;
	}

#! change field type BigDecimal-String
	/**
	 * StringからBigDecimalへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected BigDecimal changeBigDecimal(String value) {
		if (value == null) {
			return null;
		}

		try {
			return new BigDecimal(value);
		} catch (NumberFormatException e) {
			return null;
		}
	}

#! change field type BigDecimal-Integer
	/**
	 * IntegerからBigDecimalへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected BigDecimal changeBigDecimal(Integer value) {
		if (value == null) {
			return null;
		}
		return BigDecimal.valueOf(value.longValue());
	}

#! change field type BigDecimal-Long
	/**
	 * LongからBigDecimalへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected BigDecimal changeBigDecimal(Long value) {
		if (value == null) {
			return null;
		}
		return BigDecimal.valueOf(value.longValue());
	}

#! change field type BigDecimal-byte[]
	/**
	 * byte[] からBigDecimalへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected BigDecimal changeBigDecimal(byte[] value) {
		return null;
	}

#! change field type BigDecimal-Date
	/**
	 * DateからBigDecimalへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected BigDecimal changeBigDecimal(Date value) {
		if (value == null) {
			return null;
		}
		try {
			return BigDecimal.valueOf(Long.parseLong((new SimpleDateFormat("yyyyMMdd")).format(value)));
		} catch (NumberFormatException e) {
			return null;
		}
	}

#! change field type BigDecimal-Time
	/**
	 * TimeからBigDecimalへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected BigDecimal changeBigDecimal(Time value) {
		if (value == null) {
			return null;
		}
		try {
			return BigDecimal.valueOf(Long.parseLong((new SimpleDateFormat("HHmmss")).format(value)));
		} catch (NumberFormatException e) {
			return null;
		}
	}

#! change field type BigDecimal-Timestamp
	/**
	 * TimestampからBigDecimalへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected BigDecimal changeBigDecimal(Timestamp value) {
		if (value == null) {
			return null;
		}
		try {
			return BigDecimal.valueOf(Long.parseLong((new SimpleDateFormat("yyyyMMddHHmmssSSS")).format(value)));
		} catch (NumberFormatException e) {
			return null;
		}
	}

#! change field type BigDecimal-Boolean
	/**
	 * BooleanからBigDecimalへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected BigDecimal changeBigDecimal(Boolean value) {
		if (value == null) {
			return null;
		}
		return value ? BigDecimal.ONE : BigDecimal.ZERO;
	}

#! change field type byte[]-String
	/**
	 * Stringからbyte[]への変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected byte[] changeBytes(String value) {
		return null;
	}

#! change field type byte[]-Integer
	/**
	 * Integerからbyte[]への変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected byte[] changeBytes(Integer value) {
		return null;
	}

#! change field type byte[]-Long
	/**
	 * Longからbyte[]への変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected byte[] changeBytes(Long value) {
		return null;
	}

#! change field type byte[]-BigDecimal
	/**
	 * BigDecimalからbyte[]への変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected byte[] changeBytes(BigDecimal value) {
		return null;
	}

#! change field type byte[]-Date
	/**
	 * Dateからbyte[]への変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected byte[] changeBytes(Date value) {
		return null;
	}

#! change field type byte[]-Time
	/**
	 * Timeからbyte[]への変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected byte[] changeBytes(Time value) {
		return null;
	}

#! change field type byte[]-Timestamp
	/**
	 * Timestampからbyte[]への変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected byte[] changeBytes(Timestamp value) {
		return null;
	}

#! change field type byte[]-Boolean
	/**
	 * Booleanからbyte[]への変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected byte[] changeBytes(Boolean value) {
		return null;
	}

#! change field type Date-String
	/**
	 * StringからDateへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Date changeDate(String value) {
		if (value == null) {
			return null;
		}

		try {
			return new Date((new SimpleDateFormat("yyyy/MM/dd")).parse(value).getTime());
		} catch (ParseException e) {
			return null;
		}
	}

#! change field type Date-Integer
	/**
	 * IntegerからDateへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Date changeDate(Integer value) {
		if (value == null) {
			return null;
		}

		Calendar cal = Calendar.getInstance();
		cal.clear();
		cal.set(value / 10000, (value / 100) % 100 - 1, value % 100);
		return new Date(cal.getTimeInMillis());
	}

#! change field type Date-Long
	/**
	 * LongからDateへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Date changeDate(Long value) {
		if (value == null) {
			return null;
		}

		Calendar cal = Calendar.getInstance();
		cal.clear();
		cal.set(value.intValue() / 10000, (value.intValue() / 100) % 100 - 1, value.intValue() % 100);
		return new Date(cal.getTimeInMillis());
	}

#! change field type Date-BigDecimal
	/**
	 * BigDecimalからDateへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Date changeDate(BigDecimal value) {
		if (value == null) {
			return null;
		}

		Calendar cal = Calendar.getInstance();
		cal.clear();
		cal.set(value.intValue() / 10000, (value.intValue() / 100) % 100 - 1, value.intValue() % 100);
		return new Date(cal.getTimeInMillis());
	}

#! change field type Date-byte[]
	/**
	 * byte[] からDateへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Date changeDate(byte[] value) {
		return null;
	}

#! change field type Date-Time
	/**
	 * TimeからDateへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Date changeDate(Time value) {
		if (value == null) {
			return null;
		}
		return new Date(value.getTime());
	}

#! change field type Date-Timestamp
	/**
	 * TimestampからDateへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Date changeDate(Timestamp value) {
		if (value == null) {
			return null;
		}
		return new Date(value.getTime());
	}

#! change field type Date-Boolean
	/**
	 * BooleanからDateへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Date changeDate(Boolean value) {
		return null;
	}

#! change field type Time-String
	/**
	 * StringからTimeへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Time changeTime(String value) {
		if (value == null) {
			return null;
		}

		try {
			return new Time((new SimpleDateFormat("HH:mm:ss")).parse(value).getTime());
		} catch (ParseException e) {
			return null;
		}
	}

#! change field type Time-Integer
	/**
	 * IntegerからTimeへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Time changeTime(Integer value) {
		if (value == null) {
			return null;
		}

		Calendar cal = Calendar.getInstance();
		cal.clear();
		cal.set(Calendar.HOUR_OF_DAY, value / 10000);
		cal.set(Calendar.MINUTE, (value / 100) % 100);
		cal.set(Calendar.SECOND, value % 100);
		return new Time(cal.getTimeInMillis());
	}

#! change field type Time-Long
	/**
	 * LongからTimeへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Time changeTime(Long value) {
		if (value == null) {
			return null;
		}

		Calendar cal = Calendar.getInstance();
		cal.clear();
		cal.set(Calendar.HOUR_OF_DAY, value.intValue() / 10000);
		cal.set(Calendar.MINUTE, (value.intValue() / 100) % 100);
		cal.set(Calendar.SECOND, value.intValue() % 100);
		return new Time(cal.getTimeInMillis());
	}

#! change field type Time-BigDecimal
	/**
	 * BigDecimalからTimeへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Time changeTime(BigDecimal value) {
		if (value == null) {
			return null;
		}

		Calendar cal = Calendar.getInstance();
		cal.clear();
		cal.set(Calendar.HOUR_OF_DAY, value.intValue() / 10000);
		cal.set(Calendar.MINUTE, (value.intValue() / 100) % 100);
		cal.set(Calendar.SECOND, value.intValue() % 100);
		return new Time(cal.getTimeInMillis());
	}

#! change field type Time-byte[]
	/**
	 * byte[] からTimeへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Time changeTime(byte[] value) {
		return null;
	}

#! change field type Time-Date
	/**
	 * DateからTimeへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Time changeTime(Date value) {
		if (value == null) {
			return null;
		}
		return new Time(value.getTime());
	}

#! change field type Time-Timestamp
	/**
	 * TimestampからTimeへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Time changeTime(Timestamp value) {
		if (value == null) {
			return null;
		}
		return new Time(value.getTime());
	}

#! change field type Time-Boolean
	/**
	 * BooleanからTimeへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Time changeTime(Boolean value) {
		return null;
	}

#! change field type Timestamp-String
	/**
	 * StringからTimestampへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Timestamp changeTimestamp(String value) {
		if (value == null) {
			return null;
		}

		try {
			return new Timestamp((new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SSS")).parse(value).getTime());
		} catch (ParseException e) {
			return null;
		}
	}

#! change field type Timestamp-Integer
	/**
	 * IntegerからTimestampへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Timestamp changeTimestamp(Integer value) {
		return null;
	}

#! change field type Timestamp-Long
	/**
	 * LongからTimestampへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Timestamp changeTimestamp(Long value) {
		if (value == null) {
			return null;
		}

		Calendar cal = Calendar.getInstance();
		cal.clear();
		cal.set((int) (value.longValue() / 10000000000000L), (int) ((value.longValue() / 100000000000L) % 100) - 1,
				(int) ((value.longValue() / 1000000000L) % 100), (int) ((value.longValue() / 10000000L) % 100), (int) ((value
						.longValue() / 100000L) % 100), (int) ((value.longValue() / 1000L) % 100));
		cal.set(Calendar.MILLISECOND, (int) (value.longValue() % 1000));
		return new Timestamp(cal.getTimeInMillis());
	}

#! change field type Timestamp-BigDecimal
	/**
	 * BigDecimalからTimestampへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Timestamp changeTimestamp(BigDecimal value) {
		if (value == null) {
			return null;
		}

		Calendar cal = Calendar.getInstance();
		cal.clear();
		cal.set((int) (value.longValue() / 10000000000000L), (int) ((value.longValue() / 100000000000L) % 100) - 1,
				(int) ((value.longValue() / 1000000000L) % 100), (int) ((value.longValue() / 10000000L) % 100), (int) ((value
						.longValue() / 100000L) % 100), (int) ((value.longValue() / 1000L) % 100));
		cal.set(Calendar.MILLISECOND, (int) (value.longValue() % 1000));
		return new Timestamp(cal.getTimeInMillis());
	}

#! change field type Timestamp-byte[]
	/**
	 * byte[] からTimestampへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Timestamp changeTimestamp(byte[] value) {
		return null;
	}

#! change field type Timestamp-Date
	/**
	 * DateからTimestampへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Timestamp changeTimestamp(Date value) {
		if (value == null) {
			return null;
		}
		return new Timestamp(value.getTime());
	}

#! change field type Timestamp-Time
	/**
	 * TimeからTimestampへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Timestamp changeTimestamp(Time value) {
		if (value == null) {
			return null;
		}
		return new Timestamp(value.getTime());
	}

#! change field type Timestamp-Boolean
	/**
	 * BooleanからTimestampへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Timestamp changeTimestamp(Boolean value) {
		return null;
	}

#! change field type Boolean-String
	/**
	 * StringからBooleanへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Boolean changeBoolean(String value) {
		if (value == null) {
			return null;
		}

		return Boolean.parseBoolean(value);
	}

#! change field type Boolean-Integer
	/**
	 * IntegerからBooleanへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Boolean changeBoolean(Integer value) {
		if (value == null) {
			return null;
		}
		return new Boolean(value != 0);
	}

#! change field type Boolean-Long
	/**
	 * LongからBooleanへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Boolean changeBoolean(Long value) {
		if (value == null) {
			return null;
		}
		return new Boolean(value != 0);
	}

#! change field type Boolean-BigDecimal
	/**
	 * BigDecimalからBooleanへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Boolean changeBoolean(BigDecimal value) {
		if (value == null) {
			return null;
		}
		return new Boolean(value.compareTo(BigDecimal.ZERO) != 0);
	}

#! change field type Boolean-byte[]
	/**
	 * byte[] からBooleanへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Boolean changeBoolean(byte[] value) {
		return null;
	}

#! change field type Boolean-Date
	/**
	 * DateからBooleanへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Boolean changeBoolean(Date value) {
		return null;
	}

#! change field type Boolean-Time
	/**
	 * TimeからBooleanへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Boolean changeBoolean(Time value) {
		return null;
	}

#! change field type Boolean-Timestamp
	/**
	 * TimestampからBooleanへの変換を行う
	 *
	 * @param value
	 *            変換元値
	 * @return 変換された値
	 */
	protected Boolean changeBoolean(Timestamp value) {
		return null;
	}

#! footer

}
