1 package org.simantics.district.imports.ui;
3 import java.io.IOException;
4 import java.nio.file.Path;
5 import java.util.Collections;
9 import org.apache.commons.csv.CSVRecord;
10 import org.simantics.district.imports.DistrictImportUtils;
11 import org.simantics.district.imports.DistrictImportUtils.CSVHeader;
13 public class CSVImportModel {
16 private char delimiter;
18 private Map<String, Character> delimiters;
21 public CSVImportModel() {
22 delimiters = DistrictImportUtils.getSupportedCSVDelimiterFormats();
25 public void setSource(Path source) {
29 public void setDelimiter(char delimiter) {
30 this.delimiter = delimiter;
33 public void setReadFirstAsHeader(boolean read) {
37 public Path getSource() {
41 public List<CSVRecord> getRows(int amount) throws IOException {
43 return DistrictImportUtils.readRows(source, delimiter, amount);
45 return Collections.emptyList();
48 public Map<CSVHeader, List<String>> getHeaderAndRows(int amount) throws IOException {
50 return DistrictImportUtils.readCSVHeaderAndRows(source, delimiter, read, amount);
52 return Collections.emptyMap();
55 public Map<String, Integer> getHeader() throws IOException {
56 Map<String, Integer> header = null;
58 header = DistrictImportUtils.readCSVHeader(source, delimiter, read);
60 header = Collections.emptyMap();
64 public boolean getReadFirstAsHeader() {
68 public String[] getDelimiterFormats() {
69 return delimiters.keySet().toArray(new String[delimiters.size()]);
72 public void setDelimiterByLabel(String item) {
73 setDelimiter(delimiters.get(item));
76 public List<Map<String, String>> readRows(int amount) throws IOException {
78 return DistrictImportUtils.readRows(source, delimiter, read, amount);
80 return Collections.emptyList();
83 public char getDelimiter() {
87 public Path getWKTFile() {