diff options
Diffstat (limited to 'src/org')
18 files changed, 21 insertions, 5 deletions
diff --git a/src/org/unitConverter/UnitsDatabase.java b/src/org/unitConverter/UnitsDatabase.java index 37d53d4..dcc98df 100755..100644 --- a/src/org/unitConverter/UnitsDatabase.java +++ b/src/org/unitConverter/UnitsDatabase.java @@ -36,6 +36,8 @@ import java.util.Set; import java.util.function.BiFunction; import java.util.function.Function; import java.util.function.Predicate; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import org.unitConverter.dimension.UnitDimension; import org.unitConverter.math.DecimalComparison; @@ -972,6 +974,11 @@ public final class UnitsDatabase { } /** + * A regular expression that separates names and expressions in unit files. + */ + private static final Pattern NAME_EXPRESSION = Pattern.compile("(\\S+)\\s+(\\S.*)"); + + /** * The exponent operator * * @param base @@ -1200,13 +1207,22 @@ public final class UnitsDatabase { } // divide line into name and expression - final String[] parts = line.split("\t"); - if (parts.length < 2) + final Matcher lineMatcher = NAME_EXPRESSION.matcher(line); + if (!lineMatcher.matches()) throw new IllegalArgumentException(String.format( - "Lines must consist of a unit name and its definition, separated by tab(s) (line %d).", + "Error at line %d: Lines of a unit file must consist of a unit name, then spaces or tabs, then a unit expression.", lineCounter)); - final String name = parts[0]; - final String expression = parts[parts.length - 1]; + final String name = lineMatcher.group(1); + final String expression = lineMatcher.group(2); + + // divide line into name and expression + // final String[] parts = line.split("\t"); + // if (parts.length < 2) + // throw new IllegalArgumentException(String.format( + // "Lines must consist of a unit name and its definition, separated by tab(s) (line %d).", + // lineCounter)); + // final String name = parts[0]; + // final String expression = parts[parts.length - 1]; if (name.endsWith(" ")) { System.err.printf("Warning - line %d's unit name ends in a space", lineCounter); diff --git a/src/org/unitConverter/converterGUI/DelegateListModel.java b/src/org/unitConverter/converterGUI/DelegateListModel.java index b80f63d..b80f63d 100755..100644 --- a/src/org/unitConverter/converterGUI/DelegateListModel.java +++ b/src/org/unitConverter/converterGUI/DelegateListModel.java diff --git a/src/org/unitConverter/converterGUI/FilterComparator.java b/src/org/unitConverter/converterGUI/FilterComparator.java index 7b17bfc..7b17bfc 100755..100644 --- a/src/org/unitConverter/converterGUI/FilterComparator.java +++ b/src/org/unitConverter/converterGUI/FilterComparator.java diff --git a/src/org/unitConverter/converterGUI/GridBagBuilder.java b/src/org/unitConverter/converterGUI/GridBagBuilder.java index f1229b2..f1229b2 100755..100644 --- a/src/org/unitConverter/converterGUI/GridBagBuilder.java +++ b/src/org/unitConverter/converterGUI/GridBagBuilder.java diff --git a/src/org/unitConverter/converterGUI/UnitConverterGUI.java b/src/org/unitConverter/converterGUI/UnitConverterGUI.java index 2d3d1a5..2d3d1a5 100755..100644 --- a/src/org/unitConverter/converterGUI/UnitConverterGUI.java +++ b/src/org/unitConverter/converterGUI/UnitConverterGUI.java diff --git a/src/org/unitConverter/dimension/BaseDimension.java b/src/org/unitConverter/dimension/BaseDimension.java index 5e3ddad..5e3ddad 100755..100644 --- a/src/org/unitConverter/dimension/BaseDimension.java +++ b/src/org/unitConverter/dimension/BaseDimension.java diff --git a/src/org/unitConverter/dimension/OtherBaseDimension.java b/src/org/unitConverter/dimension/OtherBaseDimension.java index 8aea2b9..8aea2b9 100755..100644 --- a/src/org/unitConverter/dimension/OtherBaseDimension.java +++ b/src/org/unitConverter/dimension/OtherBaseDimension.java diff --git a/src/org/unitConverter/dimension/SIBaseDimension.java b/src/org/unitConverter/dimension/SIBaseDimension.java index c459963..c459963 100755..100644 --- a/src/org/unitConverter/dimension/SIBaseDimension.java +++ b/src/org/unitConverter/dimension/SIBaseDimension.java diff --git a/src/org/unitConverter/dimension/StandardDimensions.java b/src/org/unitConverter/dimension/StandardDimensions.java index 4b1b814..4b1b814 100755..100644 --- a/src/org/unitConverter/dimension/StandardDimensions.java +++ b/src/org/unitConverter/dimension/StandardDimensions.java diff --git a/src/org/unitConverter/dimension/UnitDimension.java b/src/org/unitConverter/dimension/UnitDimension.java index dbeaeff..dbeaeff 100755..100644 --- a/src/org/unitConverter/dimension/UnitDimension.java +++ b/src/org/unitConverter/dimension/UnitDimension.java diff --git a/src/org/unitConverter/dimension/package-info.java b/src/org/unitConverter/dimension/package-info.java index 8cb26b1..8cb26b1 100755..100644 --- a/src/org/unitConverter/dimension/package-info.java +++ b/src/org/unitConverter/dimension/package-info.java diff --git a/src/org/unitConverter/unit/BaseUnit.java b/src/org/unitConverter/unit/BaseUnit.java index 67309cf..67309cf 100755..100644 --- a/src/org/unitConverter/unit/BaseUnit.java +++ b/src/org/unitConverter/unit/BaseUnit.java diff --git a/src/org/unitConverter/unit/DefaultUnitPrefix.java b/src/org/unitConverter/unit/DefaultUnitPrefix.java index 4a9e487..4a9e487 100755..100644 --- a/src/org/unitConverter/unit/DefaultUnitPrefix.java +++ b/src/org/unitConverter/unit/DefaultUnitPrefix.java diff --git a/src/org/unitConverter/unit/NonlinearUnits.java b/src/org/unitConverter/unit/NonlinearUnits.java index eda4a74..eda4a74 100755..100644 --- a/src/org/unitConverter/unit/NonlinearUnits.java +++ b/src/org/unitConverter/unit/NonlinearUnits.java diff --git a/src/org/unitConverter/unit/SIPrefix.java b/src/org/unitConverter/unit/SIPrefix.java index 31d7ff2..31d7ff2 100755..100644 --- a/src/org/unitConverter/unit/SIPrefix.java +++ b/src/org/unitConverter/unit/SIPrefix.java diff --git a/src/org/unitConverter/unit/Unit.java b/src/org/unitConverter/unit/Unit.java index 54f0ab5..54f0ab5 100755..100644 --- a/src/org/unitConverter/unit/Unit.java +++ b/src/org/unitConverter/unit/Unit.java diff --git a/src/org/unitConverter/unit/UnitPrefix.java b/src/org/unitConverter/unit/UnitPrefix.java index 9f9645d..9f9645d 100755..100644 --- a/src/org/unitConverter/unit/UnitPrefix.java +++ b/src/org/unitConverter/unit/UnitPrefix.java diff --git a/src/org/unitConverter/unit/UnitSystem.java b/src/org/unitConverter/unit/UnitSystem.java index 550eff6..550eff6 100755..100644 --- a/src/org/unitConverter/unit/UnitSystem.java +++ b/src/org/unitConverter/unit/UnitSystem.java |