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

package jp.co.iti.fagot.fob;

import java.lang.Integer;
import java.lang.NumberFormatException;
/**
 * Integer
 * @author  千曳秀喜
 * @version 1.01 2001/01/07
 */
public class FInteger extends FElement {

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

	/**
	 * コンストラクタ
	 */
	public FInteger(int data) {
	super( new Integer(data) );
	}

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

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

	/**
	 * 値の取得
	 */
	public int get() {
	return ( (isNull())?0:((Integer)getData()).intValue() ) ;
	}

	/**
	 * 値の設定
	 */
	public void set(int data) {
	setData( new Integer(data) ) ;
	}

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

	/**
	 * 値のインクリメント
	 */
	public void increment() {
		set(get()+1);
	}

	/**
	 * 値のデクリメント
	 */
	public void decrement() {
		set(get()-1);
	}

	/**
	 * 値のチェック
	 * @param szValue チェックする文字列
	 */
	static public boolean isInteger(String szValue) {
		int n = 0 ;
		if ( szValue == null ) {
			return false;
		}
		try {
			n = new Integer(szValue).intValue();
		} catch ( NumberFormatException nf ) {
			return false;
		}
		return true;
	}

	/**
	 * 値の取得
	 * @param szValue チェックする文字列
	 */
	static public int stringToInt(String szValue) {
		int n = 0 ;
		if ( szValue == null ) {
			return 0;
		}
		try {
			n = new Integer(szValue).intValue();
		} catch ( NumberFormatException nf ) {
			return 0;
		}
		return n;
	}

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