Class ValueBase<D extends Dimension,I extends DimensionedValue<D>>

java.lang.Object
org.tquadrat.foundation.value.api.ValueBase<D,I>
Type Parameters:
D - The dimension.
I - The implementing type.
All Implemented Interfaces:
Serializable, Cloneable, Comparable<DimensionedValue<D>>, Formattable, DimensionedValue<D>
Direct Known Subclasses:
AreaValue, DataSizeValue, EnergyValue, ForceValue, LengthValue, MassValue, PowerValue, PressureValue, SpeedValue, TemperatureValue, TimeValue, VolumeValue

@ClassVersion(sourceVersion="$Id: ValueBase.java 1105 2024-02-28 12:58:46Z tquadrat $") @API(status=STABLE, since="0.0.4") public abstract non-sealed class ValueBase<D extends Dimension,I extends DimensionedValue<D>> extends Object implements DimensionedValue<D>

An abstract base implementation for the interface DimensionedValue that is intended as the base for concrete implementations of value types.

The validator argument of the constructors is an instance of BiPredicate that takes the unit with that the instance is initialised, and the value, converted to the base unit. It returns true if the given combination is valid, otherwise it returns false.

Author:
Thomas Thrien (thomas.thrien@tquadrat.org)
Version:
$Id: ValueBase.java 1105 2024-02-28 12:58:46Z tquadrat $
Since:
0.0.4
See Also:
UML Diagram
UML Diagram for "org.tquadrat.foundation.value.api.ValueBase"

UML Diagram for "org.tquadrat.foundation.value.api.ValueBase"

UML Diagram for "org.tquadrat.foundation.value.api.ValueBase"