summaryrefslogtreecommitdiff
path: root/src/main/java/sevenUnits/unit/UnitDatabase.java
diff options
context:
space:
mode:
authorAdrien Hopkins <ahopk127@my.yorku.ca>2022-02-26 09:53:24 -0500
committerAdrien Hopkins <ahopk127@my.yorku.ca>2022-02-26 09:53:24 -0500
commit07c86e02be29aa3d3d878adce62c5c0a9a458e47 (patch)
treef7b13c71beed93f3af0919a2c835414252bf30c7 /src/main/java/sevenUnits/unit/UnitDatabase.java
parentb7eee33a5b162b4057d04d28f45738e3048bf01d (diff)
Implemented unit conversion, with a few problems
TabbedView now displays its units, but with their toString method which shows their definition in addition to their name
Diffstat (limited to 'src/main/java/sevenUnits/unit/UnitDatabase.java')
-rw-r--r--src/main/java/sevenUnits/unit/UnitDatabase.java23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/main/java/sevenUnits/unit/UnitDatabase.java b/src/main/java/sevenUnits/unit/UnitDatabase.java
index 18ac619..b029539 100644
--- a/src/main/java/sevenUnits/unit/UnitDatabase.java
+++ b/src/main/java/sevenUnits/unit/UnitDatabase.java
@@ -47,6 +47,8 @@ import java.util.regex.Pattern;
import sevenUnits.utils.ConditionalExistenceCollections;
import sevenUnits.utils.DecimalComparison;
import sevenUnits.utils.ExpressionParser;
+import sevenUnits.utils.NameSymbol;
+import sevenUnits.utils.NamedObjectProduct;
import sevenUnits.utils.ObjectProduct;
import sevenUnits.utils.UncertainDouble;
@@ -1197,7 +1199,7 @@ public final class UnitDatabase {
* @since 2019-03-14
* @since v0.2.0
*/
- private final Map<String, ObjectProduct<BaseDimension>> dimensions;
+ private final Map<String, NamedObjectProduct<BaseDimension>> dimensions;
/**
* A map mapping strings to units (including prefixes)
@@ -1313,9 +1315,16 @@ public final class UnitDatabase {
*/
public void addDimension(final String name,
final ObjectProduct<BaseDimension> dimension) {
- this.dimensions.put(
- Objects.requireNonNull(name, "name must not be null."),
- Objects.requireNonNull(dimension, "dimension must not be null."));
+ Objects.requireNonNull(name, "name may not be null");
+ Objects.requireNonNull(dimension, "dimension may not be null");
+ if (dimension instanceof NamedObjectProduct) {
+ this.dimensions.put(name,
+ (NamedObjectProduct<BaseDimension>) dimension);
+ } else {
+ final NamedObjectProduct<BaseDimension> namedDimension = dimension
+ .withName(NameSymbol.ofName(name));
+ this.dimensions.put(name, namedDimension);
+ }
}
/**
@@ -1367,7 +1376,7 @@ public final class UnitDatabase {
throw e;
}
- this.addDimension(name, dimension);
+ this.addDimension(name, dimension.withName(NameSymbol.ofName(name)));
}
}
@@ -1463,7 +1472,7 @@ public final class UnitDatabase {
throw e;
}
- this.addUnit(name, unit);
+ this.addUnit(name, unit.withName(NameSymbol.ofName(name)));
}
}
}
@@ -1510,7 +1519,7 @@ public final class UnitDatabase {
* @since 2019-04-13
* @since v0.2.0
*/
- public Map<String, ObjectProduct<BaseDimension>> dimensionMap() {
+ public Map<String, NamedObjectProduct<BaseDimension>> dimensionMap() {
return Collections.unmodifiableMap(this.dimensions);
}