in extensions/jsefa/src/main/java/org/apache/batchee/jsefa/JSefaCsvWriter.java [110:150]
public void open(Serializable checkpoint) throws Exception {
super.open(checkpoint);
// write header only on first run
if (checkpoint != null) {
return;
}
char delimiter;
if (fieldDelimiter != null && !fieldDelimiter.isEmpty()) {
delimiter = fieldDelimiter.charAt(0);
} else {
delimiter = CsvLowLevelConfiguration.Defaults.DEFAULT_FIELD_DELIMITER;
}
//X TODO align behavoir of DefaultBAtchArtifactFactory and CDIBatchArtifactFactory?
//X DefaultBatchArtifactFactory only resolves properties which are set, while
//X CDIBatchArtifactFactory resolves every field...
if (header == null && writeHeader != null && writeHeader) {
Class<?>[] classes = JsefaConfigurations.createObjectTypes(objectTypes);
StringBuilder headerBuilder = new StringBuilder(50);
for (JSefaCsvMapping mapping : JSefaCsvMapping.forTypes(classes)) {
for (String headerPart : mapping.getHeader()) {
if (headerBuilder.length() > 0) {
headerBuilder.append(delimiter);
}
headerBuilder.append(headerPart);
}
}
header = headerBuilder.toString();
}
if (header != null && !header.trim().isEmpty()) {
((CsvSerializer) serializer).getLowLevelSerializer().writeLine(header.trim());
}
}