IntegerNumber.java

package org.mklab.sdpj.datastructure;

/**
 * Class <code>IntegerNumber</code> is defined to manage and deal with all integer numbers in program.
 * 
 * @author koga
 * @version $Revision$, 2009/04/24
 */
public class IntegerNumber extends Number implements Comparable<IntegerNumber> {

  /**serial version ID */
  private static final long serialVersionUID = -6136373020111383037L;
  /**value of class <code>IntegerNumber</code> */
  private int value;

  /**
   * 新しく生成された<code>IntegerNumber</code>オブジェクトを初期化します。
   */
  public IntegerNumber() {
    //
  }

  /**
   * 新しく生成された<code>IntegerNumber</code>オブジェクトを初期化します。
   * 
   * @param value 値
   */
  public IntegerNumber(int value) {
    this.value = value;
  }

  /**
   * 新しく生成された<code>IntegerNumber</code>オブジェクトを初期化します。
   * 
   * @param value 値
   */
  public IntegerNumber(Integer value) {
    this.value = value.intValue();
  }

  /**
   * @param number 代入する値
   */
  public void reset(int number) {
    this.value = number;
  }

  /**
   * @param number 比較する値
   * @return 比較結果
   */
  public boolean equals(Integer number) {
    return this.value == number.intValue();
  }

  /**
   * @param number 比較する値
   * @return 比較結果
   */
  public boolean equals(int number) {
    return this.value == number;
  }

  /**
   * @param number 比較する値
   * @return 比較結果
   */
  public boolean equals(IntegerNumber number) {
    return this.value == number.value;
  }

  /**
   * @see java.lang.Comparable#compareTo(java.lang.Object)
   */
  @Override
  public int compareTo(IntegerNumber opponent) {
    return Integer.valueOf(this.value).compareTo(Integer.valueOf(opponent.value));
  }

  /**
   * @see java.lang.Number#doubleValue()
   */
  @Override
  public double doubleValue() {
    return this.value;
  }

  /**
   * @see java.lang.Number#floatValue()
   */
  @Override
  public float floatValue() {
    return this.value;
  }

  /**
   * @see java.lang.Number#intValue()
   */
  @Override
  public int intValue() {
    return this.value;
  }

  /**
   * @see java.lang.Number#longValue()
   */
  @Override
  public long longValue() {
    return this.value;
  }

  /**
   * @see java.lang.Object#toString()
   */
  @Override
  public String toString() {
    return Integer.toString(this.value);
  }
}