package de.ivu.elect.presentation.wahlbeteiligung.table;

import java.util.ArrayList;
import java.util.List;

import javax.inject.Named;

import de.ivu.elect.business.wahlbeteiligung.entity.WahlbeteiligungVerlauf;
import de.ivu.elect.jee.presentation.dynamictable.AbstractColumnBuilder;
import de.ivu.elect.jee.presentation.dynamictable.ColumnEntry;

@Named(WahlbeteiligungVerlaufColumnBuilder.COMPONENT_NAME)
public class WahlbeteiligungVerlaufColumnBuilder extends AbstractColumnBuilder<WahlbeteiligungVerlauf> {

  public static final String COMPONENT_NAME = "wahlbeteiligungVerlaufColumnBuilder";

  private static final long serialVersionUID = 1L;

  private AbstractWahlbeteiligungVerlaufColumn<WahlbeteiligungVerlauf> wahlbeteiligungVerlaufDatumColumn;

  private AbstractWahlbeteiligungVerlaufColumn<WahlbeteiligungVerlauf> wahlbeteiligungVerlaufNameColumn;

  private AbstractWahlbeteiligungVerlaufColumn<WahlbeteiligungVerlauf> wahlbeteiligungVerlaufTypColumn;

  private AbstractWahlbeteiligungVerlaufColumn<WahlbeteiligungVerlauf> wahlbeteiligungVerlaufStatusColumn;

  private AbstractWahlbeteiligungVerlaufColumn<WahlbeteiligungVerlauf> wahlbeteiligungVerlaufBemerkungColumn;

  public WahlbeteiligungVerlaufColumnBuilder() {
    super();
  }

  @Override
  protected void initColumns() {
    wahlbeteiligungVerlaufDatumColumn = AbstractWahlbeteiligungVerlaufColumn.createWahlbeteiligungVerlaufDatumColumn(getMessages());
    wahlbeteiligungVerlaufNameColumn = AbstractWahlbeteiligungVerlaufColumn.createWahlbeteiligungVerlaufNameColumn(getMessages());
    wahlbeteiligungVerlaufTypColumn = AbstractWahlbeteiligungVerlaufColumn.createWahlbeteiligungVerlaufTypColumn(getMessages());
    wahlbeteiligungVerlaufStatusColumn = AbstractWahlbeteiligungVerlaufColumn.createWahlbeteiligungVerlaufStatusColumn(getMessages());
    wahlbeteiligungVerlaufBemerkungColumn = AbstractWahlbeteiligungVerlaufColumn.createWahlbeteiligungVerlaufBemerkungColumn(getMessages());
  }

  @Override
  protected List<ColumnEntry<? super WahlbeteiligungVerlauf>> getColumnEntriesSorted() {
    List<ColumnEntry<? super WahlbeteiligungVerlauf>> result = new ArrayList<>();
    result.add(wahlbeteiligungVerlaufDatumColumn);
    result.add(wahlbeteiligungVerlaufNameColumn);
    result.add(wahlbeteiligungVerlaufTypColumn);
    result.add(wahlbeteiligungVerlaufStatusColumn);
    result.add(wahlbeteiligungVerlaufBemerkungColumn);
    return result;
  }
}
