QuantityType.java

/*
 * Created on 2007/01/28
 * Copyright (C) 2007 Koga Laboratory. All rights reserved.
 *
 */
package org.mklab.tool.control.system.parameter;

/**
 * 量の型を表わす列挙型です。
 * 
 * @author koga
 * @version $Revision: 1.3 $, 2007/01/28
 */
public enum QuantityType {
  /** 長さ */
  LENGTH(Messages.getString("QuantityType.0"), new SIunit[] {SIunit.m}), //$NON-NLS-1$
  /** 質量 */
  MASS(Messages.getString("QuantityType.1"), new SIunit[] {SIunit.kg}), //$NON-NLS-1$
  /** 慣性モーメント */
  MOMENT_OF_INERTIA(Messages.getString("QuantityType.2"), new SIunit[] {SIunit.kg, SIunit.m2}), //$NON-NLS-1$
  /** 周期 */
  PERIOD(Messages.getString("QuantityType.3"), new SIunit[] {SIunit.s}), //$NON-NLS-1$
  /** 不定 */
  UNDEFINED(Messages.getString("QuantityType.4"), new SIunit[] {SIunit.undefined}); //$NON-NLS-1$

  /** 単位 */
  private final Unit unit;

  /** 名前 */
  private final String name;

  /**
   * 新しく生成された<code>QuantityType</code>オブジェクトを初期化します。
   * 
   * @param name 名前
   * @param unit 単位
   */
  QuantityType(final String name, final SIunit[] unit) {
    this.name = name;
    this.unit = new Unit(unit);
  }

  /**
   * @see java.lang.Enum#toString()
   */
  @Override
  public String toString() {
    return this.name + " [" + this.unit.toString() + "]"; //$NON-NLS-1$ //$NON-NLS-2$
  }

  /**
   * 名前を返します。
   * 
   * @return 名前
   */
  public String getName() {
    return this.name;
  }

  /**
   * 単位を返します。
   * 
   * @return 単位
   */
  public Unit getUnit() {
    return this.unit;
  }

  /**
   * 単位の配列を返します。
   * 
   * @return 単位の配列
   */
  SIunit[] getUnitAsArray() {
    return this.unit.getUnitAsArray();
  }
}