diff options
author | Adrien Hopkins <adrien.p.hopkins@gmail.com> | 2024-08-16 18:17:50 -0500 |
---|---|---|
committer | Adrien Hopkins <adrien.p.hopkins@gmail.com> | 2024-08-22 11:45:36 -0500 |
commit | cc5f9b27c403f0ebc4b5682964fb54e73f87df58 (patch) | |
tree | e8865ec4ffcd4cdbe3f31afbb0e0b4b8c9d4769f | |
parent | 72ca258d06c51e55c9fa5983bb11186250eb24b0 (diff) |
Validate unit set non-emptiness & dimension
-rw-r--r-- | src/main/java/sevenUnits/unit/UnitDatabase.java | 17 |
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); } |