Skip to content

Commit 1e739b5

Browse files
committed
Addressing reviewers comments
1 parent 358a1b9 commit 1e739b5

File tree

2 files changed

+21
-18
lines changed

2 files changed

+21
-18
lines changed

src/main/java/edu/ie3/datamodel/io/csv/BufferedCsvWriter.java

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import java.util.Arrays;
1313
import java.util.Map;
1414
import java.util.Objects;
15+
import java.util.stream.Collectors;
16+
import java.util.stream.Stream;
1517

1618
/**
1719
* This class extends the {@link BufferedWriter} and adds information about the file shape of the
@@ -83,9 +85,7 @@ public synchronized void write(Map<String, String> entityFieldData)
8385
+ String.join(",", headLineElements)
8486
+ "'.");
8587

86-
String[] entries =
87-
Arrays.stream(headLineElements).map(entityFieldData::get).toArray(String[]::new);
88-
writeOneLine(entries);
88+
writeOneLine(Arrays.stream(headLineElements).map(entityFieldData::get));
8989
}
9090

9191
/**
@@ -104,15 +104,18 @@ public final synchronized void writeFileHeader() throws IOException {
104104
* @throws IOException If writing is not possible
105105
*/
106106
private void writeOneLine(String[] entries) throws IOException {
107-
for (int i = 0; i < entries.length; i++) {
108-
String attribute = entries[i];
109-
super.append(attribute);
110-
if (i + 1 < entries.length) {
111-
super.append(csvSep);
112-
} else {
113-
super.append("\n");
114-
}
115-
}
107+
writeOneLine(Arrays.stream(entries));
108+
}
109+
110+
/**
111+
* Write one line to the csv file
112+
*
113+
* @param entries Stream of entries to write
114+
* @throws IOException If writing is not possible
115+
*/
116+
private void writeOneLine(Stream<String> entries) throws IOException {
117+
super.append(entries.collect(Collectors.joining(csvSep)));
118+
super.append("\n");
116119
flush();
117120
}
118121

src/test/groovy/edu/ie3/datamodel/io/csv/BufferedCsvWriterTest.groovy

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,12 +83,12 @@ class BufferedCsvWriterTest extends Specification {
8383
def "The buffered csv writer writes out content in the order specified by the headline elements"() {
8484
given:
8585
def targetFile = FilenameUtils.concat(tmpDirectory.toString(), "order_test.csv")
86-
def writer = new BufferedCsvWriter(targetFile, ["c", "b", "a"] as String[], ",", false)
86+
def writer = new BufferedCsvWriter(targetFile, ["third_header", "second_header", "first_header"] as String[], ",", false)
8787
writer.writeFileHeader()
8888
def content = [
89-
"c": "z",
90-
"a": "x",
91-
"b": "y"
89+
"third_header": "third_value",
90+
"first_header": "first_value",
91+
"second_header": "second_value"
9292
]
9393

9494
when:
@@ -105,7 +105,7 @@ class BufferedCsvWriterTest extends Specification {
105105
}
106106

107107
then:
108-
headline == "c,b,a"
109-
writtenContent == "z,y,x"
108+
headline == "third_header,second_header,first_header"
109+
writtenContent == "third_value,second_value,first_value"
110110
}
111111
}

0 commit comments

Comments
 (0)