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

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

import javax.inject.Named;

import de.ivu.elect.business.datei.entity.DateiExport;
import de.ivu.elect.jee.presentation.dynamictable.AbstractColumnBuilder;
import de.ivu.elect.jee.presentation.dynamictable.ColumnEntry;
import de.ivu.elect.presentation.datei.table.AbstractDateiExportColumn;

@Named(DateiExportColumnBuilder.COMPONENT_NAME)
public class DateiExportColumnBuilder extends AbstractColumnBuilder<DateiExport> {

  private static final long serialVersionUID = 1L;

  public static final String COMPONENT_NAME = "dateiExportColumnBuilder";

  protected AbstractDateiExportColumn<DateiExport> dateiExportDateiErstellungszeitpunktColumn;

  protected AbstractDateiExportColumn<DateiExport> dateiExportDateiOriginalDateinameColumn;

  protected AbstractDateiExportColumn<DateiExport> dateiExportDateiFileTypeColumn;

  protected AbstractDateiExportColumn<DateiExport> dateiExportDateiFormatColumn;

  public DateiExportColumnBuilder() {
    super();
  }

  @Override
  protected void initColumns() {
    dateiExportDateiErstellungszeitpunktColumn = new DateiExportDateiErstellungszeitpunktColumn(getMessages());
    dateiExportDateiOriginalDateinameColumn = new DateiExportDateiOriginalDateinameColumn(getMessages());
    dateiExportDateiFileTypeColumn = new DateiExportDateiFileTypeColumn(getMessages());
    dateiExportDateiFormatColumn = new DateiExportDateiFormatColumn(getMessages());
  }

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

    result.add(dateiExportDateiErstellungszeitpunktColumn);
    result.add(dateiExportDateiOriginalDateinameColumn);
    result.add(dateiExportDateiFileTypeColumn);
    result.add(dateiExportDateiFormatColumn);

    return result;
  }
}
