Class QuantityFunctions
- java.lang.Object
-
- tech.uom.lib.common.function.QuantityFunctions
-
public final class QuantityFunctions extends java.lang.Object
Utility methods for operating onunits
andquantities
with Java functional interfaces like Function.- Since:
- 2.0
- Version:
- 1.0.3
-
-
Constructor Summary
Constructors Modifier Constructor Description private
QuantityFunctions()
-
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:
Quantity
will 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:
Quantity
day = 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:
Quantity
day = 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:
Quantity
day = 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:
Quantity
day = 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:
Quantity
day = 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
Quantity
grouped byUnit
-
-