Class TransformedUnit<Q extends javax.measure.Quantity<Q>>

java.lang.Object
tech.units.indriya.AbstractUnit<Q>
tech.units.indriya.unit.TransformedUnit<Q>
Type Parameters:
Q - The type of the quantity measured by this unit.
All Implemented Interfaces:
Serializable, Comparable<javax.measure.Unit<Q>>, javax.measure.Unit<Q>, ComparableUnit<Q>, tech.uom.lib.common.function.UnitConverterSupplier

public final class TransformedUnit<Q extends javax.measure.Quantity<Q>> extends AbstractUnit<Q> implements tech.uom.lib.common.function.UnitConverterSupplier

This class represents the units derived from other units using converters.

Examples of transformed units: CELSIUS = KELVIN.shift(273.15); FOOT = METRE.multiply(3048).divide(10000); MILLISECOND = MILLI(SECOND);

Transformed units have no symbol. But like any other units, they may have labels attached to them (see UnitFormat.label

Instances of this class are created through the AbstractUnit.transform(javax.measure.UnitConverter) method.

Since:
1.0
Version:
1.2, August 06, 2017
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • parentUnit

      private final AbstractUnit<Q extends javax.measure.Quantity<Q>> parentUnit
      Holds the parent unit.
    • systemUnit

      private final javax.measure.Unit<Q extends javax.measure.Quantity<Q>> systemUnit
      Holds the system unit.
    • converter

      private final javax.measure.UnitConverter converter
      Holds the converter to the parent unit.
    • symbol

      private String symbol
      Holds the symbol.
  • Constructor Details

    • TransformedUnit

      public TransformedUnit(javax.measure.Unit<Q> parentUnit, javax.measure.UnitConverter unitConverter)
      Creates a transformed unit from the specified system unit. using the parent as symbol
      Parameters:
      parentUnit - the system unit from which this unit is derived.
      converter - the converter to the parent units.
    • TransformedUnit

      public TransformedUnit(String symbol, javax.measure.Unit<Q> parentUnit, javax.measure.UnitConverter unitConverter)
      Creates a transformed unit from the specified parent unit.
      Parameters:
      symbol - the symbol to use with this transformed unit.
      parentUnit - the parent unit from which this unit is derived.
      unitConverter - the converter to the parent units.
    • TransformedUnit

      public TransformedUnit(String symbol, javax.measure.Unit<Q> parentUnit, javax.measure.Unit<Q> sysUnit, javax.measure.UnitConverter unitConverter)
      Creates a transformed unit from the specified parent and system unit. using the parent as symbol
      Parameters:
      parentUnit - the parent unit from which this unit is derived.
      sysUnit - the system unit which this unit is based on.
      converter - the converter to the parent units.
  • Method Details

    • getDimension

      public javax.measure.Dimension getDimension()
      Specified by:
      getDimension in interface javax.measure.Unit<Q extends javax.measure.Quantity<Q>>
      Specified by:
      getDimension in class AbstractUnit<Q extends javax.measure.Quantity<Q>>
    • getSystemConverter

      public javax.measure.UnitConverter getSystemConverter()
      Description copied from class: AbstractUnit
      Returns the converter from this unit to its unscaled
      invalid reference
      System Unit
      unit.
      Specified by:
      getSystemConverter in class AbstractUnit<Q extends javax.measure.Quantity<Q>>
      Returns:
      getConverterTo(this.toSystemUnit())
      See Also:
    • getConverter

      public javax.measure.UnitConverter getConverter()
      Returns the converter to the parent unit.
      Specified by:
      getConverter in interface tech.uom.lib.common.function.UnitConverterSupplier
      Returns:
      the converter to the parent unit.
    • toSystemUnit

      protected javax.measure.Unit<Q> toSystemUnit()
      Description copied from class: AbstractUnit
      Returns the unscaled
      invalid reference
      SI
      unit from which this unit is derived. The SI unit can be be used to identify a quantity given the unit. For example: static boolean isAngularVelocity(AbstractUnitinvalid input: '<'?> unit) { return unit.toSystemUnit().equals(RADIAN.divide(SECOND)); } assert(REVOLUTION.divide(MINUTE).isAngularVelocity()); // Returns true.
      Specified by:
      toSystemUnit in class AbstractUnit<Q extends javax.measure.Quantity<Q>>
      Returns:
      the unscaled metric unit from which this unit is derived.
    • getBaseUnits

      public Map<? extends javax.measure.Unit<?>,Integer> getBaseUnits()
      Specified by:
      getBaseUnits in interface javax.measure.Unit<Q extends javax.measure.Quantity<Q>>
      Specified by:
      getBaseUnits in class AbstractUnit<Q extends javax.measure.Quantity<Q>>
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in class AbstractUnit<Q extends javax.measure.Quantity<Q>>
    • equals

      public boolean equals(Object obj)
      Specified by:
      equals in class AbstractUnit<Q extends javax.measure.Quantity<Q>>
    • getSymbol

      public String getSymbol()
      Specified by:
      getSymbol in interface javax.measure.Unit<Q extends javax.measure.Quantity<Q>>
      Overrides:
      getSymbol in class AbstractUnit<Q extends javax.measure.Quantity<Q>>
    • getParentUnit

      public javax.measure.Unit<Q> getParentUnit()
      Returns the parent unit for this unit. The parent unit is the untransformed unit from which this unit is derived.
      Returns:
      the untransformed unit from which this unit is derived.