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

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

import javax.inject.Named;

import de.ivu.elect.business.person.entity.PersonendatenDateiExport;
import de.ivu.elect.jee.presentation.dynamictable.AbstractColumnBuilder;
import de.ivu.elect.jee.presentation.dynamictable.ColumnEntry;

@Named(PersonendatenDateiExportColumnBuilder.COMPONENT_NAME)
public class PersonendatenDateiExportColumnBuilder extends AbstractColumnBuilder<PersonendatenDateiExport> {

  private static final long serialVersionUID = 1L;

  public static final String COMPONENT_NAME = "personendatenDateiExportColumnBuilder";

  private AbstractPersonendatenDateiExportColumn<PersonendatenDateiExport> personendatenDateiExportBenutzerkennungColumn;

  private AbstractPersonendatenDateiExportColumn<PersonendatenDateiExport> personendatenDateiExportDateiArtColumn;

  private AbstractPersonendatenDateiExportColumn<PersonendatenDateiExport> personendatenDateiExportDateinameColumn;

  private AbstractPersonendatenDateiExportColumn<PersonendatenDateiExport> personendatenDateiExportErstellungszeitpunktColumn;

  private AbstractPersonendatenDateiExportColumn<PersonendatenDateiExport> personendatenDateiExportDokumentVorlageNameColumn;

  private AbstractPersonendatenDateiExportColumn<PersonendatenDateiExport> personendatenDateiExportDokumentVorlageArtColumn;

  private AbstractPersonendatenDateiExportColumn<PersonendatenDateiExport> personendatenDateiExportDokumentVorlageDateinameColumn;

  private AbstractPersonendatenDateiExportColumn<PersonendatenDateiExport> personendatenDateiExportBemerkungColumn;

  public PersonendatenDateiExportColumnBuilder() {
    super();
  }

  @Override
  protected void initColumns() {
    personendatenDateiExportBenutzerkennungColumn = AbstractPersonendatenDateiExportColumn.createPersonendatenDateiExportBenutzerkennungColumn(getMessages());

    personendatenDateiExportDateiArtColumn = AbstractPersonendatenDateiExportColumn.createPersonendatenDateiExportDateiArtColumn(getMessages());
    personendatenDateiExportDateinameColumn = AbstractPersonendatenDateiExportColumn.createPersonendatenDateiExportDateinameColumn(getMessages());
    personendatenDateiExportErstellungszeitpunktColumn = AbstractPersonendatenDateiExportColumn.createPersonendatenDateiExportErstellungszeitpunktColumn(getMessages());

    personendatenDateiExportDokumentVorlageNameColumn = AbstractPersonendatenDateiExportColumn.createPersonendatenDateiExportDokumentVorlageNameColumn(getMessages());
    personendatenDateiExportDokumentVorlageArtColumn = AbstractPersonendatenDateiExportColumn.createPersonendatenDateiExportDokumentVorlageArtColumn(getMessages());
    personendatenDateiExportDokumentVorlageDateinameColumn = AbstractPersonendatenDateiExportColumn.createPersonendatenDateiExportDokumentVorlageDateinameColumn(getMessages());

    personendatenDateiExportBemerkungColumn = AbstractPersonendatenDateiExportColumn.createPersonendatenDateiExportBemerkungColumn(getMessages());
  }

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

    result.add(personendatenDateiExportBenutzerkennungColumn);

    result.add(personendatenDateiExportDateiArtColumn);
    result.add(personendatenDateiExportDateinameColumn);
    result.add(personendatenDateiExportErstellungszeitpunktColumn);

    result.add(personendatenDateiExportDokumentVorlageNameColumn);
    result.add(personendatenDateiExportDokumentVorlageArtColumn);
    result.add(personendatenDateiExportDokumentVorlageDateinameColumn);

    result.add(personendatenDateiExportBemerkungColumn);

    return result;
  }
}
