1 package org.simantics.district.imports.ui;
\r
3 import java.io.IOException;
\r
4 import java.nio.file.Path;
\r
5 import java.util.Collections;
\r
6 import java.util.List;
\r
7 import java.util.Map;
\r
9 import org.simantics.district.imports.DistrictImportUtils;
\r
10 import org.simantics.district.imports.DistrictImportUtils.CSVHeader;
\r
12 public class CSVImportModel {
\r
14 private Path source;
\r
15 private char delimiter;
\r
16 private boolean read;
\r
17 private Map<String, Character> delimiters;
\r
19 public CSVImportModel() {
\r
20 delimiters = DistrictImportUtils.getSupportedCSVDelimiterFormats();
\r
23 public void setSource(Path source) {
\r
24 this.source = source;
\r
27 public void setDelimiter(char delimiter) {
\r
28 this.delimiter = delimiter;
\r
31 public void setReadFirstAsHeader(boolean read) {
\r
35 public Path getSource() {
\r
39 public Map<CSVHeader, List<String>> getHeaderAndRows(int amount) throws IOException {
\r
41 return DistrictImportUtils.readCSVHeaderAndRows(source, delimiter, read, amount);
\r
43 return Collections.emptyMap();
\r
46 public Map<String, Integer> getHeader() throws IOException {
\r
47 Map<String, Integer> header = null;
\r
49 header = DistrictImportUtils.readCSVHeader(source, delimiter, read);
\r
51 header = Collections.emptyMap();
\r
55 public boolean getReadFirstAsHeader() {
\r
59 public String[] getDelimiterFormats() {
\r
60 return delimiters.keySet().toArray(new String[delimiters.size()]);
\r
63 public void setDelimiterByLabel(String item) {
\r
64 setDelimiter(delimiters.get(item));
\r
67 public List<Map<String, String>> readRows(int amount) throws IOException {
\r
69 return DistrictImportUtils.readRows(source, delimiter, read, amount);
\r
71 return Collections.emptyList();
\r