Top Description Inners Constructors Methods
tech.units.indriya.internal.function

public final Class ScaleHelper

extends Object
Class Inheritance
Annotations
@API
status:INTERNAL
Imports
java.util.Optional, java.util.function.BinaryOperator, .UnaryOperator, javax.measure.Quantity, .Quantity.Scale, .Unit, .UnitConverter, org.apiguardian.api.API, tech.units.indriya.ComparableQuantity, tech.units.indriya.function.AbstractConverter, tech.units.indriya.quantity.Quantities

Encapsulates scale-honoring quantity arithmetics.
Author
Andi Huber

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static enum
private static class

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public static <Q extends Quantity<Q>> ComparableQuantity<Q>
addition(final Quantity<Q> q1, final Quantity<Q> q2, final BinaryOperator<Number> operator)

public static <Q extends Quantity<Q>> ComparableQuantity<Q>
convertTo(final Quantity<Q> quantity, final Unit<Q> anotherUnit)

public static boolean
isAbsolute(final Quantity<?> quantity)

public static boolean
isRelative(final Quantity<?> quantity)

private static Optional<Number>
public static ComparableQuantity<?>
multiplication(final Quantity<?> q1, final Quantity<?> q2, final BinaryOperator<Number> amountOperator, final BinaryOperator<Unit<?>> unitOperator)

public static <Q extends Quantity<Q>> ComparableQuantity<Q>
scalarMultiplication(final Quantity<Q> quantity, final UnaryOperator<Number> operator)

private static <Q extends Quantity<Q>> Quantity<Q>
private static <Q extends Quantity<Q>> ScaleHelper.ToSystemUnitConverter
toSystemUnitConverterForAdd(final Quantity<Q> q1, final Quantity<Q> q2)

private static <T extends Quantity<T>> ScaleHelper.ToSystemUnitConverter
private static UnsupportedOperationException
private static <Q extends Quantity<Q>> UnsupportedOperationException
unsupportedRelativeScaleConversion(Quantity<Q> quantity, Unit<Q> anotherUnit)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Constructor Detail

ScaleHelperback to summary
public ScaleHelper()

Method Detail

additionback to summary
public static <Q extends Quantity<Q>> ComparableQuantity<Q> addition(final Quantity<Q> q1, final Quantity<Q> q2, final BinaryOperator<Number> operator)
convertToback to summary
public static <Q extends Quantity<Q>> ComparableQuantity<Q> convertTo(final Quantity<Q> quantity, final Unit<Q> anotherUnit)
isAbsoluteback to summary
public static boolean isAbsolute(final Quantity<?> quantity)
isRelativeback to summary
public static boolean isRelative(final Quantity<?> quantity)
linearFactorOfback to summary
private static Optional<Number> linearFactorOf(UnitConverter converter)
multiplicationback to summary
public static ComparableQuantity<?> multiplication(final Quantity<?> q1, final Quantity<?> q2, final BinaryOperator<Number> amountOperator, final BinaryOperator<Unit<?>> unitOperator)
scalarMultiplicationback to summary
public static <Q extends Quantity<Q>> ComparableQuantity<Q> scalarMultiplication(final Quantity<Q> quantity, final UnaryOperator<Number> operator)
toAbsoluteLinearback to summary
private static <Q extends Quantity<Q>> Quantity<Q> toAbsoluteLinear(Quantity<Q> quantity)
toSystemUnitConverterForAddback to summary
private static <Q extends Quantity<Q>> ScaleHelper.ToSystemUnitConverter toSystemUnitConverterForAdd(final Quantity<Q> q1, final Quantity<Q> q2)
toSystemUnitConverterForMulback to summary
private static <T extends Quantity<T>> ScaleHelper.ToSystemUnitConverter toSystemUnitConverterForMul(Quantity<T> quantity)
unsupportedConverterback to summary
private static UnsupportedOperationException unsupportedConverter(UnitConverter converter, Unit<?> unit)
unsupportedRelativeScaleConversionback to summary
private static <Q extends Quantity<Q>> UnsupportedOperationException unsupportedRelativeScaleConversion(Quantity<Q> quantity, Unit<Q> anotherUnit)
tech.units.indriya.internal.function back to summary

private final Enum ScaleHelper.OperandMode

extends Enum<ScaleHelper.OperandMode>
Class Inheritance

Field Summary

Modifier and TypeField and Description
public static final ScaleHelper.OperandMode
public static final ScaleHelper.OperandMode
public static final ScaleHelper.OperandMode

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static ScaleHelper.OperandMode
get(final Quantity<?> q1, final Quantity<?> q2)

public boolean
public static ScaleHelper.OperandMode
public static ScaleHelper.OperandMode[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

ALL_ABSOLUTEback to summary
public static final ScaleHelper.OperandMode ALL_ABSOLUTE
ALL_RELATIVEback to summary
public static final ScaleHelper.OperandMode ALL_RELATIVE
MIXEDback to summary
public static final ScaleHelper.OperandMode MIXED

Constructor Detail

OperandModeback to summary
private OperandMode()

Method Detail

getback to summary
public static ScaleHelper.OperandMode get(final Quantity<?> q1, final Quantity<?> q2)
isAllRelativeback to summary
public boolean isAllRelative()
valueOfback to summary
public static ScaleHelper.OperandMode valueOf(String name)
valuesback to summary
public static ScaleHelper.OperandMode[] values()
tech.units.indriya.internal.function back to summary

private Class ScaleHelper.ToSystemUnitConverter

extends Object
implements UnaryOperator<Number>
Class Inheritance
  • java.lang.Object
  • tech.units.indriya.internal.function.ScaleHelper.ToSystemUnitConverter
All Implemented Interfaces
java.util.function.UnaryOperator, java.util.function.Function

Field Summary

Modifier and TypeField and Description
private final UnaryOperator<Number>
private final UnaryOperator<Number>

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public Number
apply(Number
the function argument
x
)

Implements java.util.function.Function.apply.

Applies this function to the given argument.

public static ScaleHelper.ToSystemUnitConverter
factor(Number factor)

public static <Q extends Quantity<Q>> ScaleHelper.ToSystemUnitConverter
forQuantity(Quantity<Q> quantity, Unit<Q> systemUnit)

public Number
public boolean
public static ScaleHelper.ToSystemUnitConverter
noop()

public static ScaleHelper.ToSystemUnitConverter
of(UnaryOperator<Number> unaryOperator)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

inverseOperatorback to summary
private final UnaryOperator<Number> inverseOperator
unaryOperatorback to summary
private final UnaryOperator<Number> unaryOperator

Constructor Detail

ToSystemUnitConverterback to summary
private ToSystemUnitConverter(UnaryOperator<Number> unaryOperator, UnaryOperator<Number> inverseOperator)

Method Detail

applyback to summary
public Number apply(Number x)

Implements java.util.function.Function.apply.

Doc from java.util.function.Function.apply.

Applies this function to the given argument.

Parameters
x:Number

the function argument

Returns:Number

the function result

Annotations
@Override
factorback to summary
public static ScaleHelper.ToSystemUnitConverter factor(Number factor)
forQuantityback to summary
public static <Q extends Quantity<Q>> ScaleHelper.ToSystemUnitConverter forQuantity(Quantity<Q> quantity, Unit<Q> systemUnit)
invertback to summary
public Number invert(Number x)
isNoopback to summary
public boolean isNoop()
noopback to summary
public static ScaleHelper.ToSystemUnitConverter noop()
ofback to summary
public static ScaleHelper.ToSystemUnitConverter of(UnaryOperator<Number> unaryOperator)