Class TemporalQuantity

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Comparable<javax.measure.Quantity<javax.measure.quantity.Time>>, javax.measure.Quantity<javax.measure.quantity.Time>, ComparableQuantity<javax.measure.quantity.Time>, tech.uom.lib.common.function.QuantityConverter<javax.measure.quantity.Time>, tech.uom.lib.common.function.UnitSupplier<javax.measure.quantity.Time>, tech.uom.lib.common.function.ValueSupplier<java.lang.Number>

    public final class TemporalQuantity
    extends AbstractQuantity<javax.measure.quantity.Time>
    Class that represents TemporalUnit in Unit-API
    Since:
    1.0
    See Also:
    Serialized Form
    • Field Detail

      • timeUnit

        private final java.time.temporal.TemporalUnit timeUnit
      • value

        private final java.lang.Integer value
      • amount

        private final java.time.temporal.TemporalAmount amount
    • Constructor Detail

      • TemporalQuantity

        TemporalQuantity​(java.lang.Integer value,
                         java.time.temporal.TemporalUnit timeUnit)
        creates the TemporalQuantity using TemporalUnit and Integer
        Parameters:
        timeUnit - - time to be used
        value - - value to be used
    • Method Detail

      • of

        public static TemporalQuantity of​(java.lang.Integer number,
                                          java.time.temporal.TemporalUnit timeUnit)
        creates the TemporalQuantity using TemporalUnit and Integer
        Parameters:
        value - - value to be used
        timeUnit - - time to be used
      • getTemporalAmount

        public java.time.temporal.TemporalAmount getTemporalAmount()
        get to TemporalAmount
        Returns:
        the TemporalAmount
      • getTemporalUnit

        public java.time.temporal.TemporalUnit getTemporalUnit()
        get to TemporalUnit
        Returns:
        the TemporalUnit
      • getValue

        public java.lang.Integer getValue()
        get value expressed in Integer
        Specified by:
        getValue in interface javax.measure.Quantity<javax.measure.quantity.Time>
        Specified by:
        getValue in interface tech.uom.lib.common.function.ValueSupplier<java.lang.Number>
        Specified by:
        getValue in class AbstractQuantity<javax.measure.quantity.Time>
        Returns:
        the value
      • toUnit

        public javax.measure.Unit<javax.measure.quantity.Time> toUnit()
        converts the TemporalUnit to Unit
        Returns:
        the getTemporalUnit() converted to Unit
      • toQuantity

        public javax.measure.Quantity<javax.measure.quantity.Time> toQuantity()
        Converts the TemporalQuantity to Quantity
        Returns:
        this class converted to Quantity
      • toUnit

        private static javax.measure.Unit<javax.measure.quantity.Time> toUnit​(java.time.temporal.TemporalUnit timeUnit)
      • hashCode

        public int hashCode()
        Description copied from class: AbstractQuantity
        Returns the hash code for this quantity.
        Overrides:
        hashCode in class AbstractQuantity<javax.measure.quantity.Time>
        Returns:
        the hash code value.
      • equals

        public boolean equals​(java.lang.Object obj)
        Description copied from class: AbstractQuantity
        Compares this quantity against the specified object for strict equality (same unit and same amount).

        Similarly to the BigDecimal.equals(java.lang.Object) method which consider 2.0 and 2.00 as different objects because of different internal scales, quantities such as Quantities.getQuantity(3.0, KILOGRAM) Quantities.getQuantity(3, KILOGRAM) and Quantities.getQuantity("3 kg") might not be considered equals because of possible differences in their implementations.

        To compare quantities stated using different units or using different amount implementations the compareTo or equals(Quantity, epsilon, epsilonUnit) methods should be used.

        Overrides:
        equals in class AbstractQuantity<javax.measure.quantity.Time>
        Parameters:
        obj - the object to compare with.
        Returns:
        this.getUnit.equals(obj.getUnit()) && this.getValue().equals(obj.getValue())
      • toString

        public java.lang.String toString()
        Description copied from class: AbstractQuantity
        Returns the String representation of this quantity. The string produced for a given quantity is always the same; it is not affected by locale. This means that it can be used as a canonical string representation for exchanging quantity, or as a key for a Hashtable, etc. Locale-sensitive quantity formatting and parsing is handled by the QuantityFormat implementations and its subclasses.
        Overrides:
        toString in class AbstractQuantity<javax.measure.quantity.Time>
        Returns:
        UnitFormat.getInternational().format(this)
      • add

        public ComparableQuantity<javax.measure.quantity.Time> add​(javax.measure.Quantity<javax.measure.quantity.Time> that)
        See Also:
        Quantity.add(Quantity)
      • subtract

        public ComparableQuantity<javax.measure.quantity.Time> subtract​(javax.measure.Quantity<javax.measure.quantity.Time> that)
        See Also:
        Quantity.subtract(Quantity)
      • divide

        public ComparableQuantity<?> divide​(javax.measure.Quantity<?> that)
        See Also:
        Quantity.divide(Quantity)
      • divide

        public ComparableQuantity<javax.measure.quantity.Time> divide​(java.lang.Number that)
        See Also:
        Quantity.divide(Number)
      • multiply

        public ComparableQuantity<?> multiply​(javax.measure.Quantity<?> multiplier)
        See Also:
        Quantity.multiply(Quantity)
      • multiply

        public ComparableQuantity<javax.measure.quantity.Time> multiply​(java.lang.Number multiplier)
        See Also:
        Quantity.multiply(Number)
      • inverse

        public ComparableQuantity<javax.measure.quantity.Frequency> inverse()
        See Also:
        Quantity.inverse()
      • isBig

        public boolean isBig()
        Specified by:
        isBig in class AbstractQuantity<javax.measure.quantity.Time>
      • decimalValue

        public java.math.BigDecimal decimalValue​(javax.measure.Unit<javax.measure.quantity.Time> unit)
                                          throws java.lang.ArithmeticException
        Specified by:
        decimalValue in class AbstractQuantity<javax.measure.quantity.Time>
        Throws:
        java.lang.ArithmeticException
      • doubleValue

        public double doubleValue​(javax.measure.Unit<javax.measure.quantity.Time> unit)
                           throws java.lang.ArithmeticException
        Specified by:
        doubleValue in class AbstractQuantity<javax.measure.quantity.Time>
        Throws:
        java.lang.ArithmeticException