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
UnitConverterimplementations.- 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 classAbstractConverter.IdentityThis class represents the identity converter (singleton).static classAbstractConverter.PairThis 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>conversionStepsmemoization for getConversionStepsstatic AbstractConverterIDENTITYHolds identity converter.private static longserialVersionUID
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractConverter()DefaultQuantityFactory constructor.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description javax.measure.UnitConverterconcatenate(javax.measure.UnitConverter converter)doubleconvert(double value)java.lang.Numberconvert(java.lang.Number value)protected abstract doubleconvertWhenNotIdentity(double value)Non-APIprotected abstract java.math.BigDecimalconvertWhenNotIdentity(java.math.BigDecimal value, java.math.MathContext ctx)Non-APIprotected java.lang.NumberconvertWhenNotIdentity(java.math.BigInteger value, java.math.MathContext ctx)Non-APIabstract booleanequals(java.lang.Object cvtr)java.util.List<? extends javax.measure.UnitConverter>getConversionSteps()abstract inthashCode()AbstractConverterinverse()protected abstract AbstractConverterinverseWhenNotIdentity()Non-APIprotected abstract booleanisSimpleCompositionWith(AbstractConverter that)Non-API Guard forsimpleCompose(AbstractConverter)static javax.measure.UnitConverterof(Prefix prefix)Creates a converter with the specified Prefix.protected AbstractConvertersimpleCompose(AbstractConverter that)Non-API Guarded byisSimpleCompositionWith(AbstractConverter)java.lang.StringtoString()protected abstract java.lang.StringtransformationLiteral()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:
equalsin classjava.lang.Object
-
hashCode
public abstract int hashCode()
- Overrides:
hashCodein 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
toStringmethod. If null or emptytoStringoutput becomes simplified.- Returns:
-
toString
public final java.lang.String toString()
- Overrides:
toStringin 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:
inversein 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:
concatenatein interfacejavax.measure.UnitConverter
-
getConversionSteps
public final java.util.List<? extends javax.measure.UnitConverter> getConversionSteps()
- Specified by:
getConversionStepsin 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:
convertin interfacejavax.measure.UnitConverter
-
convert
public final java.lang.Number convert(java.lang.Number value)
- Specified by:
convertin interfacejavax.measure.UnitConverter- Throws:
java.lang.IllegalArgumentException- if the value is null.
-
-