public abstract class DimensionalModel
extends java.lang.Object
This class represents the physical model used for dimensional analysis.
In principle, dimensions of physical quantities could be defined as "fundamental" (such as momentum or energy or electric current) making such
quantities uncommensurate (not comparable). Modern physics has cast doubt on the very existence of incompatible fundamental dimensions of physical
quantities. For example, most physicists do not recognize temperature, Θ
, as a fundamental dimension since it
essentially expresses the energy per particle per degree of freedom, which can be expressed in terms of energy (or mass, length, and time). To
support, such model the method #getConverter
may returns a non-null value for distinct dimensions.
The default model is Standard
. Applications may use one of the predefined model or create their own.
DimensionalModel relativistic = new DimensionalModel() {
public Dimension getFundamentalDimension(Dimension dimension) {
if (dimension.equals(QuantityDimension.LENGTH)) return QuantityDimension.TIME; // Consider length derived from time.
return super.getDimension(dimension); // Returns product of fundamental dimension.
}
public UnitConverter getDimensionalTransform(Dimension dimension) {
if (dimension.equals(QuantityDimension.LENGTH)) return new RationalConverter(1, 299792458); // Converter (1/C) from LENGTH SI unit (m) to TIME SI unit (s).
return super.getDimensionalTransform(dimension);
}
};
try {
DimensionalModel.setCurrent(relativistic); // Current thread use the relativistic model.
Units.KILOGRAM.getConverterToAny(Units.JOULE); // Allowed.
...
} finally {
cleanup();
}
Modifier and Type | Field and Description |
---|---|
private static DimensionalModel |
currentModel
Holds the current model.
|
Modifier | Constructor and Description |
---|---|
protected |
DimensionalModel()
DefaultQuantityFactory constructor (allows for derivation).
|
Modifier and Type | Method and Description |
---|---|
static DimensionalModel |
current()
Returns the current model (by default an instance of
StandardModel ). |
AbstractConverter |
getDimensionalTransform(javax.measure.Dimension dimension)
Returns the dimensional transform of the specified dimension.
|
javax.measure.Dimension |
getFundamentalDimension(javax.measure.Dimension dimension)
Returns the fundamental dimension for the one specified.
|
protected static void |
setCurrent(DimensionalModel model)
Sets the current dimensional model
|
private static DimensionalModel currentModel
protected DimensionalModel()
public static DimensionalModel current()
StandardModel
).protected static void setCurrent(DimensionalModel model)
model
- the new current model.current()
public javax.measure.Dimension getFundamentalDimension(javax.measure.Dimension dimension)
dimension
- the dimension for which the fundamental dimension is returned.this
or a rational product of fundamental dimension.public AbstractConverter getDimensionalTransform(javax.measure.Dimension dimension)
dimension
- the dimension for which the dimensional transform is returned.