class CSVFormatUtils {

    Map<String, String> compileParameterProperties(Separator separator, Map<String, String> updatedParameters) {

        List<String> header = separator.getHeaders().stream().map(Pair::getKey).collect(Collectors.toList());
        // header
        String jsonHeader;
        try {
            jsonHeader = mapper.writeValueAsString(header);
        } catch (Exception e) {
            throw new TDPException(UNABLE_TO_SERIALIZE_TO_JSON, e);
        }
        updatedParameters.put(HEADER_COLUMNS_PARAMETER, jsonHeader);

        updatedParameters.put(HEADER_NB_LINES_PARAMETER, separator.isFirstLineAHeader() ? "1" : "0");
        // separator
        updatedParameters.put(SEPARATOR_PARAMETER, String.valueOf(separator.getSeparator()));

        // if no parameter set set take the default one
        updatedParameters.putIfAbsent(TEXT_ENCLOSURE_CHAR, defaultTextEnclosure);
        updatedParameters.putIfAbsent(ESCAPE_CHAR, defaultEscapeChar);

        return updatedParameters;
    }

}