
package de.ivu.elect.core.exchange.stimmen.csv;

import java.util.List;

import org.jsefa.csv.annotation.CsvDataType;
import org.jsefa.csv.annotation.CsvField;

import de.ivu.jsefa.CsvAttachedList;
import de.ivu.jsefa.CsvHeader;

@CsvDataType
public class ZweiStimmenCsvDTO extends AbstractStimmenCsvDTO {

  public static final int ZWEI_STIMMEN_ERSTE_POSITION = LETZTE_POSITION + 1;

  @CsvField(pos = ZWEI_STIMMEN_ERSTE_POSITION)
  @CsvHeader("Gültige Direktstimmen")
  private Long anzahlDirektstimmenGueltig;

  @CsvField(pos = ZWEI_STIMMEN_ERSTE_POSITION+1)
  @CsvHeader("Ungültige Direktstimmen")
  private Long anzahlDirektstimmenUngueltig;

  @CsvField(pos = ZWEI_STIMMEN_ERSTE_POSITION+2)
  @CsvHeader("Gültige Listenstimmen")
  private Long anzahlListenstimmenGueltig;

  @CsvField(pos = ZWEI_STIMMEN_ERSTE_POSITION+3)
  @CsvHeader("Ungültige Listenstimmen")
  private Long anzahlListenstimmenUngueltig;

  @CsvAttachedList(clazz = ZweiGruppeStimmenDTO.class)
  private List<ZweiGruppeStimmenDTO> politischeGruppenStimmen;

  @Override
  public Class<?> getSubDTOClass() {
    return ZweiGruppeStimmenDTO.class;
  }

  @Override
  public int getAnzahlSubDTO() {
    if (politischeGruppenStimmen==null){
      return 0;
    }

    return politischeGruppenStimmen.size();
  }

  public Long getAnzahlDirektstimmenGueltig() {
    return anzahlDirektstimmenGueltig;
  }

  public void setAnzahlDirektstimmenGueltig(Long anzahlDirektstimmenGueltig) {
    this.anzahlDirektstimmenGueltig = anzahlDirektstimmenGueltig;
  }

  public Long getAnzahlDirektstimmenUngueltig() {
    return anzahlDirektstimmenUngueltig;
  }

  public void setAnzahlDirektstimmenUngueltig(Long anzahlDirektstimmenUngueltig) {
    this.anzahlDirektstimmenUngueltig = anzahlDirektstimmenUngueltig;
  }

  public Long getAnzahlListenstimmenGueltig() {
    return anzahlListenstimmenGueltig;
  }

  public void setAnzahlListenstimmenGueltig(Long anzahlListenstimmenGueltig) {
    this.anzahlListenstimmenGueltig = anzahlListenstimmenGueltig;
  }

  public Long getAnzahlListenstimmenUngueltig() {
    return anzahlListenstimmenUngueltig;
  }

  public void setAnzahlListenstimmenUngueltig(Long anzahlListenstimmenUngueltig) {
    this.anzahlListenstimmenUngueltig = anzahlListenstimmenUngueltig;
  }

  public List<ZweiGruppeStimmenDTO> getPolitischeGruppenStimmen() {
    return politischeGruppenStimmen;
  }

  public void setPolitischeGruppenStimmen(List<ZweiGruppeStimmenDTO> gruppenStimmen) {
    this.politischeGruppenStimmen = gruppenStimmen;
  }
}
