/*
 * @(#)FFloatArray.java
 *
 * Copyright 2001 by Intelligent Technology Inc. All rights reserved.
 */

package jp.co.iti.fagot.fob;

import java.util.ArrayList;
/**
 * FloatArray
 * @author  千曳秀喜
 * @version 1.01 2001/01/07
 */
public class FFloatArray extends FElement {

	/**
	 * コンストラクタ
	 */
	public FFloatArray() {
	super();
	}

	/**
	 * コンストラクタ
	 */
	public FFloatArray(float[] data) {
	super();
	setData( toArrayList(data) );
	}

	/**
	 * コンストラクタ
	 */
	public FFloatArray(FFloatArray data) {
	super();
	setData( toArrayList(data.get()) );
	}

	/**
	 * 値の取得
	 */
	public float[] get() {
	return ( toArray((ArrayList)getData()) ) ;
	}

	/**
	 * 値の設定
	 */
	public void set(float[] data) {
	setData( toArrayList(data) ) ;
	}

	/**
	 * 値の設定
	 */
	public void set( FFloatArray data) {
	setData( data.getData() ) ;
	}

	/**
	 * 配列→ArrayList変換
	 */
	protected ArrayList toArrayList(float[] data) {
	if ( data == null ) {
		return null ;
	}
	ArrayList array = new ArrayList( data.length ) ;
	for ( int nIndex=0; nIndex<data.length ; nIndex++ ) {
		array.add( new Float( data[nIndex] ) ) ;
	}
	return array;
	}

	/**
	 * ArrayList→配列変換
	 */
	protected float[] toArray(ArrayList array) {
	if ( array == null ) {
		return null ;
	}
	float[] data = new float[array.size()] ;
	for ( int nIndex=0; nIndex<array.size() ; nIndex++ ) {
		data[nIndex] = ((Float)array.get(nIndex)).floatValue() ;
	}
	return data;
	}

	//## CLONE ########################################################
	/**
	 * 複製インスタンスの作成
	 * 各実現クラスにおいてインスタンスを生成する
	 * 仮想クラス（およびインスタンス化されないクラス）ではnullを返す
	 */
	public Object createClone() {
	return new FFloatArray();
	}
}
