Package de.monticore.types3.util
Class SIUnitTypeRelations
- java.lang.Object
-
- de.monticore.types3.util.SIUnitTypeRelations
-
public class SIUnitTypeRelations extends java.lang.Objectcalculates, e.g., the product or inverse of SymTypeOfSIUnits one may assume this functionality ought to be in SymTypeOfSIUnit, however, it relies on other functionality in SymTypeRelations, and the behaviour of SymTypeClasses should not be dependent on the current type system (or one would need to pass the SymTypeRelations to the SymTypes) delegate of SymTypeRelations
-
-
Field Summary
Fields Modifier and Type Field Description protected static java.util.List<java.lang.String>baseUnitStringsList of the base units (without prefixes)protected static java.util.Map<java.lang.String,java.util.List<SIUnitBasic>>conversionTableto convert to base units, e.g.,Hz -> s^-1J -> m^2*g*s^-2protected static SIUnitTypeRelationsdelegate
-
Constructor Summary
Constructors Constructor Description SIUnitTypeRelations()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.util.List<SIUnitBasic>_convertToSIBaseUnits(SIUnitBasic unitBasic)protected SymTypeOfSIUnit_convertToSIBaseUnits(SymTypeOfSIUnit siUnit)protected SymTypeOfSIUnit_invert(SymTypeOfSIUnit siUnit)protected boolean_isOfDimensionOne(SymTypeOfSIUnit siUnit)protected SymTypeOfSIUnit_multiply(java.util.Collection<SymTypeOfSIUnit> siUnits)protected SymTypeOfNumericWithSIUnit_multiplyWithNumerics(java.util.Collection<SymTypeOfNumericWithSIUnit> numericWithSIUnits)protected SymTypeOfSIUnit_normalize(SymTypeOfSIUnit siUnit)protected static java.util.List<SIUnitBasic>convertToSIBaseUnits(SIUnitBasic unitBasic)protected static SymTypeOfSIUnitconvertToSIBaseUnits(SymTypeOfSIUnit siUnit)returns a SymTypeOfSIUnit only consisting of the seven SI base units (s, m, kg, A, K, mol, cd) any prefixes are removed (except "k" of kg)protected static SIUnitBasiccreateSIBaseUnit(java.lang.String dimension)protected static SIUnitBasiccreateSIBaseUnit(java.lang.String dimension, int exponent)protected static SIUnitTypeRelationsgetDelegate()static voidinit()static SymTypeOfSIUnitinternal_normalize(SymTypeOfSIUnit siUnit)returns a SymTypeOfSIUnit only consisting of the seven SI base units (s, m, kg, A, K, mol, cd) any prefixes are removed (except "k" of kg) Additionally, only one of each base unit exists in the SymType, e.g.,kg^2*m*kg -> kg^3*mand every exponent is positive, e.g.,kg^-2*m^0*s/K^-2 -> s*K^2/kg^2static SymTypeOfNumericWithSIUnitinvert(SymTypeOfNumericWithSIUnit numericWithSIUnit)static SymTypeOfSIUnitinvert(SymTypeOfSIUnit siUnit)static booleanisOfDimensionOne(SymTypeOfSIUnit siUnit)whether this is of dimension 1, s.static SymTypeOfSIUnitmultiply(SymTypeOfSIUnit... siUnits)static SymTypeOfSIUnitmultiply(java.util.Collection<SymTypeOfSIUnit> siUnits)static SymTypeOfNumericWithSIUnitmultiplyWithNumerics(SymTypeOfNumericWithSIUnit... numericWithSIUnits)static SymTypeOfNumericWithSIUnitmultiplyWithNumerics(java.util.Collection<SymTypeOfNumericWithSIUnit> numericWithSIUnits)static voidreset()protected static voidsetDelegate(SIUnitTypeRelations newDelegate)
-
-
-
Field Detail
-
delegate
protected static SIUnitTypeRelations delegate
-
baseUnitStrings
protected static final java.util.List<java.lang.String> baseUnitStrings
List of the base units (without prefixes)
-
conversionTable
protected static final java.util.Map<java.lang.String,java.util.List<SIUnitBasic>> conversionTable
to convert to base units, e.g.,Hz -> s^-1J -> m^2*g*s^-2
-
-
Method Detail
-
isOfDimensionOne
public static boolean isOfDimensionOne(SymTypeOfSIUnit siUnit)
whether this is of dimension 1, s. DIN EN ISO 80000-1:2023-08 (chap. 5) e.g.: m/m,ยบ
-
_isOfDimensionOne
protected boolean _isOfDimensionOne(SymTypeOfSIUnit siUnit)
-
internal_normalize
public static SymTypeOfSIUnit internal_normalize(SymTypeOfSIUnit siUnit)
returns a SymTypeOfSIUnit only consisting of the seven SI base units (s, m, kg, A, K, mol, cd) any prefixes are removed (except "k" of kg) Additionally, only one of each base unit exists in the SymType, e.g.,kg^2*m*kg -> kg^3*mand every exponent is positive, e.g.,kg^-2*m^0*s/K^-2 -> s*K^2/kg^2this is implemented here (instead of the normalize visitor), as it requires a lot of domain-specific knowledge / calculations.
-
_normalize
protected SymTypeOfSIUnit _normalize(SymTypeOfSIUnit siUnit)
-
convertToSIBaseUnits
protected static SymTypeOfSIUnit convertToSIBaseUnits(SymTypeOfSIUnit siUnit)
returns a SymTypeOfSIUnit only consisting of the seven SI base units (s, m, kg, A, K, mol, cd) any prefixes are removed (except "k" of kg)
-
_convertToSIBaseUnits
protected SymTypeOfSIUnit _convertToSIBaseUnits(SymTypeOfSIUnit siUnit)
-
convertToSIBaseUnits
protected static java.util.List<SIUnitBasic> convertToSIBaseUnits(SIUnitBasic unitBasic)
-
_convertToSIBaseUnits
protected java.util.List<SIUnitBasic> _convertToSIBaseUnits(SIUnitBasic unitBasic)
-
multiply
public static SymTypeOfSIUnit multiply(SymTypeOfSIUnit... siUnits)
-
multiply
public static SymTypeOfSIUnit multiply(java.util.Collection<SymTypeOfSIUnit> siUnits)
-
_multiply
protected SymTypeOfSIUnit _multiply(java.util.Collection<SymTypeOfSIUnit> siUnits)
-
multiplyWithNumerics
public static SymTypeOfNumericWithSIUnit multiplyWithNumerics(SymTypeOfNumericWithSIUnit... numericWithSIUnits)
-
multiplyWithNumerics
public static SymTypeOfNumericWithSIUnit multiplyWithNumerics(java.util.Collection<SymTypeOfNumericWithSIUnit> numericWithSIUnits)
-
_multiplyWithNumerics
protected SymTypeOfNumericWithSIUnit _multiplyWithNumerics(java.util.Collection<SymTypeOfNumericWithSIUnit> numericWithSIUnits)
-
invert
public static SymTypeOfNumericWithSIUnit invert(SymTypeOfNumericWithSIUnit numericWithSIUnit)
-
invert
public static SymTypeOfSIUnit invert(SymTypeOfSIUnit siUnit)
-
_invert
protected SymTypeOfSIUnit _invert(SymTypeOfSIUnit siUnit)
-
createSIBaseUnit
protected static SIUnitBasic createSIBaseUnit(java.lang.String dimension)
-
createSIBaseUnit
protected static SIUnitBasic createSIBaseUnit(java.lang.String dimension, int exponent)
-
init
public static void init()
-
reset
public static void reset()
-
setDelegate
protected static void setDelegate(SIUnitTypeRelations newDelegate)
-
getDelegate
protected static SIUnitTypeRelations getDelegate()
-
-