Class AbstractConverter

java.lang.Object
tech.units.indriya.AbstractConverter
All Implemented Interfaces:
Serializable, Comparable<javax.measure.UnitConverter>, javax.measure.UnitConverter
Direct Known Subclasses:
AbstractConverter.Identity, AbstractConverter.Pair, AddConverter, ExpConverter, LogConverter, MultiplyConverter, PowersOfIntConverter, PowersOfPiConverter, RationalConverter

public abstract class AbstractConverter extends Object implements javax.measure.UnitConverter, Serializable, Comparable<javax.measure.UnitConverter>

The base class for our UnitConverter implementations.

Since:
1.0
Version:
1.6, April 26, 2018
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • IDENTITY

      public static final AbstractConverter IDENTITY
      Holds identity converter.
    • conversionSteps

      protected List<? extends javax.measure.UnitConverter> conversionSteps
      memoization for getConversionSteps
  • Constructor Details

    • AbstractConverter

      protected AbstractConverter()
      DefaultQuantityFactory constructor.
  • Method Details

    • of

      public static javax.measure.UnitConverter of(Prefix prefix)
      Creates a converter with the specified Prefix.
      Parameters:
      prefix - the prefix for the factor.
    • equals

      public abstract boolean equals(Object cvtr)
      Overrides:
      equals in class Object
    • hashCode

      public abstract int hashCode()
      Overrides:
      hashCode in class Object
    • transformationLiteral

      protected abstract String transformationLiteral()
      Non-API

      Returns a String describing the transformation that is represented by this converter. Contributes to converter's toString method. If null or empty toString output becomes simplified.

      Returns:
    • toString

      public final String toString()
      Overrides:
      toString in class Object
    • inverseWhenNotIdentity

      protected abstract AbstractConverter inverseWhenNotIdentity()
      Non-API

      Returns an AbstractConverter that represents the inverse transformation of this converter, for cases where the transformation is not the identity transformation.

      Returns:
    • inverse

      public final AbstractConverter inverse()
      Specified by:
      inverse in interface javax.measure.UnitConverter
    • isSimpleCompositionWith

      protected abstract boolean isSimpleCompositionWith(AbstractConverter that)
      Parameters:
      that -
      Returns:
      whether or not a 'simple' composition of transformations is possible
    • simpleCompose

      protected AbstractConverter simpleCompose(AbstractConverter that)
      Parameters:
      that -
      Returns:
      a new AbstractConverter that adds no additional conversion step
    • concatenate

      public final javax.measure.UnitConverter concatenate(javax.measure.UnitConverter converter)
      Specified by:
      concatenate in interface javax.measure.UnitConverter
    • getConversionSteps

      public final List<? extends javax.measure.UnitConverter> getConversionSteps()
      Specified by:
      getConversionSteps in interface javax.measure.UnitConverter
    • convertWhenNotIdentity

      protected abstract double convertWhenNotIdentity(double value)
      Non-API
      Parameters:
      value -
      Returns:
      transformed value
    • convertWhenNotIdentity

      protected Number convertWhenNotIdentity(BigInteger value, MathContext ctx)
      Non-API
      Parameters:
      value -
      ctx -
      Returns:
      transformed value (most likely a BigInteger or BigDecimal)
    • convertWhenNotIdentity

      protected abstract BigDecimal convertWhenNotIdentity(BigDecimal value, MathContext ctx)
      Non-API
      Parameters:
      value -
      ctx -
      Returns:
      transformed value
    • convert

      public final double convert(double value)
      Specified by:
      convert in interface javax.measure.UnitConverter
    • convert

      public final Number convert(Number value)
      Specified by:
      convert in interface javax.measure.UnitConverter
      Throws:
      IllegalArgumentException - if the value is null.