All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ucar.units.ConverterImpl Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata
 * See LICENSE for license information.
 */
package ucar.units;

/**
 * Provides support for implementations of unit converters. A unit converter
 * class may be created by subclassing this class and implementing the methods
 * convert(double), convert(float[] input, float[] output)
 * , and convert(double[] input, double[] output) of
 * interface Converter.
 * 
 * @author Steven R. Emmerson
 */
public abstract class ConverterImpl implements Converter {
  /**
   * Constructs from a "from" unit and a "to" unit.
   * 
   * @param fromUnit The unit from which to convert.
   * @param toUnit The unit to which to convert.
   * @throws ConversionException The units are not convertible.
   */
  protected ConverterImpl(Unit fromUnit, Unit toUnit) throws ConversionException {
    if (!fromUnit.isCompatible(toUnit))
      throw new ConversionException(fromUnit, toUnit);
  }

  /**
   * Factory method for creating a unit converter.
   * 
   * @param fromUnit The unit from which to convert.
   * @param toUnit The unit to which to convert.
   * @throws ConversionException The units are not convertible.
   */
  public static Converter create(Unit fromUnit, Unit toUnit) throws ConversionException {
    return fromUnit.getConverterTo(toUnit);
  }

  /**
   * Converts a numeric value.
   * 
   * @param amount The numeric value to convert.
   * @return The converted numeric value.
   */
  public final float convert(float amount) {
    return (float) convert((double) amount);
  }

  /**
   * Converts an array of numeric values.
   * 
   * @param amounts The numeric values to convert.
   * @return The converted numeric values in allocated
   *         space.
   */
  public final float[] convert(float[] amounts) {
    return convert(amounts, new float[amounts.length]);
  }

  /**
   * Converts an array of numeric values.
   * 
   * @param amounts The numeric values to convert.
   * @return The converted numeric values in allocated
   *         space.
   */
  public final double[] convert(double[] amounts) {
    return convert(amounts, new double[amounts.length]);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy