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

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

import javax.enterprise.inject.Specializes;
import javax.inject.Inject;

import de.ivu.elect.business.datei.boundary.DateiExportExtendedDAO;
import de.ivu.elect.business.datei.entity.DateiExport;
import de.ivu.elect.business.exchange.control.ImportExportStreamCreator;
import de.ivu.elect.jee.presentation.dynamictable.ColumnEntry;

@Specializes
public class NlDateiExportColumnBuilder extends DateiExportColumnBuilder {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient DateiExportExtendedDAO dateiExportExtendedDAO;

  @Inject
  private transient ImportExportStreamCreator streamCreator;

  private NlDateiExportHashColumn<DateiExport> nlDateiExportHashColumn;

  public NlDateiExportColumnBuilder() {
    super();
  }

  @Override
  protected void initColumns() {
    super.initColumns();

    nlDateiExportHashColumn = new NlDateiExportHashColumn<>(getMessages(), dateiExportExtendedDAO, streamCreator);
  }

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

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

    return result;
  }

}
