Package org.djunits.quantity.def
Class AbsoluteQuantity<A extends AbsoluteQuantity<A,Q,U,R>,Q extends Quantity<Q,U>,U extends UnitInterface<U,Q>,R extends AbstractReference<R,Q>>
java.lang.Object
java.lang.Number
org.djunits.quantity.def.AbsoluteQuantity<A,Q,U,R>
- Type Parameters:
A- the absolute quantity typeQ- the relative quantity typeU- the (shared) unit typeR- the reference type to use for the absolute quantity
- All Implemented Interfaces:
Serializable,Comparable<A>,Value<U,A>
- Direct Known Subclasses:
Direction,Position,Temperature,Time
public abstract class AbsoluteQuantity<A extends AbsoluteQuantity<A,Q,U,R>,Q extends Quantity<Q,U>,U extends UnitInterface<U,Q>,R extends AbstractReference<R,Q>>
extends Number
implements Value<U,A>, Comparable<A>
AbsoluteQuantity is an abstract class that stores the basic information about a absolute quantity. An absolute quantity wraps
a relative Quantity and has a reference point that acts as an origin or zero point.
Copyright (c) 2025-2026 Delft University of Technology, Jaffalaan 5, 2628 BX Delft, the Netherlands. All rights reserved. See for project information https://djunits.org. The DJUNITS project is distributed under a three-clause BSD-style license.
- Author:
- Alexander Verbraeck
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionAbsoluteQuantity(Q quantity, R reference) Instantiate an absolute quantity with a quantity and a reference. -
Method Summary
Modifier and TypeMethodDescriptionabstract AAdd a relative quantity to this absolute quantity, resulting in a new absolute quantity containing the sum.final intdoublebooleanTest if this Quantity is equal to another Quantity.booleaneq0()Test if this Quantity is equal to 0.0.booleanfloatformat(double d) Format a string according to the current locale and the standard (minimized) format, such as "3.14" or "300.0".Format a string according to the current locale and the provided format string.booleanTest if this Quantity is greater than or equal to another Quantity.booleange0()Test if this Quantity is greater than or equal to 0.0.Retrieve the unit of this Value.final doubleRetrieve the relative quantity value in the current display unit.final doubleRetrieve the relative quantity value converted into some specified unit.getName()Return the "pretty" and localized name of the quantity.Return the (relative) quantity relative to the reference.Return the reference point (zero or origin).booleanTest if this Quantity is greater than another Quantity.booleangt0()Test if this Quantity is greater than 0.0.inthashCode()abstract Ainstantiate(Q quantity, R reference) Instantiate an absolute quantity with a quantity and a reference.static <A extends AbsoluteQuantity<A,Q, U, R>, Q extends Quantity<Q, U>, U extends UnitInterface<U, Q>, R extends AbstractReference<R, Q>>
Ainterpolate(A zero, A one, double ratio) Interpolate between two absolute quantities.intintValue()booleanIndicate whether this is a Relative Value.booleanTest if this Quantity is less than or equal to another Quantity.booleanle0()Test if this Quantity is less than or equal to 0.0.longbooleanTest if this Quantity is less than another Quantity.booleanlt0()Test if this Quantity is less than 0.0.static <A extends AbsoluteQuantity<A,Q, U, R>, Q extends Quantity<Q, U>, U extends UnitInterface<U, Q>, R extends AbstractReference<R, Q>>
Amax(A quantity1, A... quantities) Return the maximum value of one or more quantities.static <A extends AbsoluteQuantity<A,Q, U, R>, Q extends Quantity<Q, U>, U extends UnitInterface<U, Q>, R extends AbstractReference<R, Q>>
Amean(A quantity1, A... quantities) Return the mean of one or more quantities.static <A extends AbsoluteQuantity<A,Q, U, R>, Q extends Quantity<Q, U>, U extends UnitInterface<U, Q>, R extends AbstractReference<R, Q>>
Amin(A quantity1, A... quantities) Return the minimum value of one or more quantities.booleanTest if this Quantity is not equal to another Quantity.booleanne0()Test if this Quantity is not equal to 0.0.static <A extends AbsoluteQuantity<A,Q, U, R>, Q extends Quantity<Q, U>, U extends UnitInterface<U, Q>, R extends AbstractReference<R, Q>>
AReturns an absolute quantity based on a value and the textual representation of the unit, which can be localized.relativeTo(R otherReference) Return the quantity relative to another reference point.setDisplayUnit(U newUnit) Set a new display unit for the value.doublesi()Return the SI value of the quantity.siUnit()Return the SI unit of this quantity.abstract QSubtract two absolute quantities from each other, resulting in the corresponding relative quantity.abstract ASubtract a relative quantity from this absolute quantity, resulting in a new absolute quantity containing the difference.static <A extends AbsoluteQuantity<A,Q, U, R>, Q extends Quantity<Q, U>, U extends UnitInterface<U, Q>, R extends AbstractReference<R, Q>>
Asum(A quantity1, A... quantities) Return the sum of one or more quantities.Concise display description of this value, without the engineering formatting, so without trailing zeroes.toDisplayString(U displayUnit) Concise display description of this value, without the engineering formatting, so without trailing zeroes.toString()Concise description of this value.toString(boolean verbose, boolean withUnit) Somewhat verbose description of this value with optional type and unit information.Somewhat verbose description of this value with the values expressed in the specified unit.Somewhat verbose description of this value with the values expressed in the specified unit.Format this DoubleScalar in SI unit using prefixes when possible.toStringSIPrefixed(int smallestPower, int biggestPower) Format this DoubleScalar in SI unit using prefixes when possible and within the specified size range.Concise textual representation of this value, without the engineering formatting, so without trailing zeroes.toTextualString(U displayUnit) Concise textual representation of this value, without the engineering formatting, so without trailing zeroes.static <A extends AbsoluteQuantity<A,Q, U, R>, Q extends Quantity<Q, U>, U extends UnitInterface<U, Q>, R extends AbstractReference<R, Q>>
AReturns an absolute quantity for the textual representation of a value with a unit.Methods inherited from class java.lang.Number
byteValue, shortValueMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.djunits.value.Value
isAbsolute, setDisplayUnit
-
Constructor Details
-
AbsoluteQuantity
Instantiate an absolute quantity with a quantity and a reference.- Parameters:
quantity- the relative quantity that indicates the 'distance' to the reference pointreference- the reference point
-
-
Method Details
-
getDisplayUnit
Description copied from interface:ValueRetrieve the unit of this Value. -
setDisplayUnit
Description copied from interface:ValueSet a new display unit for the value. Internally, the value will not changed since it is stored in a base unit. -
getInUnit
public final double getInUnit()Retrieve the relative quantity value in the current display unit.- Returns:
- the relative quantity value in the current display unit
-
getInUnit
Retrieve the relative quantity value converted into some specified unit.- Parameters:
targetUnit- the unit to convert the relative quantity value into- Returns:
- the value of the relative quantity in the target unit
-
getQuantity
Return the (relative) quantity relative to the reference.- Returns:
- the (relative) quantity relative to the reference
-
getReference
Return the reference point (zero or origin).- Returns:
- the reference point
-
getName
Return the "pretty" and localized name of the quantity.- Returns:
- the "pretty" and localized name of the quantity
-
siUnit
Return the SI unit of this quantity.- Returns:
- the SI unit of this quantity
-
si
public double si()Return the SI value of the quantity.- Returns:
- the SI value of the quantity
-
instantiate
Instantiate an absolute quantity with a quantity and a reference.- Parameters:
quantity- the relative quantity that indicates the 'distance' to the reference pointreference- the reference point- Returns:
- the absolute quantity with a quantity and a reference
-
doubleValue
public double doubleValue()- Specified by:
doubleValuein classNumber
-
intValue
public int intValue() -
longValue
public long longValue() -
floatValue
public float floatValue()- Specified by:
floatValuein classNumber
-
lt
Test if this Quantity is less than another Quantity.- Parameters:
other- the right hand side operand of the comparison- Returns:
- true if this is less than o; false otherwise
- Throws:
IllegalArgumentException- when the two absolute quantities have a different reference point
-
le
Test if this Quantity is less than or equal to another Quantity.- Parameters:
other- the right hand side operand of the comparison- Returns:
- true if this is less than or equal to o; false otherwise
- Throws:
IllegalArgumentException- when the two absolute quantities have a different reference point
-
gt
Test if this Quantity is greater than another Quantity.- Parameters:
other- the right hand side operand of the comparison- Returns:
- true if this is greater than o; false otherwise
- Throws:
IllegalArgumentException- when the two absolute quantities have a different reference point
-
ge
Test if this Quantity is greater than or equal to another Quantity.- Parameters:
other- the right hand side operand of the comparison- Returns:
- true if this is greater than or equal to o; false otherwise
- Throws:
IllegalArgumentException- when the two absolute quantities have a different reference point
-
eq
Test if this Quantity is equal to another Quantity.- Parameters:
other- the right hand side operand of the comparison- Returns:
- true if this is equal to o; false otherwise
- Throws:
IllegalArgumentException- when the two absolute quantities have a different reference point
-
ne
Test if this Quantity is not equal to another Quantity.- Parameters:
other- the right hand side operand of the comparison- Returns:
- true if this is not equal to o; false otherwise
- Throws:
IllegalArgumentException- when the two absolute quantities have a different reference point
-
lt0
public boolean lt0()Test if this Quantity is less than 0.0.- Returns:
- true if this is less than 0.0; false if this is not less than 0.0
-
le0
public boolean le0()Test if this Quantity is less than or equal to 0.0.- Returns:
- true if this is less than or equal to 0.0; false if this is not less than or equal to 0.0
-
gt0
public boolean gt0()Test if this Quantity is greater than 0.0.- Returns:
- true if this is greater than 0.0; false if this is not greater than 0.0
-
ge0
public boolean ge0()Test if this Quantity is greater than or equal to 0.0.- Returns:
- true if this is greater than or equal to 0.0; false if this is not greater than or equal to 0.0
-
eq0
public boolean eq0()Test if this Quantity is equal to 0.0.- Returns:
- true if this is equal to 0.0; false if this is not equal to 0.0
-
ne0
public boolean ne0()Test if this Quantity is not equal to 0.0.- Returns:
- true if this is not equal to 0.0; false if this is equal to 0.0
-
compareTo
- Specified by:
compareToin interfaceComparable<A extends AbsoluteQuantity<A,Q, U, R>> - Throws:
IllegalArgumentException- when the two absolute quantities have a different reference point
-
hashCode
public int hashCode() -
equals
-
valueOf
public static <A extends AbsoluteQuantity<A,Q, A valueOfU, R>, Q extends Quantity<Q, U>, U extends UnitInterface<U, Q>, R extends AbstractReference<R, Q>> (String text, A example, R reference) Returns an absolute quantity for the textual representation of a value with a unit. The String representation that can be parsed is the double value in the unit, followed by a localized or English abbreviation of the unit. Spaces are allowed, but not required, between the value and the unit.- Type Parameters:
A- the absolute quantity typeQ- the relative quantity typeU- the unit typeR- the reference type to use for the absolute quantity- Parameters:
text- the textual representation to parse into the quantityexample- an example instance to deliverreference- the reference point- Returns:
- the absolute quantity representation of the value with its unit
- Throws:
IllegalArgumentException- when the text cannot be parsedNullPointerException- when the text argument is null
-
of
public static <A extends AbsoluteQuantity<A,Q, A ofU, R>, Q extends Quantity<Q, U>, U extends UnitInterface<U, Q>, R extends AbstractReference<R, Q>> (double value, String unitString, A example, R reference) Returns an absolute quantity based on a value and the textual representation of the unit, which can be localized.- Type Parameters:
A- the absolute quantity typeQ- the relative quantity typeU- the unit typeR- the reference type to use for the absolute quantity- Parameters:
value- the value to useunitString- the textual representation of the unitexample- an absolute example instance to deliverreference- the reference point- Returns:
- the absolute quantity representation of the value in its unit
- Throws:
IllegalArgumentException- when the unit cannot be parsed or is incorrectNullPointerException- when the unitString argument is null
-
relativeTo
Return the quantity relative to another reference point.- Parameters:
otherReference- the reference point to which it has to be defined relatively.- Returns:
- the absolute quantity relative to the other reference point
- Throws:
IllegalArgumentException- when there is no translation from the current reference point to the provided reference
-
format
Format a string according to the current locale and the standard (minimized) format, such as "3.14" or "300.0".- Parameters:
d- the number to format- Returns:
- the formatted number using the current Locale
-
format
Format a string according to the current locale and the provided format string.- Parameters:
d- the number to formatformat- the formatting string to use for the number- Returns:
- the formatted number using the current Locale and the format string
-
toString
Concise description of this value. -
toString
Somewhat verbose description of this value with the values expressed in the specified unit. -
toString
Somewhat verbose description of this value with optional type and unit information.- Parameters:
verbose- if true; include type info; if false; exclude type infowithUnit- if true; include the unit; of false; exclude the unit- Returns:
- printable string with the value contents
-
toString
Somewhat verbose description of this value with the values expressed in the specified unit.- Parameters:
displayUnit- the unit into which the values are converted for displayverbose- if true; include type info; if false; exclude type infowithUnit- if true; include the unit; of false; exclude the unit- Returns:
- printable string with the value contents
-
toStringSIPrefixed
Format this DoubleScalar in SI unit using prefixes when possible. If the value is too small or too large, e-notation and the plain SI unit are used.- Returns:
- formatted value of this DoubleScalar
-
toStringSIPrefixed
Format this DoubleScalar in SI unit using prefixes when possible and within the specified size range. If the value is too small or too large, e-notation and the plain SI unit are used.- Parameters:
smallestPower- the smallest exponent value that will be written using an SI prefixbiggestPower- the largest exponent value that will be written using an SI prefix- Returns:
- formatted value of this DoubleScalar
-
toTextualString
Concise textual representation of this value, without the engineering formatting, so without trailing zeroes. A space is added between the number and the unit.- Returns:
- a String with the value with the default textual representation of the unit attached.
-
toTextualString
Concise textual representation of this value, without the engineering formatting, so without trailing zeroes. A space is added between the number and the unit.- Parameters:
displayUnit- the display unit for the value- Returns:
- a String with the value with the default textual representation of the provided unit attached.
-
toDisplayString
Concise display description of this value, without the engineering formatting, so without trailing zeroes. A space is added between the number and the unit.- Returns:
- a String with the value with the default display representation of the unit attached.
-
toDisplayString
Concise display description of this value, without the engineering formatting, so without trailing zeroes. A space is added between the number and the unit.- Parameters:
displayUnit- the display unit for the value- Returns:
- a String with the value with the default display representation of the provided unit attached.
-
subtract
Subtract two absolute quantities from each other, resulting in the corresponding relative quantity. The unit of the resulting quantity will be the unit of 'this' absolute quantity. Quantity 'other' will be transformed to the reference point of this absolute quantity. If the reference points of this and other are different, and no transformations between the reference points exist, an exception will be thrown.- Parameters:
other- the absolute quantity to subtract- Returns:
- the relative quantity as a result of the subtraction
- Throws:
IllegalArgumentException- when the reference points are unequal and cannot be transformed to each other
-
add
Add a relative quantity to this absolute quantity, resulting in a new absolute quantity containing the sum. The new quantity will have the same reference point and unit as this absolute quantity.- Parameters:
other- the relative quantity to add- Returns:
- the absolute quantity as a result of the addition
-
subtract
Subtract a relative quantity from this absolute quantity, resulting in a new absolute quantity containing the difference. The new quantity will have the same reference point and unit as this absolute quantity.- Parameters:
other- the relative quantity to subtract- Returns:
- the absolute quantity as a result of the subtraction
-
isRelative
public boolean isRelative()Description copied from interface:ValueIndicate whether this is a Relative Value. -
interpolate
public static <A extends AbsoluteQuantity<A,Q, A interpolateU, R>, Q extends Quantity<Q, U>, U extends UnitInterface<U, Q>, R extends AbstractReference<R, Q>> (A zero, A one, double ratio) Interpolate between two absolute quantities. Note that the first quantities does not have to be smaller than the second.- Type Parameters:
A- the absolute quantity typeQ- the relative quantity typeU- the unit typeR- the reference type to use for the absolute quantity- Parameters:
zero- the quantity at a ratio of zeroone- the quantity at a ratio of oneratio- the ratio between 0 and 1, inclusive- Returns:
- a Quantity at the given ratio between 0 and 1
- Throws:
IllegalArgumentException- when absolute quantities have a different reference point
-
max
@SafeVarargs public static <A extends AbsoluteQuantity<A,Q, A maxU, R>, Q extends Quantity<Q, U>, U extends UnitInterface<U, Q>, R extends AbstractReference<R, Q>> (A quantity1, A... quantities) Return the maximum value of one or more quantities.- Type Parameters:
A- the absolute quantity typeQ- the relative quantity typeU- the unit typeR- the reference type to use for the absolute quantity- Parameters:
quantity1- the first quantityquantities- the other quantities- Returns:
- the maximum value of more than two quantities
- Throws:
IllegalArgumentException- when absolute quantities have a different reference point
-
min
@SafeVarargs public static <A extends AbsoluteQuantity<A,Q, A minU, R>, Q extends Quantity<Q, U>, U extends UnitInterface<U, Q>, R extends AbstractReference<R, Q>> (A quantity1, A... quantities) Return the minimum value of one or more quantities.- Type Parameters:
A- the absolute quantity typeQ- the relative quantity typeU- the unit typeR- the reference type to use for the absolute quantity- Parameters:
quantity1- the first quantityquantities- the other quantities- Returns:
- the minimum value of more than two quantities
- Throws:
IllegalArgumentException- when absolute quantities have a different reference point
-
sum
@SafeVarargs public static <A extends AbsoluteQuantity<A,Q, A sumU, R>, Q extends Quantity<Q, U>, U extends UnitInterface<U, Q>, R extends AbstractReference<R, Q>> (A quantity1, A... quantities) Return the sum of one or more quantities.- Type Parameters:
A- the absolute quantity typeQ- the relative quantity typeU- the unit typeR- the reference type to use for the absolute quantity- Parameters:
quantity1- the first quantityquantities- the other quantities- Returns:
- the sum of the quantities
- Throws:
IllegalArgumentException- when absolute quantities have a different reference point
-
mean
@SafeVarargs public static <A extends AbsoluteQuantity<A,Q, A meanU, R>, Q extends Quantity<Q, U>, U extends UnitInterface<U, Q>, R extends AbstractReference<R, Q>> (A quantity1, A... quantities) Return the mean of one or more quantities.- Type Parameters:
A- the absolute quantity typeQ- the relative quantity typeU- the unit typeR- the reference type to use for the absolute quantity- Parameters:
quantity1- the first quantityquantities- the other quantities- Returns:
- the mean of the quantities
- Throws:
IllegalArgumentException- when absolute quantities have a different reference point
-