Class Unit
- java.lang.Object
-
- org.osgi.util.measurement.Unit
-
public class Unit extends java.lang.Object
A unit system for measurements. This class contains definitions of the most common SI units.This class only support exponents for the base SI units in the range -64 to +63. Any operation which produces an exponent outside of this range will result in a
Unit
object with undefined exponents.
-
-
Field Summary
Fields Modifier and Type Field Description static Unit
A
The electric current unit ampere (A)private static int
A_SHIFT
private static Unit[]
allUnits
An array containing all units defined.private static java.util.Map<Unit,Unit>
base
static Unit
C
The electric charge unit coulomb (C).static Unit
cd
The luminous intensity unit candela (cd)private static int
cd_SHIFT
static Unit
F
The capacitance unit farad (F).static Unit
Gy
The absorbed dose unit gray (Gy).static Unit
Hz
The frequency unit hertz (Hz).static Unit
J
The energy unit joule (J).static Unit
K
The temperature unit kelvin (K)private static int
K_SHIFT
static Unit
kat
The catalytic activity unit katal (kat).static Unit
kg
The mass unit kilogram (kg)private static int
kg_SHIFT
static Unit
lx
The illuminance unit lux (lx).static Unit
m
The length unit meter (m)static Unit
m_s
The speed unit meter per second (m/s)static Unit
m_s2
The acceleration unit meter per second squared (m/s2)private static int
m_SHIFT
static Unit
m2
The area unit square meter (m2)static Unit
m3
The volume unit cubic meter (m3)private static long
MASK
static Unit
mol
The amount of substance unit mole (mol)private static int
mol_SHIFT
static Unit
N
The force unit newton (N).private java.lang.String
name
static Unit
Ohm
The electric resistance unit ohm.static Unit
Pa
The pressure unit pascal (Pa).static Unit
rad
The angle unit radians (rad)private static int
rad_SHIFT
static Unit
s
The time unit second (s)static Unit
S
The electric conductance unit siemens (S).private static int
s_SHIFT
static Unit
T
The magnetic flux density unit tesla (T).private long
type
static Unit
unity
No Unit (Unity)private static long
UNITY
static Unit
V
The electric potential difference unit volt (V).static Unit
W
The power unit watt (W).static Unit
Wb
The magnetic flux unit weber (Wb).private static long
x_MASK
private static int
x_SHIFT
private static long
ZERO
-
Constructor Summary
Constructors Modifier Constructor Description private
Unit(java.lang.String name, long type)
Creates a newUnit
instance.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) Unit
add(Unit that)
Returns a newUnit
that is the addition of thisUnit
and theUnit
specified.private static void
addSIname(int si, java.lang.String name, java.lang.StringBuilder numerator, java.lang.StringBuilder denominator)
private static java.lang.String
computeName(long type)
private static long
createType(int _x, int _rad, int _cd, int _mol, int _A, int _K, int _kg, int _s, int _m)
Create a type field from the base SI unit exponent values.(package private) Unit
div(Unit that)
Returns a newUnit
that is the division of thisUnit
and theUnit
specifiedboolean
equals(java.lang.Object obj)
Checks whether thisUnit
object is equal to the specifiedUnit
object.(package private) static Unit
find(long type)
Finds aUnit
based on a type.int
hashCode()
Returns the hash code for this object.private boolean
isSpecial()
Checks whether the unit has a special type, i.e.(package private) Unit
mul(Unit that)
Returns a newUnit
that is the multiplication of thisUnit
and theUnit
specified(package private) Unit
sub(Unit that)
Returns a newUnit
that is the subtraction between thisUnit
and theUnit
specified.java.lang.String
toString()
Returns aString
object representing theUnit
-
-
-
Field Detail
-
UNITY
private static final long UNITY
-
ZERO
private static final long ZERO
- See Also:
- Constant Field Values
-
MASK
private static final long MASK
- See Also:
- Constant Field Values
-
m_SHIFT
private static final int m_SHIFT
- See Also:
- Constant Field Values
-
s_SHIFT
private static final int s_SHIFT
- See Also:
- Constant Field Values
-
kg_SHIFT
private static final int kg_SHIFT
- See Also:
- Constant Field Values
-
K_SHIFT
private static final int K_SHIFT
- See Also:
- Constant Field Values
-
A_SHIFT
private static final int A_SHIFT
- See Also:
- Constant Field Values
-
mol_SHIFT
private static final int mol_SHIFT
- See Also:
- Constant Field Values
-
cd_SHIFT
private static final int cd_SHIFT
- See Also:
- Constant Field Values
-
rad_SHIFT
private static final int rad_SHIFT
- See Also:
- Constant Field Values
-
x_SHIFT
private static final int x_SHIFT
- See Also:
- Constant Field Values
-
x_MASK
private static final long x_MASK
- See Also:
- Constant Field Values
-
unity
public static final Unit unity
No Unit (Unity)
-
m
public static final Unit m
The length unit meter (m)
-
s
public static final Unit s
The time unit second (s)
-
kg
public static final Unit kg
The mass unit kilogram (kg)
-
K
public static final Unit K
The temperature unit kelvin (K)
-
A
public static final Unit A
The electric current unit ampere (A)
-
mol
public static final Unit mol
The amount of substance unit mole (mol)
-
cd
public static final Unit cd
The luminous intensity unit candela (cd)
-
m_s
public static final Unit m_s
The speed unit meter per second (m/s)
-
m_s2
public static final Unit m_s2
The acceleration unit meter per second squared (m/s2)
-
m2
public static final Unit m2
The area unit square meter (m2)
-
m3
public static final Unit m3
The volume unit cubic meter (m3)
-
Hz
public static final Unit Hz
The frequency unit hertz (Hz).hertz is expressed in SI units as 1/s
-
N
public static final Unit N
The force unit newton (N).N is expressed in SI units as m·kg/s2
-
Pa
public static final Unit Pa
The pressure unit pascal (Pa).Pa is equal to N/m2 or is expressed in SI units as kg/m·s2
-
J
public static final Unit J
The energy unit joule (J).joule is equal to N·m or is expressed in SI units as m2·kg/s2
-
W
public static final Unit W
The power unit watt (W).watt is equal to J/s or is expressed in SI units as m2·kg/s3
-
C
public static final Unit C
The electric charge unit coulomb (C).coulomb is expressed in SI units as s·A
-
V
public static final Unit V
The electric potential difference unit volt (V).volt is equal to W/A or is expressed in SI units as m2·kg/s3·A
-
F
public static final Unit F
The capacitance unit farad (F).farad is equal to C/V or is expressed in SI units as s4·A2/m2·kg
-
Ohm
public static final Unit Ohm
The electric resistance unit ohm.ohm is equal to V/A or is expressed in SI units as m2·kg/s3·A2
-
S
public static final Unit S
The electric conductance unit siemens (S).siemens is equal to A/V or is expressed in SI units as s3·A2/m2·kg
-
Wb
public static final Unit Wb
The magnetic flux unit weber (Wb).weber is equal to V·s or is expressed in SI units as m2·kg/s2·A
-
T
public static final Unit T
The magnetic flux density unit tesla (T).tesla is equal to Wb/m2 or is expressed in SI units as kg/s2·A
-
lx
public static final Unit lx
The illuminance unit lux (lx).lux is expressed in SI units as cd/m2
-
Gy
public static final Unit Gy
The absorbed dose unit gray (Gy).Gy is equal to J/kg or is expressed in SI units as m2/s2
-
kat
public static final Unit kat
The catalytic activity unit katal (kat).katal is expressed in SI units as mol/s
-
rad
public static final Unit rad
The angle unit radians (rad)
-
allUnits
private static final Unit[] allUnits
An array containing all units defined. The first seven items must be m, s, kg, K, A, mol, cd, rad in this order!
-
name
private final java.lang.String name
-
type
private final long type
-
-
Method Detail
-
createType
private static long createType(int _x, int _rad, int _cd, int _mol, int _A, int _K, int _kg, int _s, int _m)
Create a type field from the base SI unit exponent values.
-
equals
public boolean equals(java.lang.Object obj)
Checks whether thisUnit
object is equal to the specifiedUnit
object. TheUnit
objects are considered equal if their exponents are equal.- Overrides:
equals
in classjava.lang.Object
- Parameters:
obj
- theUnit
object that should be checked for equality- Returns:
- true if the specified
Unit
object is equal to thisUnit
object.
-
hashCode
public int hashCode()
Returns the hash code for this object.- Overrides:
hashCode
in classjava.lang.Object
- Returns:
- This object's hash code.
-
mul
Unit mul(Unit that)
Returns a newUnit
that is the multiplication of thisUnit
and theUnit
specified- Parameters:
that
- theUnit
that will be multiplied with thisUnit
- Returns:
- a new
Unit
that is the multiplication of thisUnit
and theUnit
specified - Throws:
java.lang.RuntimeException
- if bothUnit
s are special- See Also:
isSpecial()
-
div
Unit div(Unit that)
Returns a newUnit
that is the division of thisUnit
and theUnit
specified- Parameters:
that
- theUnit
that thisUnit
will be divided with- Returns:
- a new
Unit
that is the division of thisUnit
and theUnit
specified - Throws:
java.lang.RuntimeException
- if bothUnit
s are special- See Also:
isSpecial()
-
add
Unit add(Unit that)
Returns a newUnit
that is the addition of thisUnit
and theUnit
specified.- Parameters:
that
- theUnit
that should be added to thisUnit
- Returns:
- a new
Unit
that is the addition of thisUnit
and theUnit
specified. - Throws:
java.lang.RuntimeException
- if the twoUnit
s are not the same
-
sub
Unit sub(Unit that)
Returns a newUnit
that is the subtraction between thisUnit
and theUnit
specified.- Parameters:
that
- theUnit
that will be subtracted from thisUnit
- Returns:
- a new
Unit
that is the subtraction between thisUnit
and theUnit
specified. - Throws:
java.lang.RuntimeException
- if theUnit
specified is not the same as thisUnit
-
find
static Unit find(long type)
Finds aUnit
based on a type. If theUnit
is not found, it will be created and added to the list of all units under a null name.- Parameters:
type
- the type of theUnit
to find- Returns:
- the
Unit
-
toString
public java.lang.String toString()
Returns aString
object representing theUnit
- Overrides:
toString
in classjava.lang.Object
- Returns:
- A
String
object representing theUnit
-
computeName
private static java.lang.String computeName(long type)
-
addSIname
private static void addSIname(int si, java.lang.String name, java.lang.StringBuilder numerator, java.lang.StringBuilder denominator)
-
isSpecial
private boolean isSpecial()
Checks whether the unit has a special type, i.e. not a SI unit.- Returns:
- true if the type is special, otherwise false.
-
-