summaryrefslogtreecommitdiff
path: root/docs/diagrams/units-class-diagram.plantuml.txt
diff options
context:
space:
mode:
Diffstat (limited to 'docs/diagrams/units-class-diagram.plantuml.txt')
-rw-r--r--docs/diagrams/units-class-diagram.plantuml.txt72
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