in src/main/java/com/univocity/parsers/common/AbstractWriter.java [1526:1561]
private <K> void writeValuesFromMap(Map<K, String> headerMapping, Map<K, ?> rowData) {
try {
if (rowData != null && !rowData.isEmpty()) {
dummyHeaderRow = this.headers;
if (usingSwitch) {
dummyHeaderRow = ((RowWriterProcessorSwitch) writerProcessor).getHeaders(headerMapping, rowData);
if (dummyHeaderRow == null) {
dummyHeaderRow = this.headers;
}
}
if (dummyHeaderRow != null) {
if (headerMapping == null) {
for (Map.Entry<?, ?> e : rowData.entrySet()) {
addValue(dummyHeaderRow, String.valueOf(e.getKey()), true, e.getValue());
}
} else {
for (Map.Entry<?, ?> e : rowData.entrySet()) {
String header = headerMapping.get(e.getKey());
if (header != null) {
addValue(dummyHeaderRow, header, true, e.getValue());
}
}
}
} else if (headerMapping != null) {
setHeadersFromMap(headerMapping, false);
writeValuesFromMap(headerMapping, rowData);
} else {
setHeadersFromMap(rowData, true);
writeValuesFromMap(null, rowData);
}
}
} catch (Throwable t) {
throw throwExceptionAndClose("Error processing data from input map", t);
}
}