public static boolean isDifferentMeasurementSystem(Unit<? extends Quantity<?>> thisUnit, Unit<?> thatUnit) { Set<? extends Unit<?>> siUnits = SIUnits.getInstance().getUnits(); Set<? extends Unit<?>> usUnits = ImperialUnits.getInstance().getUnits(); boolean differentSystems = (siUnits.contains(thisUnit) && usUnits.contains(thatUnit)) // || (siUnits.contains(thatUnit) && usUnits.contains(thisUnit)); if (!differentSystems) { if (thisUnit instanceof TransformedUnit && isMetricConversion(((TransformedUnit<?>) thisUnit).getConverter())) { return isDifferentMeasurementSystem(((TransformedUnit<?>) thisUnit).getParentUnit(), thatUnit); } if (thatUnit instanceof TransformedUnit && isMetricConversion(((TransformedUnit<?>) thatUnit).getConverter())) { return isDifferentMeasurementSystem(thisUnit, ((TransformedUnit<?>) thatUnit).getParentUnit()); } } // Compare the unit symbols. For product units (e.g. 1km / 1h) the equality is not given in the Sets above. if (!differentSystems) { Set<String> siSymbols = siUnits.stream().map(Unit::getSymbol).collect(toSet()); Set<String> usSymbols = usUnits.stream().map(Unit::getSymbol).collect(toSet()); differentSystems = (siSymbols.contains(thisUnit.getSymbol()) && usSymbols.contains(thatUnit.getSymbol())) // || (siSymbols.contains(thatUnit.getSymbol()) && usSymbols.contains(thisUnit.getSymbol())); } return differentSystems; }
public PersistentQuantityAndUnit() { super(); for (Unit<?> next : UNITS.getUnits()) { unitsMap.put(next.getSymbol(), next); } }
public StringColumnUnitMapper() { for (Unit<?> next : SYSTEM_OF_UNITS_SERVICE.getSystemOfUnits().getUnits()) { unitsMap.put(next.getSymbol(), next); } }
private static void printSoU(final SystemOfUnits sou, final boolean showIndex) { int index = 0; System.out.println("Reporting " + sou.getName()); for (Unit<?> u : sou.getUnits()) { index++; if (showIndex) { System.out.println(index + "; " + u.getName() + "; " + u.getSymbol() + "; " + u); } else { System.out.println(u.getName() + "; " + u.getSymbol() + "; " + u); } } } }
public static boolean isDifferentMeasurementSystem(Unit<? extends Quantity<?>> thisUnit, Unit<?> thatUnit) { Set<? extends Unit<?>> siUnits = SIUnits.getInstance().getUnits(); Set<? extends Unit<?>> usUnits = ImperialUnits.getInstance().getUnits(); boolean differentSystems = (siUnits.contains(thisUnit) && usUnits.contains(thatUnit)) // || (siUnits.contains(thatUnit) && usUnits.contains(thisUnit)); if (!differentSystems) { if (thisUnit instanceof TransformedUnit && isMetricConversion(((TransformedUnit<?>) thisUnit).getConverter())) { return isDifferentMeasurementSystem(((TransformedUnit<?>) thisUnit).getParentUnit(), thatUnit); } if (thatUnit instanceof TransformedUnit && isMetricConversion(((TransformedUnit<?>) thatUnit).getConverter())) { return isDifferentMeasurementSystem(thisUnit, ((TransformedUnit<?>) thatUnit).getParentUnit()); } } // Compare the unit symbols. For product units (e.g. 1km / 1h) the equality is not given in the Sets above. if (!differentSystems) { Set<String> siSymbols = siUnits.stream().map(Unit::getSymbol).collect(toSet()); Set<String> usSymbols = usUnits.stream().map(Unit::getSymbol).collect(toSet()); differentSystems = (siSymbols.contains(thisUnit.getSymbol()) && usSymbols.contains(thatUnit.getSymbol())) // || (siSymbols.contains(thatUnit.getSymbol()) && usSymbols.contains(thisUnit.getSymbol())); } return differentSystems; }
/** * Tests the "Imperial" system of units. */ @Test public void testImperial() { final ServiceProvider provider = ServiceProvider.current(); Set<? extends Unit<?>> units = provider.getSystemOfUnitsService().getSystemOfUnits("Imperial").getUnits(); assertFalse("METRE", units.contains(Units.METRE)); assertFalse("KILOMETRE", units.contains(Units.KILOMETRE)); assertFalse("CUBIC_METRE", units.contains(Units.CUBIC_METRE)); assertFalse("METRES_PER_SECOND", units.contains(Units.METRES_PER_SECOND)); assertFalse("KILOMETRES_PER_HOUR", units.contains(Units.KILOMETRES_PER_HOUR)); assertTrue ("STATUTE_MILE", units.contains(Units.STATUTE_MILE)); assertFalse("DEGREE", units.contains(Units.DEGREE)); assertFalse("RADIAN", units.contains(Units.RADIAN)); assertFalse("GRAD", units.contains(Units.GRAD)); }
/** * Tests the "SI" system of units. */ @Test public void testSI() { final ServiceProvider provider = ServiceProvider.current(); Set<? extends Unit<?>> units = provider.getSystemOfUnitsService().getSystemOfUnits("SI").getUnits(); assertTrue ("METRE", units.contains(Units.METRE)); assertTrue ("KILOMETRE", units.contains(Units.KILOMETRE)); assertTrue ("CUBIC_METRE", units.contains(Units.CUBIC_METRE)); assertTrue ("METRES_PER_SECOND", units.contains(Units.METRES_PER_SECOND)); assertFalse("KILOMETRES_PER_HOUR", units.contains(Units.KILOMETRES_PER_HOUR)); assertFalse("NAUTICAL_MILE", units.contains(Units.NAUTICAL_MILE)); assertFalse("STATUTE_MILE", units.contains(Units.STATUTE_MILE)); assertFalse("DEGREE", units.contains(Units.DEGREE)); assertTrue ("RADIAN", units.contains(Units.RADIAN)); assertFalse("GRAD", units.contains(Units.GRAD)); }
/** * Tests the "SI + accepted" system of units. */ @Test public void testAccepted() { final ServiceProvider provider = ServiceProvider.current(); Set<? extends Unit<?>> units = provider.getSystemOfUnitsService().getSystemOfUnits("SI + accepted").getUnits(); assertTrue ("METRE", units.contains(Units.METRE)); assertTrue ("KILOMETRE", units.contains(Units.KILOMETRE)); assertTrue ("CUBIC_METRE", units.contains(Units.CUBIC_METRE)); assertTrue ("METRES_PER_SECOND", units.contains(Units.METRES_PER_SECOND)); assertTrue ("KILOMETRES_PER_HOUR", units.contains(Units.KILOMETRES_PER_HOUR)); assertFalse("NAUTICAL_MILE", units.contains(Units.NAUTICAL_MILE)); assertFalse("STATUTE_MILE", units.contains(Units.STATUTE_MILE)); assertTrue ("DEGREE", units.contains(Units.DEGREE)); assertTrue ("RADIAN", units.contains(Units.RADIAN)); assertFalse("GRAD", units.contains(Units.GRAD)); }
/** * Tests the default system of units. */ @Test public void testDefaultSystemOfUnits() { final ServiceProvider provider = ServiceProvider.current(); Set<? extends Unit<?>> units = provider.getSystemOfUnitsService().getSystemOfUnits().getUnits(); assertTrue("METRE", units.contains(Units.METRE)); assertTrue("KILOMETRE", units.contains(Units.KILOMETRE)); assertTrue("CUBIC_METRE", units.contains(Units.CUBIC_METRE)); assertTrue("METRES_PER_SECOND", units.contains(Units.METRES_PER_SECOND)); assertTrue("KILOMETRES_PER_HOUR", units.contains(Units.KILOMETRES_PER_HOUR)); assertTrue("NAUTICAL_MILE", units.contains(Units.NAUTICAL_MILE)); assertTrue("STATUTE_MILE", units.contains(Units.STATUTE_MILE)); assertTrue("DEGREE", units.contains(Units.DEGREE)); assertTrue("RADIAN", units.contains(Units.RADIAN)); assertTrue("GRAD", units.contains(Units.GRAD)); }