-package org.simantics.district.imports.ui;\r
-\r
-import java.io.IOException;\r
-import java.nio.file.Path;\r
-import java.util.Collections;\r
-import java.util.List;\r
-import java.util.Map;\r
-\r
-import org.simantics.district.imports.DistrictImportUtils;\r
-import org.simantics.district.imports.DistrictImportUtils.CSVHeader;\r
-\r
-public class CSVImportModel {\r
-\r
- private Path source;\r
- private char delimiter;\r
- private boolean read;\r
- private Map<String, Character> delimiters;\r
-\r
- public CSVImportModel() {\r
- delimiters = DistrictImportUtils.getSupportedCSVDelimiterFormats();\r
- }\r
- \r
- public void setSource(Path source) {\r
- this.source = source;\r
- }\r
-\r
- public void setDelimiter(char delimiter) {\r
- this.delimiter = delimiter;\r
- }\r
-\r
- public void setReadFirstAsHeader(boolean read) {\r
- this.read = read;\r
- }\r
-\r
- public Path getSource() {\r
- return source;\r
- }\r
-\r
- public Map<CSVHeader, List<String>> getHeaderAndRows(int amount) throws IOException {\r
- if (source != null)\r
- return DistrictImportUtils.readCSVHeaderAndRows(source, delimiter, read, amount);\r
- else\r
- return Collections.emptyMap();\r
- }\r
- \r
- public Map<String, Integer> getHeader() throws IOException {\r
- Map<String, Integer> header = null;\r
- if (source != null)\r
- header = DistrictImportUtils.readCSVHeader(source, delimiter, read);\r
- if (header == null)\r
- header = Collections.emptyMap();\r
- return header;\r
- }\r
-\r
- public boolean getReadFirstAsHeader() {\r
- return read;\r
- }\r
-\r
- public String[] getDelimiterFormats() {\r
- return delimiters.keySet().toArray(new String[delimiters.size()]);\r
- }\r
-\r
- public void setDelimiterByLabel(String item) {\r
- setDelimiter(delimiters.get(item));\r
- }\r
-\r
- public List<Map<String, String>> readRows(int amount) throws IOException {\r
- if (source != null)\r
- return DistrictImportUtils.readRows(source, delimiter, read, amount);\r
- else\r
- return Collections.emptyList();\r
- }\r
-}\r
+package org.simantics.district.imports.ui;
+
+import java.io.IOException;
+import java.nio.file.Path;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.csv.CSVRecord;
+import org.simantics.district.imports.DistrictImportUtils;
+import org.simantics.district.imports.DistrictImportUtils.CSVHeader;
+
+public class CSVImportModel {
+
+ private Path source;
+ private char delimiter;
+ private boolean read;
+ private Map<String, Character> delimiters;
+ private Path wktFile;
+
+ public CSVImportModel() {
+ delimiters = DistrictImportUtils.getSupportedCSVDelimiterFormats();
+ }
+
+ public void setSource(Path source) {
+ this.source = source;
+ }
+
+ public void setDelimiter(char delimiter) {
+ this.delimiter = delimiter;
+ }
+
+ public void setReadFirstAsHeader(boolean read) {
+ this.read = read;
+ }
+
+ public Path getSource() {
+ return source;
+ }
+
+ public List<CSVRecord> getRows(int amount) throws IOException {
+ if (source != null)
+ return DistrictImportUtils.readRows(source, delimiter, amount);
+ else
+ return Collections.emptyList();
+ }
+
+ public Map<CSVHeader, List<String>> getHeaderAndRows(int amount) throws IOException {
+ if (source != null)
+ return DistrictImportUtils.readCSVHeaderAndRows(source, delimiter, read, amount);
+ else
+ return Collections.emptyMap();
+ }
+
+ public Map<String, Integer> getHeader() throws IOException {
+ Map<String, Integer> header = null;
+ if (source != null)
+ header = DistrictImportUtils.readCSVHeader(source, delimiter, read);
+ if (header == null)
+ header = Collections.emptyMap();
+ return header;
+ }
+
+ public boolean getReadFirstAsHeader() {
+ return read;
+ }
+
+ public String[] getDelimiterFormats() {
+ return delimiters.keySet().toArray(new String[delimiters.size()]);
+ }
+
+ public void setDelimiterByLabel(String item) {
+ setDelimiter(delimiters.get(item));
+ }
+
+ public List<Map<String, String>> readRows(int amount) throws IOException {
+ if (source != null)
+ return DistrictImportUtils.readRows(source, delimiter, read, amount);
+ else
+ return Collections.emptyList();
+ }
+
+ public char getDelimiter() {
+ return delimiter;
+ }
+
+ public Path getWKTFile() {
+ return wktFile;
+ }
+}