Class 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 new Unit instance.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      (package private) Unit add​(Unit that)
      Returns a new Unit that is the addition of this Unit and the Unit 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 new Unit that is the division of this Unit and the Unit specified
      boolean equals​(java.lang.Object obj)
      Checks whether this Unit object is equal to the specified Unit object.
      (package private) static Unit find​(long type)
      Finds a Unit 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 new Unit that is the multiplication of this Unit and the Unit specified
      (package private) Unit sub​(Unit that)
      Returns a new Unit that is the subtraction between this Unit and the Unit specified.
      java.lang.String toString()
      Returns a String object representing the Unit
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Field Detail

      • UNITY

        private static final long UNITY
      • 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!
      • base

        private static java.util.Map<Unit,​Unit> base
      • name

        private final java.lang.String name
      • type

        private final long type
    • Constructor Detail

      • Unit

        private Unit​(java.lang.String name,
                     long type)
        Creates a new Unit instance.
        Parameters:
        name - the name of the Unit
        type - the type of the Unit
    • 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 this Unit object is equal to the specified Unit object. The Unit objects are considered equal if their exponents are equal.
        Overrides:
        equals in class java.lang.Object
        Parameters:
        obj - the Unit object that should be checked for equality
        Returns:
        true if the specified Unit object is equal to this Unit object.
      • hashCode

        public int hashCode()
        Returns the hash code for this object.
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        This object's hash code.
      • mul

        Unit mul​(Unit that)
        Returns a new Unit that is the multiplication of this Unit and the Unit specified
        Parameters:
        that - the Unit that will be multiplied with this Unit
        Returns:
        a new Unit that is the multiplication of this Unit and the Unit specified
        Throws:
        java.lang.RuntimeException - if both Unit s are special
        See Also:
        isSpecial()
      • div

        Unit div​(Unit that)
        Returns a new Unit that is the division of this Unit and the Unit specified
        Parameters:
        that - the Unit that this Unit will be divided with
        Returns:
        a new Unit that is the division of this Unit and the Unit specified
        Throws:
        java.lang.RuntimeException - if both Unit s are special
        See Also:
        isSpecial()
      • add

        Unit add​(Unit that)
        Returns a new Unit that is the addition of this Unit and the Unit specified.
        Parameters:
        that - the Unit that should be added to this Unit
        Returns:
        a new Unit that is the addition of this Unit and the Unit specified.
        Throws:
        java.lang.RuntimeException - if the two Unit s are not the same
      • sub

        Unit sub​(Unit that)
        Returns a new Unit that is the subtraction between this Unit and the Unit specified.
        Parameters:
        that - the Unit that will be subtracted from this Unit
        Returns:
        a new Unit that is the subtraction between this Unit and the Unit specified.
        Throws:
        java.lang.RuntimeException - if the Unit specified is not the same as this Unit
      • find

        static Unit find​(long type)
        Finds a Unit based on a type. If the Unit is not found, it will be created and added to the list of all units under a null name.
        Parameters:
        type - the type of the Unit to find
        Returns:
        the Unit
      • toString

        public java.lang.String toString()
        Returns a String object representing the Unit
        Overrides:
        toString in class java.lang.Object
        Returns:
        A String object representing the Unit
      • 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.