
package de.ivu.elect.business.exchange.control;

import de.ivu.elect.business.datei.entity.CsvAnfuehrungszeichen;
import de.ivu.elect.business.datei.entity.CsvDatei;
import de.ivu.elect.business.datei.entity.CsvMaskierungszeichen;
import de.ivu.elect.business.datei.entity.CsvTrennzeichen;
import de.ivu.elect.business.datei.entity.CsvZeichensatz;

public class DefaultCsvFileKonfiguration extends DefaultFileKonfiguration implements CsvFileKonfiguration {

  private static final long serialVersionUID = 1L;

  private final CsvDatei csvDatei;

  private Boolean nutzeTrennzeichenNachLetztemFeld;

  public DefaultCsvFileKonfiguration(CsvDatei csvDatei, FileFormat fileFormat) {
    super(fileFormat);

    this.csvDatei = csvDatei;
    this.nutzeTrennzeichenNachLetztemFeld = false;
  }

  @Override
  public CsvZeichensatz getZeichensatz() {
    return csvDatei.getZeichensatz();
  }

  @Override
  public Boolean isWithHeader() {
    return getAnzahlKopfzeilen() > 0L;
  }

  @Override
  public Long getAnzahlKopfzeilen() {
    return csvDatei.getAnzahlKopfzeilen();
  }

  @Override
  public CsvTrennzeichen getTrennzeichen() {
    return csvDatei.getTrennzeichen();
  }

  @Override
  public CsvAnfuehrungszeichen getAnfuehrungszeichen() {
    return csvDatei.getAnfuehrungszeichen();
  }

  @Override
  public CsvMaskierungszeichen getMaskierungszeichen() {
    return csvDatei.getMaskierungszeichen();
  }

  @Override
  public Boolean isNutzeTrennzeichenNachLetztemFeld() {
    return nutzeTrennzeichenNachLetztemFeld;
  }

  public void setNutzeTrennzeichenNachLetztemFeld(Boolean nutzeTrennzeichenNachLetztemFeld) {
    this.nutzeTrennzeichenNachLetztemFeld = nutzeTrennzeichenNachLetztemFeld;
  }
}
