/** * Tests this class. */ public static void main(final String[] args) throws Exception { final BaseUnit meter = new BaseUnit(UnitName.newUnitName("meter", null, "m"), BaseQuantity.LENGTH); System.out .println("meter.getBaseQuantity()=" + meter.getBaseQuantity()); System.out .println("meter.toDerivedUnit(1.)=" + meter.toDerivedUnit(1.)); System.out.println("meter.toDerivedUnit(new float[] {2})[0]=" + meter.toDerivedUnit(new float[] { 2 }, new float[1])[0]); System.out.println("meter.fromDerivedUnit(1.)=" + meter.fromDerivedUnit(1.)); System.out.println("meter.fromDerivedUnit(new float[] {3})[0]=" + meter.fromDerivedUnit(new float[] { 3 }, new float[1])[0]); System.out.println("meter.isCompatible(meter)=" + meter.isCompatible(meter)); final BaseUnit radian = new BaseUnit(UnitName.newUnitName("radian", null, "rad"), BaseQuantity.PLANE_ANGLE); System.out.println("meter.isCompatible(radian)=" + meter.isCompatible(radian)); System.out .println("meter.isDimensionless()=" + meter.isDimensionless()); System.out.println("radian.isDimensionless()=" + radian.isDimensionless()); } }
/** * Returns the string representation of this base unit. This is identical to * <code>getID()</code>. * * @return The string representation of this base unit. */ @Override public final String toString() { return getID(); }
/** * Factory method for constructing a base unit. * * @param name The name of the unit. * @param symbol The symbol for the unit. * @param quantity The base quantity of the unit. * @return The base unit corresponding to the arguments. */ private static BaseUnit bu(final String name, final String symbol, final BaseQuantity quantity) throws NameException, UnitExistsException { return BaseUnit.getOrCreate(UnitName.newUnitName(name, null, symbol), quantity); }
final BaseUnit second = BaseUnit.getOrCreate(UnitName.newUnitName( "second", null, "s"), BaseQuantity.TIME); System.out.println("second = \"" + second + '"'); final BaseUnit meter = BaseUnit.getOrCreate(UnitName.newUnitName( "meter", null, "m"), BaseQuantity.LENGTH); System.out.println("meter = \"" + meter + '"'); final DerivedUnitImpl meterSecond = (DerivedUnitImpl) meter .myMultiplyBy(second); System.out.println("meterSecond = \"" + meterSecond + '"'); final DerivedUnitImpl meterPerSecond = (DerivedUnitImpl) meter .myDivideBy(second); System.out.println("meterPerSecond = \"" + meterPerSecond + '"'); final DerivedUnitImpl secondPerMeter = (DerivedUnitImpl) second .myDivideBy(meter); System.out.println("secondPerMeter = \"" + secondPerMeter + '"'); System.out.println("meterPerSecond.isReciprocalOf(secondPerMeter)=" + meterPerSecond.isReciprocalOf(secondPerMeter)); System.out.println("meter.toDerivedUnit(1.0)=" + meter.toDerivedUnit(1.0)); System.out .println("meter.toDerivedUnit(new double[] {1,2,3}, new double[3])[1]=" + meter.toDerivedUnit(new double[] { 1, 2, 3 }, new double[3])[1]); System.out.println("meter.fromDerivedUnit(1.0)=" + meter.fromDerivedUnit(1.0)); System.out .println("meter.fromDerivedUnit(new double[] {1,2,3}, new double[3])[2]=" + meter.fromDerivedUnit(new double[] { 1, 2, 3 }, new double[3])[2]);
: quantityUnit; if ((nameUnit != null && !baseQuantity.equals(nameUnit .getBaseQuantity())) || (quantityUnit != null && !id.equals(quantityUnit .getUnitName()))) { throw new UnitExistsException( "Attempt to incompatibly redefine base unit \"" baseUnit = new BaseUnit(id, baseQuantity); quantityMap.put(baseQuantity, baseUnit); nameMap.put(id, baseUnit);
final BaseUnit meter = BaseUnit.getOrCreate(UnitName.newUnitName( "meter", null, "m"), BaseQuantity.LENGTH); final ScaledUnit nauticalMile = new ScaledUnit(1852f, meter); .multiplyBy(meter); System.out.println("nauticalMileMeter.divideBy(nauticalMile)=" + nauticalMileMeter.divideBy(nauticalMile)); System.out.println("meter.divideBy(nauticalMile)=" + meter.divideBy(nauticalMile)); System.out .println("nauticalMile.raiseTo(2)=" + nauticalMile.raiseTo(2)); System.out.println("nauticalMile.isDimensionless()=" + nauticalMile.isDimensionless()); final BaseUnit radian = BaseUnit.getOrCreate(UnitName.newUnitName( "radian", null, "rad"), BaseQuantity.PLANE_ANGLE); final ScaledUnit degree = new ScaledUnit(3.14159 / 180, radian);
Assert.assertEquals("second", bu.getUnitName().getName()); Assert.assertEquals(86400.0, su.getScale(), 0); Assert.assertEquals("second", bu.getUnitName().getName()); Assert.assertEquals(86400.0, su.getScale(), 0); Assert.assertEquals("second", bu.getUnitName().getName()); Assert.assertEquals(259200.0, su.getScale(), 0);
/** * Returns the identifier for this base unit. This is identical to * <code>getSymbol()</code>. * * @return The identifier for this base unit. */ public final String getID() { return getSymbol(); }
/** * Constructs from a base unit database and a derived unit database. * * @param baseUnitDB * The base unit database. Shall only contain base units. * @param derivedUnitDB * The derived unit database. Shall not contain any base units. * @throws UnitExistsException * A unit with the same identifier exists in both databases. */ protected UnitSystemImpl(final UnitDBImpl baseUnitDB, final UnitDBImpl derivedUnitDB) throws UnitExistsException { quantityMap = new HashMap<BaseQuantity, BaseUnit>(baseUnitDB .nameCount()); for (final Iterator<?> iter = baseUnitDB.getIterator(); iter.hasNext();) { final Unit unit = (Unit) iter.next(); final BaseUnit baseUnit = (BaseUnit) unit; quantityMap.put(baseUnit.getBaseQuantity(), baseUnit); } this.baseUnitDB = baseUnitDB; acceptableUnitDB = new UnitDBImpl(baseUnitDB.nameCount() + derivedUnitDB.nameCount(), baseUnitDB.symbolCount() + derivedUnitDB.symbolCount()); acceptableUnitDB.add(baseUnitDB); acceptableUnitDB.add(derivedUnitDB); }
protected MyConverter(final TimeScaleUnit fromUnit, final Unit toUnit) throws ConversionException { super(fromUnit, toUnit); converter = fromUnit.getUnit().getConverterTo( ((TimeScaleUnit) toUnit).getUnit()); offset = SI.SECOND.convertTo( (fromUnit.getOrigin().getTime() - ((TimeScaleUnit) toUnit) .getOrigin().getTime()) / 1000.0, ((TimeScaleUnit) toUnit).getUnit()); }
final BaseUnit second = BaseUnit.getOrCreate(UnitName.newUnitName( "second", null, "s"), BaseQuantity.TIME); System.out.println("second = \"" + second + '"'); final BaseUnit meter = BaseUnit.getOrCreate(UnitName.newUnitName( "meter", null, "m"), BaseQuantity.LENGTH); System.out.println("meter = \"" + meter + '"'); final DerivedUnitImpl meterSecond = (DerivedUnitImpl) meter .myMultiplyBy(second); System.out.println("meterSecond = \"" + meterSecond + '"'); final DerivedUnitImpl meterPerSecond = (DerivedUnitImpl) meter .myDivideBy(second); System.out.println("meterPerSecond = \"" + meterPerSecond + '"'); final DerivedUnitImpl secondPerMeter = (DerivedUnitImpl) second .myDivideBy(meter); System.out.println("secondPerMeter = \"" + secondPerMeter + '"'); System.out.println("meterPerSecond.isReciprocalOf(secondPerMeter)=" + meterPerSecond.isReciprocalOf(secondPerMeter)); System.out.println("meter.toDerivedUnit(1.0)=" + meter.toDerivedUnit(1.0)); System.out .println("meter.toDerivedUnit(new double[] {1,2,3}, new double[3])[1]=" + meter.toDerivedUnit(new double[] { 1, 2, 3 }, new double[3])[1]); System.out.println("meter.fromDerivedUnit(1.0)=" + meter.fromDerivedUnit(1.0)); System.out .println("meter.fromDerivedUnit(new double[] {1,2,3}, new double[3])[2]=" + meter.fromDerivedUnit(new double[] { 1, 2, 3 }, new double[3])[2]);
: quantityUnit; if ((nameUnit != null && !baseQuantity.equals(nameUnit .getBaseQuantity())) || (quantityUnit != null && !id.equals(quantityUnit .getUnitName()))) { throw new UnitExistsException( "Attempt to incompatibly redefine base unit \"" baseUnit = new BaseUnit(id, baseQuantity); quantityMap.put(baseQuantity, baseUnit); nameMap.put(id, baseUnit);
final BaseUnit meter = BaseUnit.getOrCreate(UnitName.newUnitName( "meter", null, "m"), BaseQuantity.LENGTH); final ScaledUnit nauticalMile = new ScaledUnit(1852f, meter); + nauticalMileMeter.divideBy(nauticalMile)); System.out.println("meter.divideBy(nauticalMile)=" + meter.divideBy(nauticalMile)); System.out .println("nauticalMile.raiseTo(2)=" + nauticalMile.raiseTo(2)); System.out.println("nauticalMile.isDimensionless()=" + nauticalMile.isDimensionless()); final BaseUnit radian = BaseUnit.getOrCreate(UnitName.newUnitName( "radian", null, "rad"), BaseQuantity.PLANE_ANGLE); final ScaledUnit degree = new ScaledUnit(3.14159 / 180, radian);
/** * Returns the identifier for this base unit. This is identical to * <code>getSymbol()</code>. * * @return The identifier for this base unit. */ public final String getID() { return getSymbol(); }
/** * Constructs from a base unit database and a derived unit database. * * @param baseUnitDB * The base unit database. Shall only contain base units. * @param derivedUnitDB * The derived unit database. Shall not contain any base units. * @throws UnitExistsException * A unit with the same identifier exists in both databases. */ protected UnitSystemImpl(final UnitDBImpl baseUnitDB, final UnitDBImpl derivedUnitDB) throws UnitExistsException { quantityMap = new HashMap<BaseQuantity, BaseUnit>(baseUnitDB .nameCount()); for (final Iterator<?> iter = baseUnitDB.getIterator(); iter.hasNext();) { final Unit unit = (Unit) iter.next(); final BaseUnit baseUnit = (BaseUnit) unit; quantityMap.put(baseUnit.getBaseQuantity(), baseUnit); } this.baseUnitDB = baseUnitDB; acceptableUnitDB = new UnitDBImpl(baseUnitDB.nameCount() + derivedUnitDB.nameCount(), baseUnitDB.symbolCount() + derivedUnitDB.symbolCount()); acceptableUnitDB.add(baseUnitDB); acceptableUnitDB.add(derivedUnitDB); }
protected MyConverter(final TimeScaleUnit fromUnit, final Unit toUnit) throws ConversionException { super(fromUnit, toUnit); converter = fromUnit.getUnit().getConverterTo( ((TimeScaleUnit) toUnit).getUnit()); offset = SI.SECOND.convertTo( (fromUnit.getOrigin().getTime() - ((TimeScaleUnit) toUnit) .getOrigin().getTime()) / 1000.0, ((TimeScaleUnit) toUnit).getUnit()); }
/** * Tests this class. */ public static void main(final String[] args) throws Exception { final BaseUnit meter = new BaseUnit(UnitName.newUnitName("meter", null, "m"), BaseQuantity.LENGTH); System.out .println("meter.getBaseQuantity()=" + meter.getBaseQuantity()); System.out .println("meter.toDerivedUnit(1.)=" + meter.toDerivedUnit(1.)); System.out.println("meter.toDerivedUnit(new float[] {2})[0]=" + meter.toDerivedUnit(new float[] { 2 }, new float[1])[0]); System.out.println("meter.fromDerivedUnit(1.)=" + meter.fromDerivedUnit(1.)); System.out.println("meter.fromDerivedUnit(new float[] {3})[0]=" + meter.fromDerivedUnit(new float[] { 3 }, new float[1])[0]); System.out.println("meter.isCompatible(meter)=" + meter.isCompatible(meter)); final BaseUnit radian = new BaseUnit(UnitName.newUnitName("radian", null, "rad"), BaseQuantity.PLANE_ANGLE); System.out.println("meter.isCompatible(radian)=" + meter.isCompatible(radian)); System.out .println("meter.isDimensionless()=" + meter.isDimensionless()); System.out.println("radian.isDimensionless()=" + radian.isDimensionless()); } }
private StringBuffer format(BaseUnit baseUnit, StringBuffer buf) { return buf.append(baseUnit.getSymbol()); }
/** * Factory method for constructing a base unit. * * @param name * The name of the unit. * @param symbol * The symbol for the unit. * @param quantity * The base quantity of the unit. * @return The base unit corresponding to the arguments. */ private static BaseUnit bu(final String name, final String symbol, final BaseQuantity quantity) throws NameException, UnitExistsException { return BaseUnit.getOrCreate(UnitName.newUnitName(name, null, symbol), quantity); }
/** * Returns the corresponding quantity dimension. * @return The quantity dimension corresponding to this * unit dimension. */ public QuantityDimension getQuantityDimension() { Factor[] factors = getFactors(); for (int i = factors.length; --i >= 0; ) { Factor factor = factors[i]; factors[i] = new Factor( ((BaseUnit)factor.getBase()).getBaseQuantity(), factor.getExponent()); } return new QuantityDimension(factors); }