visad.data.units
Class DefaultUnitsDB

java.lang.Object
  extended by visad.data.units.UnitTable
      extended by visad.data.units.DefaultUnitsDB
All Implemented Interfaces:
Serializable, UnitsDB

public final class DefaultUnitsDB
extends UnitTable

Default units database. This database knows about approximately 500 different units. Users can also add new units to the database at runtime. The basis for this units database is the International System of Units (SI). This is a singleton class.

See Also:
Serialized Form

Nested Class Summary
protected  class DefaultUnitsDB.Prefixer
          Inner (helper) class for parsing unit prefixes.
 
Field Summary
protected  UnitPrefix[] prefixNames
          The unit prefix names in order of lexicographic length:
protected  UnitPrefix[] prefixSymbols
          The unit prefix symbols in order of lexicographic length:
 
Method Summary
 Unit get(String name)
          Get a unit.
static UnitsDB instance()
          Gets an instance of this class.
static void main(String[] args)
          Test this class.
protected  void pn(String name, String unitID)
          Adds a name and it's regular plural form to the database for a unit that's already in the database.
protected  void pn(String name, Unit unit)
          Adds a name, the plural form of the name, and a new unit to the database.
protected  void ps(String symbol, String unitID)
          Adds a symbol to the database for a unit already in the database.
protected  void ps(String symbol, Unit unit)
          Adds a symbol and a new unit to the database.
protected  void px(String name, String unitID)
          Adds a name that has no plural form to the database for a unit that's already in the database.
protected  void px(String name, Unit unit)
          Adds a name that has no plural form and a new unit to the database.
 
Methods inherited from class visad.data.units.UnitTable
getByName, getBySymbol, getNameEnumeration, getSymbolEnumeration, getUnitEnumeration, list, makePlural, put, putName, putSymbol, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

prefixNames

protected final UnitPrefix[] prefixNames
The unit prefix names in order of lexicographic length:


prefixSymbols

protected final UnitPrefix[] prefixSymbols
The unit prefix symbols in order of lexicographic length:

Method Detail

instance

public static UnitsDB instance()
                        throws UnitException
Gets an instance of this class. This is the only way to obtain an instance of this class.

Throws:
UnitException - Something went wrong in generating the singleton instance of the database. This should not occur and indicates an internal inconsistancy.

get

public Unit get(String name)
Get a unit.

Specified by:
get in interface UnitsDB
Overrides:
get in class UnitTable
Parameters:
name - The name of the unit to be retrieved. It may be the plural form (e.g. "yards"). If an entry in the database corresponding to the complete name is not found and the given name ends with an `s', then a search will be made for the singular form (e.g. "yard"). The matching entry will be returned only if the entry permits a plural form. The entry may also have one or more SI prefixes (e.g. "mega", "M").
Returns:
The appropriate unit or null. The unit will account for any SI prefixes in the name.
Requirements:
The argument is non-null.

ps

protected void ps(String symbol,
                  String unitID)
Adds a symbol to the database for a unit already in the database.


ps

protected void ps(String symbol,
                  Unit unit)
           throws UnitException
Adds a symbol and a new unit to the database.

Throws:
UnitException

pn

protected void pn(String name,
                  Unit unit)
           throws UnitException
Adds a name, the plural form of the name, and a new unit to the database.

Throws:
UnitException

pn

protected void pn(String name,
                  String unitID)
Adds a name and it's regular plural form to the database for a unit that's already in the database.


px

protected void px(String name,
                  Unit unit)
           throws UnitException
Adds a name that has no plural form and a new unit to the database.

Throws:
UnitException

px

protected void px(String name,
                  String unitID)
Adds a name that has no plural form to the database for a unit that's already in the database.


main

public static void main(String[] args)
                 throws Exception
Test this class.

Throws:
Exception - A problem occurred.