diff options
author | Adrien Hopkins <ahopk127@my.yorku.ca> | 2022-04-19 16:10:44 -0500 |
---|---|---|
committer | Adrien Hopkins <ahopk127@my.yorku.ca> | 2022-04-19 16:10:44 -0500 |
commit | 0aacba9fc8a9140fdf331172ad66afe280d09b5e (patch) | |
tree | 3699f6cf4ce40db818233287853474a4cf99ba5c /src/main/java/sevenUnits/unit/UnitDatabase.java | |
parent | 40f7b6e806140fc2fc741c63c71f5ce97b4bd1d2 (diff) |
Implemented prefix settings, saving & loading of settings
Also fixed some bugs:
- Presenter now has default values for its settings in case they don't load properly
- UnitDatabase ensures its units, prefixes and dimensions have all of the names
you give it
Diffstat (limited to 'src/main/java/sevenUnits/unit/UnitDatabase.java')
-rw-r--r-- | src/main/java/sevenUnits/unit/UnitDatabase.java | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/src/main/java/sevenUnits/unit/UnitDatabase.java b/src/main/java/sevenUnits/unit/UnitDatabase.java index 71676a1..12b78a7 100644 --- a/src/main/java/sevenUnits/unit/UnitDatabase.java +++ b/src/main/java/sevenUnits/unit/UnitDatabase.java @@ -1315,13 +1315,9 @@ public final class UnitDatabase { final ObjectProduct<BaseDimension> dimension) { Objects.requireNonNull(name, "name may not be null"); Objects.requireNonNull(dimension, "dimension may not be null"); - if (!dimension.getNameSymbol().equals(NameSymbol.EMPTY)) { - this.dimensions.put(name, dimension); - } else { - final ObjectProduct<BaseDimension> namedDimension = dimension - .withName(NameSymbol.ofName(name)); - this.dimensions.put(name, namedDimension); - } + final ObjectProduct<BaseDimension> namedDimension = dimension + .withName(dimension.getNameSymbol().withExtraName(name)); + this.dimensions.put(name, namedDimension); } /** @@ -1373,7 +1369,7 @@ public final class UnitDatabase { throw e; } - this.addDimension(name, dimension.withName(NameSymbol.ofName(name))); + this.addDimension(name, dimension); } } @@ -1387,8 +1383,11 @@ public final class UnitDatabase { * @since v0.1.0 */ public void addPrefix(final String name, final UnitPrefix prefix) { + Objects.requireNonNull(prefix, "prefix may not be null"); + final var namedPrefix = prefix + .withName(prefix.getNameSymbol().withExtraName(name)); this.prefixes.put(Objects.requireNonNull(name, "name must not be null."), - Objects.requireNonNull(prefix, "prefix must not be null.")); + namedPrefix); } /** @@ -1401,9 +1400,11 @@ public final class UnitDatabase { * @since v0.1.0 */ public void addUnit(final String name, final Unit unit) { + Objects.requireNonNull(unit, "unit may not be null"); + final var namedUnit = unit + .withName(unit.getNameSymbol().withExtraName(name)); this.prefixlessUnits.put( - Objects.requireNonNull(name, "name must not be null."), - Objects.requireNonNull(unit, "unit must not be null.")); + Objects.requireNonNull(name, "name must not be null."), namedUnit); } /** @@ -1458,8 +1459,7 @@ public final class UnitDatabase { throw e; } final String prefixName = name.substring(0, name.length() - 1); - this.addPrefix(prefixName, - prefix.withName(NameSymbol.ofName(prefixName))); + this.addPrefix(prefixName, prefix); } else { // it's a unit, get the unit final Unit unit; @@ -1470,8 +1470,7 @@ public final class UnitDatabase { System.err.printf("Parsing error on line %d:%n", lineCounter); throw e; } - - this.addUnit(name, unit.withName(NameSymbol.ofName(name))); + this.addUnit(name, unit); } } } |