Loading histream-export/src/main/java/de/sekmi/histream/export/csv/CSVWriter.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -35,6 +35,7 @@ public class CSVWriter implements ExportWriter{ private String filenameExtension; private String filenameExtension; private String patientTableName; private String patientTableName; private String visitTableName; private String visitTableName; private String nullString; /** /** * Create a CSV writer which creates table files * Create a CSV writer which creates table files Loading @@ -49,6 +50,7 @@ public class CSVWriter implements ExportWriter{ this.directory = directory; this.directory = directory; this.fieldSeparator = fieldSeparator; this.fieldSeparator = fieldSeparator; this.filenameExtension = fileSuffix; this.filenameExtension = fileSuffix; this.nullString = ""; // write null values as empty strings this.patientTableName = "patients"; this.patientTableName = "patients"; this.visitTableName = "visits"; this.visitTableName = "visits"; if( fieldSeparator == ' ' || fieldSeparator == '\n' ){ if( fieldSeparator == ' ' || fieldSeparator == '\n' ){ Loading Loading @@ -103,6 +105,9 @@ public class CSVWriter implements ExportWriter{ * @return escaped data field * @return escaped data field */ */ protected String escapeData(String data){ protected String escapeData(String data){ if( data == null ){ return nullString; } // TODO do proper escaping // TODO do proper escaping return data.replace(fieldSeparator, ' ').replace('\n', ' ').replace('\r', ' '); return data.replace(fieldSeparator, ' ').replace('\n', ' ').replace('\r', ' '); } } Loading histream-export/src/test/java/de/sekmi/histream/export/csv/TestCSVWriter.java 0 → 100644 +18 −0 Original line number Original line Diff line number Diff line package de.sekmi.histream.export.csv; import java.nio.file.Paths; import static org.junit.Assert.*; import org.junit.Test; public class TestCSVWriter { @Test public void verifyEscape(){ CSVWriter w = new CSVWriter(Paths.get("."), '\t', ".txt"); // null is written as empty string (default) assertEquals("", w.escapeData(null)); // line feeds and carriage returns will be encoded each as single spaces assertEquals("a b", w.escapeData("a\r\nb")); } } Loading
histream-export/src/main/java/de/sekmi/histream/export/csv/CSVWriter.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -35,6 +35,7 @@ public class CSVWriter implements ExportWriter{ private String filenameExtension; private String filenameExtension; private String patientTableName; private String patientTableName; private String visitTableName; private String visitTableName; private String nullString; /** /** * Create a CSV writer which creates table files * Create a CSV writer which creates table files Loading @@ -49,6 +50,7 @@ public class CSVWriter implements ExportWriter{ this.directory = directory; this.directory = directory; this.fieldSeparator = fieldSeparator; this.fieldSeparator = fieldSeparator; this.filenameExtension = fileSuffix; this.filenameExtension = fileSuffix; this.nullString = ""; // write null values as empty strings this.patientTableName = "patients"; this.patientTableName = "patients"; this.visitTableName = "visits"; this.visitTableName = "visits"; if( fieldSeparator == ' ' || fieldSeparator == '\n' ){ if( fieldSeparator == ' ' || fieldSeparator == '\n' ){ Loading Loading @@ -103,6 +105,9 @@ public class CSVWriter implements ExportWriter{ * @return escaped data field * @return escaped data field */ */ protected String escapeData(String data){ protected String escapeData(String data){ if( data == null ){ return nullString; } // TODO do proper escaping // TODO do proper escaping return data.replace(fieldSeparator, ' ').replace('\n', ' ').replace('\r', ' '); return data.replace(fieldSeparator, ' ').replace('\n', ' ').replace('\r', ' '); } } Loading
histream-export/src/test/java/de/sekmi/histream/export/csv/TestCSVWriter.java 0 → 100644 +18 −0 Original line number Original line Diff line number Diff line package de.sekmi.histream.export.csv; import java.nio.file.Paths; import static org.junit.Assert.*; import org.junit.Test; public class TestCSVWriter { @Test public void verifyEscape(){ CSVWriter w = new CSVWriter(Paths.get("."), '\t', ".txt"); // null is written as empty string (default) assertEquals("", w.escapeData(null)); // line feeds and carriage returns will be encoded each as single spaces assertEquals("a b", w.escapeData("a\r\nb")); } }