summaryrefslogtreecommitdiff
path: root/src/main/java/sevenUnits/unit/UnitDatabase.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/sevenUnits/unit/UnitDatabase.java')
-rw-r--r--src/main/java/sevenUnits/unit/UnitDatabase.java17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/main/java/sevenUnits/unit/UnitDatabase.java b/src/main/java/sevenUnits/unit/UnitDatabase.java
index 58c5cac..05c31c4 100644
--- a/src/main/java/sevenUnits/unit/UnitDatabase.java
+++ b/src/main/java/sevenUnits/unit/UnitDatabase.java
@@ -1501,7 +1501,13 @@ public final class UnitDatabase {
unitName));
}
}
- this.addUnitSet(name, units);
+
+ try {
+ this.addUnitSet(name, units);
+ } catch (final IllegalArgumentException e) {
+ System.err.printf("Parsing error on line %d:%n", lineCounter);
+ throw e;
+ }
} else {
// it's a unit, get the unit
final Unit unit;
@@ -1525,6 +1531,15 @@ public final class UnitDatabase {
* @since 2024-08-16
*/
public void addUnitSet(String name, List<LinearUnit> value) {
+ if (value.isEmpty())
+ throw new IllegalArgumentException("Unit sets must not be empty.");
+ for (final LinearUnit unit : value.subList(1, value.size())) {
+ if (!Objects.equals(unit.getDimension(), value.get(0).getDimension()))
+ throw new IllegalArgumentException(
+ "Unit sets must be all the same dimension, " + value
+ + " is not.");
+ }
+
this.unitSets.put(name, value);
}