ucar.units.StandardUnitDB Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of udunits Show documentation
Show all versions of udunits Show documentation
The ucar.units Java package is for decoding and encoding formatted unit specifications (e.g. "m/s"), converting numeric values between compatible units (e.g. between "m/s" and "knot"), and for performing arithmetic operations on units (e.g. dividing one unit by another, or raising a unit to a power).
The newest version!
/*
* Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata
* See LICENSE for license information.
*/
package ucar.units;
/**
* Provides support for a database of standard units.
*
* @author Steven R. Emmerson
*/
public final class StandardUnitDB extends UnitDBImpl {
private static final long serialVersionUID = 1L;
/**
* The singleton instance of this class.
*
* @serial
*/
private static/* final */ StandardUnitDB instance = null;
/**
* The unit formatter for parsing unit string specifications.
*
* @serial
*/
private static UnitFormat format;
/**
* Constructs from nothing.
*
* @throws UnitParseException A string specification couldn't be parsed.
* @throws SpecificationException Bad string specification.
* @throws UnitDBException Problem with the unit database.
* @throws PrefixDBException Problem with the prefix database.
* @throws NameException Bad unit name.
* @throws OperationException Improper unit operation.
* @throws UnitSystemException Problem with UnitSystem.
*/
private StandardUnitDB() throws UnitParseException, SpecificationException,
UnitDBException, PrefixDBException, NameException,
OperationException, UnitSystemException {
super(50, 50);
/*
* SI units:
*/
add((UnitDBImpl) SI.instance().getUnitDB());
/*
* Unit specification strings in the following rely on standard unit
* syntax. Additionally, unit specification strings may not reference
* units that have not yet been defined (i.e. forward referencing is not
* allowed).
*/
format = StandardUnitFormat.instance();
/*
* Constants:
*/
au("PI", Double.toString(Math.PI));
au("percent", "0.01", "%");
au("bakersdozen", "13");
au("pair", "2");
au("dozen", "12");
au("ten", "10");
au("score", "20");
au("hundred", "100");
au("thousand", "1000");
au("million", "1e6");
/*
* Dimensionless derived unit:
*/
addUnit(DerivedUnitImpl.DIMENSIONLESS);
/*
* Dimensionless derived units (avoid! Use "1e-6 kg/kg" instead):
*/
au("ppt", "1e-3");
au("pptv", "1e-3");
au("pptm", "1e-3");
au("pptn", "1e-3");
au("ppm", "1e-6");
au("ppmv", "1e-6");
au("ppmm", "1e-6");
au("ppmn", "1e-6");
au("ppb", "1e-9");
au("ppbv", "1e-9");
au("ppbm", "1e-9");
au("ppbn", "1e-9");
/*
* UNITS OF ELECTRIC CURRENT
*/
au("abampere", "10 ampere"); // exact
au("gilbert", "7.957747e-1 ampere");
au("statampere", "3.335640e-10 ampere");
aa("amp", "ampere");
aa("biot", "abampere");
/*
* UNITS OF LUMINOUS INTENSITY
*/
aa("candle", "candela");
/*
* UNITS OF THERMODYNAMIC TEMPERATURE
*/
au("rankine", "K/1.8");
au("fahrenheit", "rankine @ 459.67");
aa("degree Kelvin", "kelvin", "degrees Kelvin");
aa("degreeK", "kelvin", "degreesK");
aa("degree K", "kelvin", "degrees K");
aa("Celsius", "degree_Celsius");
aa("degreeC", "degree_Celsius", "degreesC");
aa("degree C", "degree_Celsius", "degrees C");
aa("degree centigrade", "degree_Celsius", "degrees centigrade");
aa("centigrade", "degree_Celsius");
aa("degree Rankine", "rankine", "degrees Rankine");
aa("degreeR", "rankine", "degreesR");
aa("degree R", "rankine", "degrees R");
aa("degree Fahrenheit", "fahrenheit", "degrees Fahrenheit");
aa("degreeF", "fahrenheit", "degreesF");
aa("degree F", "fahrenheit", "degrees F");
as("degK", "kelvin");
as("deg K", "kelvin");
as("degC", "degree_Celsius");
as("deg C", "degree_Celsius");
as("degR", "rankine");
as("deg R", "rankine");
as("degF", "fahrenheit");
as("deg F", "fahrenheit");
/*
* UNITS OF MASS
*/
au("assay ton", "2.916667e-2 kg");
au("avoirdupois ounce", "2.834952e-2 kg"); // "oz" ambiguous
au("avoirdupois pound", "4.5359237e-1 kg", "lb"); // exact
au("carat", "2e-4 kg");
au("grain", "6.479891e-5 kg", "gr"); // exact
au("gram", "1e-3 kg", "g"); // exact
au("long hundredweight", "5.080235e1 kg");
au("pennyweight", "1.555174e-3 kg");
au("short hundredweight", "4.535924e1 kg");
au("slug", "14.59390 kg");
au("troy ounce", "3.110348e-2 kg"); // "oz" ambiguous
au("troy pound", "3.732417e-1 kg");
au("unified atomic mass unit", "1.66054e-27 kg");
au("scruple", "20 gr");
au("apdram", "60 gr");
au("apounce", "480 gr");
au("appound", "5760 gr");
aa("atomic mass unit", "unified_atomic_mass_unit");
aa("amu", "unified_atomic_mass_unit");
aa("metricton", "metric_ton");
aa("apothecary ounce", "troy_ounce");
aa("apothecary pound", "troy_pound");
aa("pound", "avoirdupois_pound");
aa("atomicmassunit", "unified_atomic_mass_unit");
au("bag", "94 lb");
au("short ton", "2000 lb");
au("long ton", "2240 lb");
aa("ton", "short_ton");
aa("shortton", "short_ton");
aa("longton", "long_ton");
/*
* UNITS OF LENGTH
*/
au("astronomical unit", "1.495979e11 m", "AU");
au("fermi", "femtometer"); // definition
au("light year", "9.46073e15 m");
au("micron", "micrometer"); // definition
au("mil", "2.54e-5 m"); // exact
au("parsec", "3.085678e16 m", "prs");
au("printers point", "3.514598e-4 m");
/*
* God help us! There's an international foot and a US survey foot and
* they're not the same!
*/
// US Survey foot stuff:
au("US survey foot", "1200/3937 m", null, "US survey feet");
au("US survey yard", "3 US_survey_feet"); // exact
au("US survey mile", "5280 US_survey_feet"); // exact
aa("US statute mile", "US_survey_mile");
au("rod", "16.5 US_survey_feet"); // exact
au("perch", "5.02921005842012 m");
au("furlong", "660 US_survey_feet"); // exact
au("fathom", "6 US_survey_feet"); // exact
aa("pole", "rod");
// International foot stuff:
au("international inch", ".0254 m", null, "international inches"); // exact
au("international foot", "12 international_inches", null,
"international feet"); // exact
au("international yard", "3 international_feet"); // exact
au("international mile", "5280 international_feet"); // exact
// Alias unspecified units to the international units:
aa("inch", "international_inch", null, "in");
aa("foot", "international_foot", "feet", "ft");
aa("yard", "international_yard", null, "yd");
aa("mile", "international_mile");
au("chain", "2.011684e1 m");
au("printers pica", "12 printers_point"); // exact
aa("astronomicalunit", "astronomical_unit");
aa("asu", "astronomical_unit");
aa("nmile", "nautical_mile");
aa("pica", "printers_pica");
au("big point", "in/72"); // exact
au("barleycorn", "in/3");
au("arpentlin", "191.835 ft");
/*
* UNITS OF SUBSTANCE
*/
au("avogadro_constant", "6.02214179e23/mol");
au("molecule", "1/avogadro_constant");
au("molec", "molecule");
au("nucleon", "molecule");
au("nuc", "molecule");
/*
* UNITS OF TIME
*/
aa("sec", "second"); // avoid
au("shake", "1e-8 s"); // exact
au("sidereal day", "8.616409e4 s");
au("sidereal hour", "3.590170e3 s");
au("sidereal minute", "5.983617e1 s");
au("sidereal second", "0.9972696 s");
au("sidereal year", "3.155815e7 s");
/*
* Interval between 2 successive passages of sun through vernal equinox
* (365.242198781 days -- see
* http://www.ast.cam.ac.uk/pubinfo/leaflets/,
* http://aa.usno.navy.mil/AA/ and
* http://adswww.colorado.edu/adswww/astro_coord.html):
*/
au("tropical year", "3.15569259747e7 s");
au("lunar month", "29.530589 d");
au("common year", "365 d");// exact: 153600e7 seconds
au("leap year", "366 d");
au("Julian year", "365.25 d");
au("Gregorian year", "365.2425 d");
au("sidereal month", "27.321661 d");
au("tropical month", "27.321582 d");
as("hr", "hour");
au("fortnight", "14 d");
au("week", "7 d");
au("jiffy", "cs");
aa("year", "tropical_year", null, "yr");
au("eon", "Gyr"); // fuzzy
au("month", "yr/12"); // on average
aa("anno", "year", null, "ann");
/*
* UNITS OF PLANE ANGLE
*/
au("circle", "360 deg");
au("grade", "0.9 deg"); // exact
aa("turn", "circle");
aa("revolution", "circle", null, "r");
aa("degree", "arc_degree");
aa("degree north", "arc_degree", "degrees north");
aa("degree east", "arc_degree", "degrees east");
aa("degree true", "arc_degree", "degrees true");
aa("angular degree", "arc_degree");
aa("angular minute", "arc_minute");
aa("angular second", "arc_second");
aa("gon", "grade");
aa("arcdegree", "arc_degree");
aa("arcminute", "arc_minute");
aa("arcsecond", "arc_second");
aa("arcdeg", "arc_degree");
aa("arcmin", "arc_minute");
as("mnt", "arc_minute");
aa("arcsec", "arc_second");
aa("degree N", "degree_north", "degrees N");
aa("degreeE", "degree_east", "degreesE");
aa("degree E", "degree_east", "degrees E");
au("degree west", "-1 degree_east", null, "degrees west");
aa("degreeW", "degree_west", "degreesW");
aa("degree W", "degree_west", "degrees W");
aa("degreeT", "degree_true", "degreesT");
aa("degree T", "degree_true", "degrees T");
/*
* The following are derived units with special names. They are useful
* for defining other derived units.
*/
au("sphere", "4 PI sr");
au("standard free fall", "9.806650 m/s2");
aa("force", "standard_free_fall");
aa("gravity", "standard_free_fall");
aa("free fall", "standard_free_fall");
au("mercury 0C", "13595.1 gravity kg/m3");
au("mercury 60F", "13556.8 gravity kg/m3");
au("conventional water", "1000 gravity kg/m3"); // exact
au("water 4C", "999.972 gravity kg/m3");
au("water 60F", "999.001 gravity kg/m3");
aa("conventional mercury", "mercury_0C");
aa("mercury0C", "mercury_0C");
aa("mercury 32F", "mercury_0C");
aa("water4C", "water_4C");
aa("water 39F", "water_4C"); // actually 39.2 degF
aa("mercury", "conventional_mercury");
aa("water", "conventional_water");
as("Hg", "mercury");
as("H2O", "water");
/*
* AREA
*/
au("circular mil", "5.067075e-10 m2");
au("darcy", "9.869233e-13 m2");
// porous solid permeability
aa("ha", "hectare");
au("acre", "160 rod2"); // exact
/*
* ELECTRICITY AND MAGNETISM
*/
au("abfarad", "GF");
au("abhenry", "nH"); // exact
au("abmho", "GS"); // exact
au("abohm", "nOhm"); // exact
au("megohm", "MOhm"); // exact
au("kilohm", "kOhm"); // exact
au("abvolt", "1e-8 V"); // exact
au("e", "1.60217733e-19 C");
au("chemical faraday", "9.64957e4 C");
au("physical faraday", "9.65219e4 C");
au("C12 faraday", "9.648531e4 C");
au("gamma", "nT"); // exact
au("gauss", "1e-4 T"); // exact
au("maxwell", "1e-8 Wb"); // exact
au("oersted", "7.957747e1 A/m", "Oe");
au("statcoulomb", "3.335640e-10 C");
au("statfarad", "1.112650e-12 F");
au("stathenry", "8.987554e11 H");
au("statmho", "1.112650e-12 S");
au("statohm", "8.987554e11 Ohm");
au("statvolt", "2.997925e2 V");
au("unit pole", "1.256637e-7 Wb");
au("mho", "S");
aa("faraday", "C12 faraday");
// charge of 1 mole of electrons
/*
* ENERGY (INCLUDES WORK)
*/
au("electronvolt", "1.602177e-19 J");
au("erg", "1e-7 J"); // exact
au("IT Btu", "1.05505585262e3 J");
au("EC therm", "1.05506e8 J"); // exact
au("thermochemical calorie", "4.184000 J"); // exact
au("IT calorie", "4.1868 J"); // exact
au("ton TNT", "4.184e9 J");
au("US therm", "1.054804e8 J"); // exact
au("watthour", "W.h");
aa("therm", "US_therm");
as("Wh", "watthour");
aa("Btu", "IT_Btu");
aa("calorie", "IT_calorie");
aa("electron volt", "electronvolt");
au("thm", "therm");
au("cal", "calorie");
as("eV", "electronvolt");
au("bev", "gigaelectronvolt");
/*
* FORCE
*/
au("dyne", "1e-5 N"); // exact
au("pond", "9.806650e-3 N"); // exact
au("force kilogram", "9.806650 N", "kgf"); // exact
au("force ounce", "2.780139e-1 N", "ozf");
au("force pound", "4.4482216152605 N", "lbf"); // exact
au("poundal", "1.382550e-1 N");
au("gf", "gram force");
au("force gram", "milliforce_kilogram");
au("force ton", "2000 force_pound"); // exact
aa("ounce force", "force_ounce");
aa("kilogram force", "force_kilogram");
aa("pound force", "force_pound");
au("kip", "kilolbf");
aa("ton force", "force_ton");
au("gram force", "force_gram");
/*
* HEAT
*/
au("clo", "1.55e-1 K.m2.W-1");
/*
* LIGHT
*/
au("footcandle", "1.076391e-1 lx");
au("footlambert", "3.426259 cd/m2");
au("lambert", "1e4/PI cd/m2"); // exact
au("stilb", "1e4 cd/m2", "sb");
au("phot", "1e4 lm/m2", "ph"); // exact
au("nit", "cd.m2", "nt"); // exact
au("langley", "4.184000e4 J/m2"); // exact
au("blondel", "1/PI cd/m2");
aa("apostilb", "blondel");
/*
* MASS PER UNIT LENGTH
*/
au("denier", "1.111111e-7 kg/m");
au("tex", "1e-6 kg/m");
/*
* MASS PER UNIT TIME (INCLUDES FLOW)
*/
au("perm 0C", "5.72135e-11 kg/(Pa.s.m2)");
au("perm 23C", "5.74525e-11 kg/(Pa.s.m2)");
/*
* POWER
*/
au("voltampere", "V.A", "VA");
au("boiler horsepower", "9.80950e3 W");
au("shaft horsepower", "7.456999e2 W");
au("metric horsepower", "7.35499 W");
au("electric horsepower", "7.460000e2 W"); // exact
au("water horsepower", "7.46043e2 W");
au("UK horsepower", "7.4570e2 W");
au("refrigeration ton", "12000 Btu/h");
aa("horsepower", "shaft_horsepower", null, "hp");
aa("ton of refrigeration", "refrigeration_ton");
/*
* PRESSURE OR STRESS
*/
au("standard atmosphere", "1.01325e5 Pa", "atm"); // exact
au("technical atmosphere", "kg.(0.01 gravity/m)2", "at");
au("inch H2O 39F", "inch.water_39F");
au("inch H2O 60F", "inch.water_60F");
au("inch Hg 32F", "inch.mercury_32F");
au("inch Hg 60F", "inch.mercury_60F");
au("millimeter Hg 0C", "mm.mercury_0C");
au("footH2O", "foot.water");
au("cmHg", "cm.Hg");
au("cmH2O", "cm.water");
as("pal", "pascal");
au("inch Hg", "inch.Hg");
aa("inch hg", "inch_Hg");
aa("inHg", "inch_Hg");
aa("in Hg", "inch_Hg");
au("millimeter Hg", "mm.Hg");
aa("mmHg", "millimeter_Hg");
aa("mm Hg", "millimeter_Hg");
aa("torr", "millimeter_Hg");
au("foot H2O", "foot.water");
aa("ftH2O", "foot_H2O");
au("psi", "pound.gravity/inch2");
au("ksi", "kip/inch2");
au("barie", "0.1 N/m2");
aa("atmosphere", "standard_atmosphere");
aa("barye", "barie");
/*
* RADIATION UNITS
*/
aa("sie", "sievert");
/*
* VELOCITY (INCLUDES SPEED)
*/
aa("knot international", "knot");
aa("international knot", "knot");
/*
* VISCOSITY
*/
au("poise", "1e-1 Pa.s", "P"); // exact
au("stokes", "1e-4 m2/s", "St"); // exact
au("rhe", "10 (Pa.s)-1");
/*
* VOLUME (INCLUDES CAPACITY)
*/
au("acre foot", "1.233489e3 m3");
// but `acre foot' is 1.2334867714897e3 meters^3. Odd.
au("board foot", "2.359737e-3 m3");
au("bushel", "3.523907e-2 m3", "bu");
au("UK liquid gallon", "4.546090e-3 m3"); // exact
au("Canadian liquid gallon", "4.546090e-3 m3"); // exact
au("US dry gallon", "4.404884e-3 m3");
au("US liquid gallon", "3.785412e-3 m3");
au("cc", "1e-6 m3");
au("stere", "m3"); // exact
au("register ton", "2.831685 m3");
au("US dry quart", "1/4 US_dry_gallon");
au("US dry pint", "1/8 US_dry_gallon");
au("US liquid quart", "1/4 US_liquid_gallon");
au("US liquid pint", "1/8 US_liquid_gallon");
au("US liquid cup", "1/16 US_liquid_gallon");
au("US liquid gill", "1/32 US_liquid_gallon");
au("US fluid ounce", "1/128 US_liquid_gallon");
aa("US liquid ounce", "US_fluid_ounce");
au("UK liquid quart", "1/4 UK_liquid_gallon");
au("UK liquid pint", "1/8 UK_liquid_gallon");
au("UK liquid cup", "1/16 UK_liquid_gallon");
au("UK liquid gill", "1/32 UK_liquid_gallon");
au("UK fluid ounce", "1/160 UK_liquid_gallon");
aa("UK liquid ounce", "UK_fluid_ounce");
aa("liquid gallon", "US_liquid_gallon");
aa("fluid ounce", "US_fluid_ounce", null, "fl_oz");
aa("dry quart", "US_dry_quart");
aa("dry pint", "US_dry_pint");
au("liquid quart", "1/4 liquid_gallon");
au("liquid pint", "1/8 liquid_gallon");
aa("gallon", "liquid_gallon");
au("barrel", "42 US_liquid_gallon", "bbl");
// petroleum industry definition
aa("quart", "liquid_quart");
aa("pint", "liquid_pint", null, "pt");
au("cup", "1/16 liquid_gallon");
au("gill", "1/32 liquid_gallon");
au("tablespoon", "0.5 US_fluid_ounce", "Tbl");
au("teaspoon", "1/3 tablespoon", "tsp");
au("peck", "1/4 bushel", "pk");
as("floz", "fluid_ounce");
aa("acre_feet", "acre_foot");
aa("board_feet", "board_foot");
aa("tbsp", "tablespoon");
aa("tblsp", "tablespoon");
au("fldr", "1/8 floz");
au("dram", "1/16 floz", "dr");
au("firkin", "1/4 barrel");
// exact but "barrel" is vague
/*
* VOLUME PER UNIT TIME (includes FLOW)
*/
au("sverdrup", "1e6 m3/s"); // oceanographic flow
/*
* COMPUTERS AND COMMUNICATION
*/
au("bit", "1"); // unit of information
au("baud", "s-1", "Bd");
au("bps", "s-1");
au("cps", "s-1");
/*
* MISC
*/
au("count", "1");
au("kayser", "100 m-1"); // exact
au("rps", "r/s");
au("rpm", "1/60 rps");
au("work_year", "2056 h");
au("work_month", "1/12 work_year");
aa("geopotential", "gravity", null, "gp");
aa("dynamic", "geopotential");
format = null; // allow garbage collection
}
/**
* Gets an instance of this database.
*
* @return An instance of this database.
* @throws UnitDBException The instance couldn't be created.
*/
public static synchronized StandardUnitDB instance() throws UnitDBException {
if (instance == null) {
try {
instance = new StandardUnitDB();
} catch (Exception e) {
throw new UnitDBException("Couldn't create standard unit-database", e);
}
}
return instance;
}
/**
* Adds a derived unit to the database.
*
* @param name The name of the unit.
* @param definition The definition for the unit.
* @throws UnitExistsException Attempt to redefine an existing unit.
* @throws NameException Bad unit name.
* @throws UnitParseException A string specification couldn't be parsed.
* @throws SpecificationException Bad string specification.
* @throws UnitDBException Problem with the unit database.
* @throws PrefixDBException Problem with the prefix database.
* @throws NameException Bad unit name.
* @throws OperationException Improper unit operation.
* @throws UnitSystemException Problem with UnitSystem.
*/
private void au(final String name, final String definition)
throws UnitExistsException, NoSuchUnitException,
UnitParseException, SpecificationException, UnitDBException,
PrefixDBException, OperationException, NameException,
UnitSystemException {
au(name, definition, null);
}
/**
* Adds a derived unit to the database.
*
* @param name The name of the unit.
* @param definition The definition for the unit.
* @param symbol The symbol for the unit.
* @throws UnitExistsException Attempt to redefine an existing unit.
* @throws NameException Bad unit name.
* @throws UnitParseException A string specification couldn't be parsed.
* @throws SpecificationException Bad string specification.
* @throws UnitDBException Problem with the unit database.
* @throws PrefixDBException Problem with the prefix database.
* @throws NameException Bad unit name.
* @throws OperationException Improper unit operation.
* @throws UnitSystemException Problem with UnitSystem.
*/
private void au(final String name, final String definition,
final String symbol) throws UnitExistsException,
NoSuchUnitException, UnitParseException, SpecificationException,
UnitDBException, PrefixDBException, OperationException,
NameException, UnitSystemException {
au(name, definition, symbol, (String) null);
}
/**
* Adds a derived unit to the database.
*
* @param name The name of the unit.
* @param definition The definition for the unit.
* @param symbol The symbol for the unit.
* @param plural The plural form of the name of the unit.
* @throws UnitExistsException Attempt to redefine an existing unit.
* @throws NameException Bad unit name.
* @throws UnitParseException A string specification couldn't be parsed.
* @throws SpecificationException Bad string specification.
* @throws UnitDBException Problem with the unit database.
* @throws PrefixDBException Problem with the prefix database.
* @throws NameException Bad unit name.
* @throws OperationException Improper unit operation.
* @throws UnitSystemException Problem with UnitSystem.
*/
private void au(final String name, final String definition,
final String symbol, final String plural)
throws UnitExistsException, NoSuchUnitException,
UnitParseException, SpecificationException, UnitDBException,
PrefixDBException, OperationException, NameException,
UnitSystemException {
final Unit unit = format.parse(definition, this);
if (unit == null) {
throw new NoSuchUnitException(definition);
}
addUnit(unit.clone(UnitName.newUnitName(name, plural, symbol)));
}
/**
* Adds an alias for a unit to the database.
*
* @param alias The alias for the unit.
* @param name The name of the unit.
* @throws UnitExistsException Attempt to redefine an existing unit.
* @throws NameException Bad unit name.
* @throws UnitParseException A string specification couldn't be parsed.
* @throws SpecificationException Bad string specification.
* @throws UnitDBException Problem with the unit database.
* @throws PrefixDBException Problem with the prefix database.
* @throws NameException Bad unit name.
* @throws OperationException Improper unit operation.
* @throws UnitSystemException Problem with UnitSystem.
*/
private void aa(final String alias, final String name)
throws UnitExistsException, NoSuchUnitException,
UnitParseException, SpecificationException, UnitDBException,
PrefixDBException, OperationException, NameException,
UnitSystemException {
aa(alias, name, null);
}
/**
* Adds an alias for a unit to the database.
*
* @param alias The alias for the unit.
* @param name The name of the unit.
* @param plural The plural form of the alias for the unit.
* @throws UnitExistsException Attempt to redefine an existing unit.
* @throws NameException Bad unit name.
* @throws UnitParseException A string specification couldn't be parsed.
* @throws SpecificationException Bad string specification.
* @throws UnitDBException Problem with the unit database.
* @throws PrefixDBException Problem with the prefix database.
* @throws NameException Bad unit name.
* @throws OperationException Improper unit operation.
* @throws UnitSystemException Problem with UnitSystem.
*/
private void aa(final String alias, final String name, final String plural)
throws UnitExistsException, NoSuchUnitException,
UnitParseException, SpecificationException, UnitDBException,
PrefixDBException, OperationException, NameException,
UnitSystemException {
aa(alias, name, plural, null);
}
/**
* Adds an alias for a unit to the database.
*
* @param alias The alias for the unit.
* @param name The name of the unit.
* @param plural The plural form of the alias for the unit.
* @param symbol The symbol for the alias.
* @throws UnitExistsException Attempt to redefine an existing unit.
* @throws NameException Bad unit name.
* @throws UnitParseException A string specification couldn't be parsed.
* @throws SpecificationException Bad string specification.
* @throws UnitDBException Problem with the unit database.
* @throws PrefixDBException Problem with the prefix database.
* @throws NameException Bad unit name.
* @throws OperationException Improper unit operation.
* @throws UnitSystemException Problem with UnitSystem.
*/
private void aa(final String alias, final String name, final String plural,
final String symbol) throws UnitExistsException,
NoSuchUnitException, UnitParseException, SpecificationException,
UnitDBException, PrefixDBException, OperationException,
NameException, UnitSystemException {
addAlias(alias, name, symbol, plural);
}
/**
* Adds a symbol for a unit to the database.
*
* @param symbol The symbol for the unit.
* @param name The name of the unit.
* @throws UnitExistsException Attempt to redefine an existing unit.
* @throws NameException Bad unit name.
* @throws UnitParseException A string specification couldn't be parsed.
* @throws SpecificationException Bad string specification.
* @throws UnitDBException Problem with the unit database.
* @throws PrefixDBException Problem with the prefix database.
* @throws NameException Bad unit name.
* @throws OperationException Improper unit operation.
* @throws UnitSystemException Problem with UnitSystem.
*/
private void as(final String symbol, final String name)
throws UnitExistsException, NoSuchUnitException,
UnitParseException, SpecificationException, UnitDBException,
PrefixDBException, OperationException, NameException,
UnitSystemException {
addSymbol(symbol, name);
}
/**
* Tests this class.
*/
public static void main(final String[] args) throws Exception {
final UnitDB db = StandardUnitDB.instance();
System.out.println("db.get(\"meter\")=" + db.get("meter"));
System.out.println("db.get(\"meters\")=" + db.get("meters"));
System.out.println("db.get(\"metre\")=" + db.get("metre"));
System.out.println("db.get(\"metres\")=" + db.get("metres"));
System.out.println("db.get(\"m\")=" + db.get("m"));
System.out.println("db.get(\"newton\")=" + db.get("newton"));
System.out.println("db.get(\"Cel\")=" + db.get("Cel"));
System.out.println("db.get(\"Roentgen\")=" + db.get("Roentgen"));
System.out.println("db.get(\"rad\")=" + db.get("rad"));
System.out.println("db.get(\"rd\")=" + db.get("rd"));
System.out.println("db.get(\"perches\")=" + db.get("perches"));
System.out.println("db.get(\"jiffies\")=" + db.get("jiffies"));
System.out.println("db.get(\"foo\")=" + db.get("foo"));
}
}