diff options
author | Adrien Hopkins <ahopk127@my.yorku.ca> | 2021-08-26 11:26:02 -0500 |
---|---|---|
committer | Adrien Hopkins <ahopk127@my.yorku.ca> | 2021-08-26 11:26:02 -0500 |
commit | 208c56b56940e58fae1253a8d38e9e56249eb0cb (patch) | |
tree | c096d3a38089eeb2c3376440a95dcb1f13a1aed8 /docs/diagrams/units-class-diagram.plantuml.txt | |
parent | 3eab1082f65687085b04f59605673696353d5ede (diff) |
Finished initial draft of design document
Diffstat (limited to 'docs/diagrams/units-class-diagram.plantuml.txt')
-rw-r--r-- | docs/diagrams/units-class-diagram.plantuml.txt | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/docs/diagrams/units-class-diagram.plantuml.txt b/docs/diagrams/units-class-diagram.plantuml.txt new file mode 100644 index 0000000..7baf168 --- /dev/null +++ b/docs/diagrams/units-class-diagram.plantuml.txt @@ -0,0 +1,72 @@ +@startuml +abstract class Unit { + -unitBase : ObjectProduct<BaseUnit> + -nameSymbol : NameSymbol + -dimension : ObjectProduct<BaseDimension> + +{static} fromConversionFunctions(ObjectProduct<BaseUnit>, DoubleUnaryOperator, DoubleUnaryOperator) : Unit + #Unit(ObjectProduct<BaseUnit>, NameSymbol) : Unit + ~Unit(NameSymbol) : Unit + +canConvertTo(Unit) : boolean + +convertTo(Unit, double) : double + #convertFromBase(double) : double + #convertToBase(double) : double + +isMetric() : boolean + +withName(NameSymbol) : Unit +} +class BaseUnit { + -dimension : BaseDimension + -BaseUnit(BaseDimension, String, String, Set<String) : BaseUnit + +asLinearUnit() : LinearUnit +} +class LinearUnit { + -conversionFactor : double + +{static} valueOf(ObjectProduct<BaseUnit>, double) : LinearUnit + -LinearUnit(ObjectProduct<BaseUnit>, double, NameSymbol) : LinearUnit + +convertTo(LinearUnit, UncertainDouble) : UncertainDouble + +plus(LinearUnit) : LinearUnit + +minus(LinearUnit) : LinearUnit + +times(LinearUnit) : LinearUnit + +dividedBy(LinearUnit) : LinearUnit + +times(double) : LinearUnit + +dividedBy(double) : LinearUnit + +toExponent(int) : LinearUnit + +withPrefix(UnitPrefix) : LinearUnit + +withName(NameSymbol) : LinearUnit +} +class UnitPrefix { + -multiplier : double + +times(double) : UnitPrefix + +dividedBy(double) : UnitPrefix +} +class UnitDatabase { + -prefixlessUnits : Map<String, Unit> + -units : Map<String, Unit> + -prefixes : Map<String, UnitPrefix> + -dimensions : Map<String, ObjectProduct<BaseDimension>> + -unitExpressionParser : ExpressionParser<LinearUnit> + +loadUnitsFile(Path) + -addUnitOrPrefixFromLine(String, long) + +addUnit(String, Unit) + +containsUnitName(String) : boolean + +evaluateUnitExpression(String) : LinearUnitValue + +getUnit(String) : Unit +} +class UnitValue { + -unit : Unit + -value : double + +canConvertTo(Unit) : boolean + +convertTo(Unit) : UnitValue + +convertToLinear(LinearUnit) : LinearUnitValue +} + +Unit <|-- BaseUnit +Unit --* BaseUnit +BaseDimension -o BaseUnit +Unit <|-- LinearUnit +Unit *- SI +UnitValue --o Unit +UnitDatabase --* Unit +UnitDatabase --* UnitPrefix +UnitDatabase --* BaseDimension +UnitDatabase -* "4" ExpressionParser +@enduml |