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

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

import javax.inject.Named;

import de.ivu.elect.business.niederschrift.entity.NiederschriftKorrektur;
import de.ivu.elect.jee.presentation.dynamictable.ColumnEntry;

@Named(NiederschriftKorrekturColumnBuilder.COMPONENT_NAME)
public class NiederschriftKorrekturColumnBuilder extends AbstractNiederschriftColumnBuilder<NiederschriftKorrektur> {

  private static final long serialVersionUID = 1L;

  public static final String COMPONENT_NAME = "niederschriftKorrekturColumnBuilder";

  private ColumnEntry< ? super NiederschriftKorrektur> niederschriftKorrekturZeitstempelColumn;

  private ColumnEntry< ? super NiederschriftKorrektur> niederschriftKorrekturErfasserColumn;

  // ELECT-8950 private ColumnEntry<? super NiederschriftKorrektur> niederschriftArtColumn;

  private ColumnEntry< ? super NiederschriftKorrektur> niederschriftKorrekturNiederschriftKorrekturArtColumn;

  private ColumnEntry< ? super NiederschriftKorrektur> niederschriftKorrekturNiederschriftWahldurchfuehrungsgebietColumn;

  private ColumnEntry< ? super NiederschriftKorrektur> niederschriftKorrekturBeschreibungColumn;

  public NiederschriftKorrekturColumnBuilder() {
    super();
  }

  @Override
  protected void initColumns() {
    niederschriftKorrekturZeitstempelColumn = AbstractNiederschriftKorrekturColumn.createNiederschriftKorrekturZeitstempelColumn(getMessages());
    niederschriftKorrekturNiederschriftWahldurchfuehrungsgebietColumn = new NiederschriftKorrekturNiederschriftWahldurchfuehrungsgebietColumn(getMessages(), getNiederschriftFormatter());
    niederschriftKorrekturNiederschriftKorrekturArtColumn = AbstractNiederschriftKorrekturColumn.createNiederschriftKorrekturNiederschriftKorrekturArtColumn(getMessages());
    niederschriftKorrekturErfasserColumn = AbstractNiederschriftKorrekturColumn.createNiederschriftKorrekturErfasserColumn(getMessages());
    niederschriftKorrekturBeschreibungColumn = AbstractNiederschriftKorrekturColumn.createNiederschriftKorrekturBeschreibungColumn(getMessages());
  }

  @Override
  protected List<ColumnEntry< ? super NiederschriftKorrektur>> getColumnEntriesSorted() {
    List<ColumnEntry< ? super NiederschriftKorrektur>> result = new ArrayList<>();

    result.add(niederschriftKorrekturZeitstempelColumn);
    result.add(niederschriftKorrekturNiederschriftWahldurchfuehrungsgebietColumn);
    result.add(niederschriftKorrekturNiederschriftKorrekturArtColumn);
    result.add(niederschriftKorrekturErfasserColumn);
    result.add(niederschriftKorrekturBeschreibungColumn);

    return result;
  }
}
