Class QuantityFunctions
- java.lang.Object
-
- tech.uom.lib.common.function.QuantityFunctions
-
public final class QuantityFunctions extends java.lang.ObjectUtility methods for operating onunitsandquantitieswith Java functional interfaces like Function.- Since:
- 2.0
- Version:
- 1.0.3
-
-
Constructor Summary
Constructors Modifier Constructor Description privateQuantityFunctions()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <Q extends javax.measure.Quantity<Q>>
java.util.function.Predicate<javax.measure.Quantity<Q>>fiterByExcludingUnit(javax.measure.Unit<Q>... units)Predicate to filter excluding these unitsstatic <Q extends javax.measure.Quantity<Q>>
java.util.function.Predicate<javax.measure.Quantity<Q>>fiterByUnit(javax.measure.Unit<Q>... units)Predicate to filter to one or more unitsstatic <Q extends javax.measure.Quantity<Q>>
java.util.function.Function<javax.measure.Quantity<Q>,javax.measure.Unit<Q>>groupByUnit()creates a function to group quantities by theirunit.static <Q extends javax.measure.Quantity<Q>>
java.util.function.Predicate<javax.measure.Quantity<Q>>isBetween(java.lang.Number min, java.lang.Number max)creates a Filter to between, lesser or equals and greater or equals, than number, ignoring unitsstatic <Q extends javax.measure.Quantity<Q>>
java.util.function.Predicate<javax.measure.Quantity<Q>>isBetween(javax.measure.Quantity<Q> min, javax.measure.Quantity<Q> max)creates a filter to between, lesser or equals and greater or equals, than the quantity measurestatic <Q extends javax.measure.Quantity<Q>>
java.util.function.Predicate<javax.measure.Quantity<Q>>isGreaterThan(java.lang.Number value)creates a Filter to greater than number, ignoring unitsstatic <Q extends javax.measure.Quantity<Q>>
java.util.function.Predicate<javax.measure.Quantity<Q>>isGreaterThan(javax.measure.Quantity<Q> quantity)creates a filter to greater than the quantity measurestatic <Q extends javax.measure.Quantity<Q>>
java.util.function.Predicate<javax.measure.Quantity<Q>>isGreaterThanOrEqualTo(java.lang.Number value)creates a Filter to greater or equals than number, ignoring unitsstatic <Q extends javax.measure.Quantity<Q>>
java.util.function.Predicate<javax.measure.Quantity<Q>>isGreaterThanOrEqualTo(javax.measure.Quantity<Q> quantity)creates a filter to greater or equals than the quantity measurestatic <Q extends javax.measure.Quantity<Q>>
java.util.function.Predicate<javax.measure.Quantity<Q>>isLessThan(java.lang.Number value)creates a Filter to lesser than number, ignoring unitsstatic <Q extends javax.measure.Quantity<Q>>
java.util.function.Predicate<javax.measure.Quantity<Q>>isLessThan(javax.measure.Quantity<Q> quantity)creates a filter to lesser than the quantity measurestatic <Q extends javax.measure.Quantity<Q>>
java.util.function.Predicate<javax.measure.Quantity<Q>>isLessThanOrEqualTo(java.lang.Number value)creates a Filter to lesser or equals than number, ignoring unitsstatic <Q extends javax.measure.Quantity<Q>>
java.util.function.Predicate<javax.measure.Quantity<Q>>isLessThanOrEqualTo(javax.measure.Quantity<Q> quantity)creates a filter to lesser or equals than the quantity measurestatic <Q extends javax.measure.Quantity<Q>>
java.util.function.BinaryOperator<javax.measure.Quantity<Q>>max()Creates a BinaryOperator to calculate the maximum Quantitystatic <Q extends javax.measure.Quantity<Q>>
java.util.function.BinaryOperator<javax.measure.Quantity<Q>>min()Creates a BinaryOperator to calculate the minimum Quantitystatic <Q extends javax.measure.Quantity<Q>>
java.util.Comparator<javax.measure.Quantity<Q>>sortNatural()Creates a comparator to sort by natural order, looking to both the unit and the value.static <Q extends javax.measure.Quantity<Q>>
java.util.Comparator<javax.measure.Quantity<Q>>sortNaturalDesc()Creates a comparator to sort by natural order descending, looking to both the unit and the value.static <Q extends javax.measure.Quantity<Q>>
java.util.Comparator<javax.measure.Quantity<Q>>sortNumber()Creates a comparator to sort by number, ignoring the unit.static <Q extends javax.measure.Quantity<Q>>
java.util.Comparator<javax.measure.Quantity<Q>>sortNumberDesc()Creates a comparator to sort by number descending, ignoring the unit.static <Q extends javax.measure.Quantity<Q>>
java.util.Comparator<javax.measure.Quantity<Q>>sortSymbol()Creates a comparator to sort by name, ignoring the value.static <Q extends javax.measure.Quantity<Q>>
java.util.Comparator<javax.measure.Quantity<Q>>sortSymbolDesc()Creates a comparator to sort by name descending, ignoring the value.static <Q extends javax.measure.Quantity<Q>>
java.util.function.BinaryOperator<javax.measure.Quantity<Q>>sum()Creates a BinaryOperator to sum.static <Q extends javax.measure.Quantity<Q>>
java.util.function.BinaryOperator<javax.measure.Quantity<Q>>sum(javax.measure.Unit<Q> unit)Creates a BinaryOperator to sum converting to unit
-
-
-
Method Detail
-
sortNumber
public static <Q extends javax.measure.Quantity<Q>> java.util.Comparator<javax.measure.Quantity<Q>> sortNumber()
Creates a comparator to sort by number, ignoring the unit.- Returns:
Given:
Quantitywill return:
day, hours, minutes, seconds- Throws:
java.lang.NullPointerException
-
sortNumberDesc
public static <Q extends javax.measure.Quantity<Q>> java.util.Comparator<javax.measure.Quantity<Q>> sortNumberDesc()
Creates a comparator to sort by number descending, ignoring the unit.- Returns:
Given:
Quantityday = timeFactory.create(1, Units.DAY);
Quantityhours = timeFactory.create(18, Units.HOUR);
Quantityminutes = timeFactory.create(15, Units.HOUR);
Quantityseconds = timeFactory.create(100, Units.HOUR);
will return:
seconds, hours, minutes, day- Throws:
java.lang.NullPointerException
-
sortSymbol
public static <Q extends javax.measure.Quantity<Q>> java.util.Comparator<javax.measure.Quantity<Q>> sortSymbol()
Creates a comparator to sort by name, ignoring the value.- Returns:
Given:
Quantityday = timeFactory.create(1, Units.DAY);
Quantityhours = timeFactory.create(18, Units.HOUR);
Quantityminutes = timeFactory.create(15, Units.HOUR);
Quantityseconds = timeFactory.create(100, Units.HOUR);
will return:
day, hours, minutes, seconds- Throws:
java.lang.NullPointerException
-
sortSymbolDesc
public static <Q extends javax.measure.Quantity<Q>> java.util.Comparator<javax.measure.Quantity<Q>> sortSymbolDesc()
Creates a comparator to sort by name descending, ignoring the value.- Returns:
Given:
Quantityday = timeFactory.create(1, Units.DAY);
Quantityhours = timeFactory.create(18, Units.HOUR);
Quantityminutes = timeFactory.create(15, Units.HOUR);
Quantityseconds = timeFactory.create(100, Units.HOUR);
will return:
seconds, minutes, hour, day- Throws:
java.lang.NullPointerException
-
sortNatural
public static <Q extends javax.measure.Quantity<Q>> java.util.Comparator<javax.measure.Quantity<Q>> sortNatural()
Creates a comparator to sort by natural order, looking to both the unit and the value.- Returns:
Given:
Quantityday = timeFactory.create(1, Units.DAY);
Quantityhours = timeFactory.create(18, Units.HOUR);
Quantityminutes = timeFactory.create(15, Units.HOUR);
Quantityseconds = timeFactory.create(100, Units.HOUR);
will return:
seconds, minutes, hours, day- Throws:
java.lang.NullPointerException
-
sortNaturalDesc
public static <Q extends javax.measure.Quantity<Q>> java.util.Comparator<javax.measure.Quantity<Q>> sortNaturalDesc()
Creates a comparator to sort by natural order descending, looking to both the unit and the value.- Returns:
Given:
Quantityday = timeFactory.create(1, Units.DAY);
Quantityhours = timeFactory.create(18, Units.HOUR);
Quantityminutes = timeFactory.create(15, Units.HOUR);
Quantityseconds = timeFactory.create(100, Units.HOUR);
will return:
day, hour, minute, second- Throws:
java.lang.NullPointerException
-
min
public static <Q extends javax.measure.Quantity<Q>> java.util.function.BinaryOperator<javax.measure.Quantity<Q>> min()
Creates a BinaryOperator to calculate the minimum Quantity- Returns:
- the min BinaryOperator, not null.
-
max
public static <Q extends javax.measure.Quantity<Q>> java.util.function.BinaryOperator<javax.measure.Quantity<Q>> max()
Creates a BinaryOperator to calculate the maximum Quantity- Returns:
- the max BinaryOperator, not null.
-
sum
public static <Q extends javax.measure.Quantity<Q>> java.util.function.BinaryOperator<javax.measure.Quantity<Q>> sum()
Creates a BinaryOperator to sum.- Returns:
- the sum BinaryOperator
-
sum
public static <Q extends javax.measure.Quantity<Q>> java.util.function.BinaryOperator<javax.measure.Quantity<Q>> sum(javax.measure.Unit<Q> unit)
Creates a BinaryOperator to sum converting to unit- Parameters:
unit- unit to be converting- Returns:
- the sum BinaryOperator converting to unit
-
fiterByUnit
@SafeVarargs public static <Q extends javax.measure.Quantity<Q>> java.util.function.Predicate<javax.measure.Quantity<Q>> fiterByUnit(javax.measure.Unit<Q>... units)
Predicate to filter to one or more units- Parameters:
units- - units to be filtered (optional)- Returns:
- A predicate to filter one or more units
-
fiterByExcludingUnit
@SafeVarargs public static <Q extends javax.measure.Quantity<Q>> java.util.function.Predicate<javax.measure.Quantity<Q>> fiterByExcludingUnit(javax.measure.Unit<Q>... units)
Predicate to filter excluding these units- Parameters:
units- - units to be filtered (optional)- Returns:
- A predicate to filter to not be these units
-
isGreaterThan
public static <Q extends javax.measure.Quantity<Q>> java.util.function.Predicate<javax.measure.Quantity<Q>> isGreaterThan(java.lang.Number value)
creates a Filter to greater than number, ignoring units- Parameters:
value- - the value to be used in Predicate- Returns:
- the Predicate greater than this number, ignoring units
-
isGreaterThan
public static <Q extends javax.measure.Quantity<Q>> java.util.function.Predicate<javax.measure.Quantity<Q>> isGreaterThan(javax.measure.Quantity<Q> quantity)
creates a filter to greater than the quantity measure- Parameters:
quantity- - the measure to be used in filter- Returns:
- the Predicate greater than this measure
-
isGreaterThanOrEqualTo
public static <Q extends javax.measure.Quantity<Q>> java.util.function.Predicate<javax.measure.Quantity<Q>> isGreaterThanOrEqualTo(java.lang.Number value)
creates a Filter to greater or equals than number, ignoring units- Parameters:
value- - the value to be used in Predicate- Returns:
- the Predicate greater or equals than this number, ignoring units
-
isGreaterThanOrEqualTo
public static <Q extends javax.measure.Quantity<Q>> java.util.function.Predicate<javax.measure.Quantity<Q>> isGreaterThanOrEqualTo(javax.measure.Quantity<Q> quantity)
creates a filter to greater or equals than the quantity measure- Parameters:
quantity- - the measure to be used in filter- Returns:
- the Predicate greater or equals than this measure
-
isLessThan
public static <Q extends javax.measure.Quantity<Q>> java.util.function.Predicate<javax.measure.Quantity<Q>> isLessThan(java.lang.Number value)
creates a Filter to lesser than number, ignoring units- Parameters:
value- - the value to be used in Predicate- Returns:
- the Predicate greater than this number, ignoring units
-
isLessThan
public static <Q extends javax.measure.Quantity<Q>> java.util.function.Predicate<javax.measure.Quantity<Q>> isLessThan(javax.measure.Quantity<Q> quantity)
creates a filter to lesser than the quantity measure- Parameters:
quantity- - the measure to be used in filter- Returns:
- the Predicate lesser than this measure
-
isLessThanOrEqualTo
public static <Q extends javax.measure.Quantity<Q>> java.util.function.Predicate<javax.measure.Quantity<Q>> isLessThanOrEqualTo(java.lang.Number value)
creates a Filter to lesser or equals than number, ignoring units- Parameters:
value- - the value to be used in Predicate- Returns:
- the Predicate lesser or equals than this number, ignoring units
-
isLessThanOrEqualTo
public static <Q extends javax.measure.Quantity<Q>> java.util.function.Predicate<javax.measure.Quantity<Q>> isLessThanOrEqualTo(javax.measure.Quantity<Q> quantity)
creates a filter to lesser or equals than the quantity measure- Parameters:
quantity- - the measure to be used in filter- Returns:
- the Predicate lesser or equals than this measure
-
isBetween
public static <Q extends javax.measure.Quantity<Q>> java.util.function.Predicate<javax.measure.Quantity<Q>> isBetween(java.lang.Number min, java.lang.Number max)creates a Filter to between, lesser or equals and greater or equals, than number, ignoring units- Parameters:
min- - the min value to be used in Predicatemax- - the max value to be used in Predicate- Returns:
- the Predicate lesser or equals than this number, ignoring units
-
isBetween
public static <Q extends javax.measure.Quantity<Q>> java.util.function.Predicate<javax.measure.Quantity<Q>> isBetween(javax.measure.Quantity<Q> min, javax.measure.Quantity<Q> max)creates a filter to between, lesser or equals and greater or equals, than the quantity measure- Parameters:
min- - the min value to be used in Predicatemax- - the max value to be used in Predicate- Returns:
- the Predicate lesser or equals than this measure
-
groupByUnit
public static <Q extends javax.measure.Quantity<Q>> java.util.function.Function<javax.measure.Quantity<Q>,javax.measure.Unit<Q>> groupByUnit()
creates a function to group quantities by theirunit.- Returns:
- the Function of
Quantitygrouped byUnit
-
-