From c033741b29e293d6308f8db068cd258293a6ca94 Mon Sep 17 00:00:00 2001 From: jsjames Date: Tue, 8 Jun 2021 12:45:39 -0700 Subject: [PATCH] [UoM] Added SQUARE_INCH, CUBIC_INCH, GALLON_LIQUID_US and GALLON_PER_MINUTE (#2401) Added SQUARE_INCH, CUBIC_INCH, GALLON_LIQUID_US and GALLON_PER_MINUTE Corrected type for of SQUARE_FOOT and CUBIC_FOOT to be Unit and Unit, respectively Signed-off-by: Jeff James --- .../core/library/unit/ImperialUnits.java | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/bundles/org.openhab.core/src/main/java/org/openhab/core/library/unit/ImperialUnits.java b/bundles/org.openhab.core/src/main/java/org/openhab/core/library/unit/ImperialUnits.java index b324e06bb..9eeec8cc0 100644 --- a/bundles/org.openhab.core/src/main/java/org/openhab/core/library/unit/ImperialUnits.java +++ b/bundles/org.openhab.core/src/main/java/org/openhab/core/library/unit/ImperialUnits.java @@ -15,13 +15,16 @@ package org.openhab.core.library.unit; import java.math.BigInteger; import javax.measure.Unit; +import javax.measure.quantity.Area; import javax.measure.quantity.Length; import javax.measure.quantity.Pressure; import javax.measure.quantity.Speed; import javax.measure.quantity.Temperature; +import javax.measure.quantity.Volume; import javax.measure.spi.SystemOfUnits; import org.eclipse.jdt.annotation.NonNullByDefault; +import org.openhab.core.library.dimension.VolumetricFlowRate; import tech.units.indriya.format.SimpleUnitFormat; import tech.units.indriya.function.AddConverter; @@ -69,8 +72,21 @@ public final class ImperialUnits extends CustomUnits { public static final Unit LEAGUE = addUnit(new TransformedUnit<>("lea", MILE, MultiplyConverter.of(3.0))); - public static final Unit SQUARE_FOOT = addUnit(new ProductUnit<>(FOOT.multiply(FOOT))); - public static final Unit CUBIC_FOOT = addUnit(new ProductUnit<>(SQUARE_FOOT.multiply(FOOT))); + /** Area **/ + public static final Unit SQUARE_INCH = addUnit(new ProductUnit<>(INCH.multiply(INCH))); + + public static final Unit SQUARE_FOOT = addUnit(new ProductUnit<>(FOOT.multiply(FOOT))); + + /** Volume **/ + public static final Unit CUBIC_INCH = addUnit(new ProductUnit<>(SQUARE_INCH.multiply(INCH))); + + public static final Unit CUBIC_FOOT = addUnit(new ProductUnit<>(SQUARE_FOOT.multiply(FOOT))); + + public static final Unit GALLON_LIQUID_US = addUnit( + new TransformedUnit<>("gal", CUBIC_INCH, MultiplyConverter.of(231.0))); + + public static final Unit GALLON_PER_MINUTE = addUnit( + new ProductUnit(GALLON_LIQUID_US.divide(tech.units.indriya.unit.Units.MINUTE))); /** * Add unit symbols for imperial units. @@ -86,6 +102,8 @@ public final class ImperialUnits extends CustomUnits { SimpleUnitFormat.getInstance().label(FURLONG, FURLONG.getSymbol()); SimpleUnitFormat.getInstance().label(MILE, MILE.getSymbol()); SimpleUnitFormat.getInstance().label(LEAGUE, LEAGUE.getSymbol()); + SimpleUnitFormat.getInstance().label(GALLON_LIQUID_US, GALLON_LIQUID_US.getSymbol()); + SimpleUnitFormat.getInstance().label(GALLON_PER_MINUTE, "gal/min"); } private ImperialUnits() {