## visad.data.units
Class DefaultUnitsDB

    java.lang.Object
      visad.data.units.UnitTable
          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.

### 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.