public void open()

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());
        }
    }