summaryrefslogtreecommitdiff
path: root/src/main/java/org/unitConverter/unit
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/unitConverter/unit')
-rw-r--r--src/main/java/org/unitConverter/unit/UnitDatabase.java34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/main/java/org/unitConverter/unit/UnitDatabase.java b/src/main/java/org/unitConverter/unit/UnitDatabase.java
index 000acf5..6322fef 100644
--- a/src/main/java/org/unitConverter/unit/UnitDatabase.java
+++ b/src/main/java/org/unitConverter/unit/UnitDatabase.java
@@ -18,6 +18,7 @@ package org.unitConverter.unit;
import java.io.FileNotFoundException;
import java.io.IOException;
+import java.io.InputStream;
import java.math.BigDecimal;
import java.nio.file.Files;
import java.nio.file.Path;
@@ -34,6 +35,7 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.NoSuchElementException;
import java.util.Objects;
+import java.util.Scanner;
import java.util.Set;
import java.util.function.BiFunction;
import java.util.function.Function;
@@ -1880,6 +1882,22 @@ public final class UnitDatabase {
}
/**
+ * Adds all dimensions from a {@code InputStream}. Otherwise, works like
+ * {@link #loadDimensionFile}.
+ *
+ * @param stream stream to load from
+ * @since 2021-03-27
+ */
+ public void loadDimensionsFromStream(final InputStream stream) {
+ try (final Scanner scanner = new Scanner(stream)) {
+ long lineCounter = 0;
+ while (scanner.hasNextLine()) {
+ this.addDimensionFromLine(scanner.nextLine(), ++lineCounter);
+ }
+ }
+ }
+
+ /**
* Adds all units from a file, using data from the database to parse them.
* <p>
* Each line in the file should consist of a name and an expression (parsed
@@ -1919,6 +1937,22 @@ public final class UnitDatabase {
}
/**
+ * Adds all units from a {@code InputStream}. Otherwise, works like
+ * {@link #loadUnitsFile}.
+ *
+ * @param stream stream to load from
+ * @since 2021-03-27
+ */
+ public void loadUnitsFromStream(InputStream stream) {
+ try (final Scanner scanner = new Scanner(stream)) {
+ long lineCounter = 0;
+ while (scanner.hasNextLine()) {
+ this.addUnitOrPrefixFromLine(scanner.nextLine(), ++lineCounter);
+ }
+ }
+ }
+
+ /**
* @return a map mapping prefix names to prefixes
* @since 2019-04-13
* @since v0.2.0