X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.district.imports%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fimports%2FDistrictImportUtils.java;h=100c307e35d67e46e5296038eb05b26a786b2e7f;hb=02ecca5e61d2eb17de40cc058be678b414aaad00;hp=1ad5b9a9487c0667d91a553cd6ecc461b1851156;hpb=1bc60c2213f9b3fc7b4d935ba9afda2b767290e5;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.imports/src/org/simantics/district/imports/DistrictImportUtils.java b/org.simantics.district.imports/src/org/simantics/district/imports/DistrictImportUtils.java index 1ad5b9a9..100c307e 100644 --- a/org.simantics.district.imports/src/org/simantics/district/imports/DistrictImportUtils.java +++ b/org.simantics.district.imports/src/org/simantics/district/imports/DistrictImportUtils.java @@ -4,10 +4,13 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; +import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Set; import org.apache.commons.csv.CSVFormat; import org.apache.commons.csv.CSVParser; @@ -17,8 +20,7 @@ import org.simantics.db.Resource; public class DistrictImportUtils { private DistrictImportUtils() { } - - + public static Resource importCSVAsLayer(Path csvFile) throws IOException { try (CSVParser parser = CSVFormat.DEFAULT.withFirstRecordAsHeader().parse(Files.newBufferedReader(csvFile))) { @@ -172,4 +174,20 @@ public class DistrictImportUtils { } } + public static Collection readDistinctValuesOfColumn(Path source, char delim, int mappingIndex) throws IOException { + Set results = new HashSet<>(); + CSVFormat format = CSVFormat.newFormat(delim); + try (CSVParser parser = format.parse(Files.newBufferedReader(source))) { + Iterator records = parser.iterator(); + if (records.hasNext()) + records.next(); + while (records.hasNext()) { + CSVRecord row = records.next(); + String value = row.get(mappingIndex); + results.add(value); + } + } + return results; + } + }