Package tech.units.indriya
Class AbstractConverter
- java.lang.Object
-
- tech.units.indriya.AbstractConverter
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.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 java.lang.Object implements javax.measure.UnitConverter, java.io.Serializable, java.lang.Comparable<javax.measure.UnitConverter>
The base class for our
UnitConverter
implementations.- Since:
- 1.0
- Version:
- 1.6, April 26, 2018
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
AbstractConverter.Identity
This class represents the identity converter (singleton).static class
AbstractConverter.Pair
This class represents converters made up of two or more separate converters (in matrix notation[pair] = [left] x [right]
).
-
Field Summary
Fields Modifier and Type Field Description protected java.util.List<? extends javax.measure.UnitConverter>
conversionSteps
memoization for getConversionStepsstatic AbstractConverter
IDENTITY
Holds identity converter.private static long
serialVersionUID
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractConverter()
DefaultQuantityFactory constructor.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description javax.measure.UnitConverter
concatenate(javax.measure.UnitConverter converter)
double
convert(double value)
java.lang.Number
convert(java.lang.Number value)
protected abstract double
convertWhenNotIdentity(double value)
Non-APIprotected abstract java.math.BigDecimal
convertWhenNotIdentity(java.math.BigDecimal value, java.math.MathContext ctx)
Non-APIprotected java.lang.Number
convertWhenNotIdentity(java.math.BigInteger value, java.math.MathContext ctx)
Non-APIabstract boolean
equals(java.lang.Object cvtr)
java.util.List<? extends javax.measure.UnitConverter>
getConversionSteps()
abstract int
hashCode()
AbstractConverter
inverse()
protected abstract AbstractConverter
inverseWhenNotIdentity()
Non-APIprotected abstract boolean
isSimpleCompositionWith(AbstractConverter that)
Non-API Guard forsimpleCompose(AbstractConverter)
static javax.measure.UnitConverter
of(Prefix prefix)
Creates a converter with the specified Prefix.protected AbstractConverter
simpleCompose(AbstractConverter that)
Non-API Guarded byisSimpleCompositionWith(AbstractConverter)
java.lang.String
toString()
protected abstract java.lang.String
transformationLiteral()
Non-API
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
IDENTITY
public static final AbstractConverter IDENTITY
Holds identity converter.
-
conversionSteps
protected java.util.List<? extends javax.measure.UnitConverter> conversionSteps
memoization for getConversionSteps
-
-
Method Detail
-
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(java.lang.Object cvtr)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public abstract int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
transformationLiteral
protected abstract java.lang.String transformationLiteral()
Non-APIReturns a String describing the transformation that is represented by this converter. Contributes to converter's
toString
method. If null or emptytoString
output becomes simplified.- Returns:
-
toString
public final java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
inverseWhenNotIdentity
protected abstract AbstractConverter inverseWhenNotIdentity()
Non-APIReturns 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 interfacejavax.measure.UnitConverter
-
isSimpleCompositionWith
protected abstract boolean isSimpleCompositionWith(AbstractConverter that)
Non-API Guard forsimpleCompose(AbstractConverter)
- Parameters:
that
-- Returns:
- whether or not a 'simple' composition of transformations is possible
-
simpleCompose
protected AbstractConverter simpleCompose(AbstractConverter that)
Non-API Guarded byisSimpleCompositionWith(AbstractConverter)
- 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 interfacejavax.measure.UnitConverter
-
getConversionSteps
public final java.util.List<? extends javax.measure.UnitConverter> getConversionSteps()
- Specified by:
getConversionSteps
in interfacejavax.measure.UnitConverter
-
convertWhenNotIdentity
protected abstract double convertWhenNotIdentity(double value)
Non-API- Parameters:
value
-- Returns:
- transformed value
-
convertWhenNotIdentity
protected java.lang.Number convertWhenNotIdentity(java.math.BigInteger value, java.math.MathContext ctx)
Non-API- Parameters:
value
-ctx
-- Returns:
- transformed value (most likely a BigInteger or BigDecimal)
-
convertWhenNotIdentity
protected abstract java.math.BigDecimal convertWhenNotIdentity(java.math.BigDecimal value, java.math.MathContext ctx)
Non-API- Parameters:
value
-ctx
-- Returns:
- transformed value
-
convert
public final double convert(double value)
- Specified by:
convert
in interfacejavax.measure.UnitConverter
-
convert
public final java.lang.Number convert(java.lang.Number value)
- Specified by:
convert
in interfacejavax.measure.UnitConverter
- Throws:
java.lang.IllegalArgumentException
- if the value is null.
-
-