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

import java.util.List;

import javax.inject.Inject;
import javax.inject.Named;

import de.ivu.elect.business.kandidatur.entity.Kandidatur;
import de.ivu.elect.business.wahlvorschlag.entity.Wahlvorschlag;
import de.ivu.elect.jee.entity.EagerLoadingCollector;
import de.ivu.elect.jee.presentation.dynamictable.ColumnEntry;
import de.ivu.elect.presentation.table.AbstractColumnEntry;
import de.ivu.elect.presentation.wahlvorschlag.table.AbstractWahlvorschlagColumn;

@Named(DirektkandidaturColumnBuilder.COMPONENT_NAME)
public class DirektkandidaturColumnBuilder extends AbstractKandidaturColumnBuilder {

  private static final long serialVersionUID = 1L;

  public static final String COMPONENT_NAME = "direktkandidaturColumnBuilder";

  @Inject
  private transient BasisDirektkandidaturColumnBuilder basisDirektkandidaturColumnBuilder;

  public DirektkandidaturColumnBuilder() {
    super();
  }

  @Override
  protected void initColumns() {
    getBasisDirektkandidaturColumnBuilder().initColumns();
  }

  @Override
  protected void addColumnEntriesGruppeGebiet(List<ColumnEntry< ? super Kandidatur>> result) {
    getBasisDirektkandidaturColumnBuilder().addColumnEntriesGruppeGebiet(result);
  }

  @Override
  protected void addColumnEntriesStimmzetteldaten(List<ColumnEntry< ? super Kandidatur>> result) {
    getBasisDirektkandidaturColumnBuilder().addColumnEntriesStimmzetteldaten(result);
  }

  @Override
  protected void addColumnEntriesKandidaturdaten(List<ColumnEntry< ? super Kandidatur>> result) {
    getBasisDirektkandidaturColumnBuilder().addColumnEntriesKandidaturdaten(result);
  }

  @Override
  protected void addColumnEntriesPersonendaten(List<ColumnEntry< ? super Kandidatur>> result) {
    getBasisDirektkandidaturColumnBuilder().addColumnEntriesPersonendaten(result);
  }

  @Override
  protected void addColumnEntriesBeschaeftigungsdaten(List<ColumnEntry< ? super Kandidatur>> result) {
    getBasisDirektkandidaturColumnBuilder().addColumnEntriesBeschaeftigungsdaten(result);
  }

  @Override
  protected void addColumnEntriesAnschrift(List<ColumnEntry< ? super Kandidatur>> result) {
    getBasisDirektkandidaturColumnBuilder().addColumnEntriesAnschrift(result);
  }

  @Override
  protected void addColumnEntriesGewaehlt(List<ColumnEntry< ? super Kandidatur>> result) {
    getBasisDirektkandidaturColumnBuilder().addColumnEntriesGewaehlt(result);
  }

  @Override
  protected void addColumnEntriesVerknuepfungen(List<ColumnEntry< ? super Kandidatur>> result) {
    getBasisDirektkandidaturColumnBuilder().addColumnEntriesVerknuepfungen(result);
  }

  @Override
  protected void addColumnEntriesZulassungspruefung(List<ColumnEntry< ? super Kandidatur>> result) {
    getBasisDirektkandidaturColumnBuilder().addColumnEntriesZulassungspruefung(result);
  }

  protected AbstractColumnEntry<Kandidatur> getDirektkandidaturStatusColumn() {
    return getBasisDirektkandidaturColumnBuilder().getDirektkandidaturStatusColumn();
  }

  protected AbstractColumnEntry<Kandidatur> getDirektkandidaturNameVollstaendigAnzeigeColumn() {
    return getBasisDirektkandidaturColumnBuilder().getDirektkandidaturNameVollstaendigAnzeigeColumn();
  }

  protected AbstractColumnEntry<Kandidatur> getDirektkandidaturAkademischerGradColumn() {
    return getBasisDirektkandidaturColumnBuilder().getDirektkandidaturAkademischerGradColumn();
  }

  protected AbstractColumnEntry<Kandidatur> getDirektkandidaturTitelColumn() {
    return getBasisDirektkandidaturColumnBuilder().getDirektkandidaturTitelColumn();
  }

  protected AbstractColumnEntry<Kandidatur> getDirektkandidaturFamiliennameColumn() {
    return getBasisDirektkandidaturColumnBuilder().getDirektkandidaturFamiliennameColumn();
  }

  protected AbstractColumnEntry<Kandidatur> getDirektkandidaturFamiliennameBestandteilColumn() {
    return getBasisDirektkandidaturColumnBuilder().getDirektkandidaturFamiliennameBestandteilColumn();
  }

  protected AbstractColumnEntry<Kandidatur> getDirektkandidaturVornamenColumn() {
    return getBasisDirektkandidaturColumnBuilder().getDirektkandidaturVornamenColumn();
  }

  protected AbstractColumnEntry<Kandidatur> getDirektkandidaturGeburtsdatumColumn() {
    return getBasisDirektkandidaturColumnBuilder().getDirektkandidaturGeburtsdatumColumn();
  }

  protected AbstractColumnEntry<Kandidatur> getDirektkandidaturGeschlechtColumn() {
    return getBasisDirektkandidaturColumnBuilder().getDirektkandidaturGeschlechtColumn();
  }

  protected AbstractColumnEntry<Kandidatur> getDirektkandidaturBerufColumn() {
    return getBasisDirektkandidaturColumnBuilder().getDirektkandidaturBerufColumn();
  }

  protected AbstractColumnEntry<Kandidatur> getDirektkandidaturBerufUnformatiertColumn() {
    return getBasisDirektkandidaturColumnBuilder().getDirektkandidaturBerufUnformatiertColumn();
  }

  protected AbstractColumnEntry<Kandidatur> getDirektkandidaturBerufsschluesselColumn() {
    return getBasisDirektkandidaturColumnBuilder().getDirektkandidaturBerufsschluesselColumn();
  }

  protected AbstractColumnEntry<Kandidatur> getDirektkandidaturEhrenamtColumn() {
    return getBasisDirektkandidaturColumnBuilder().getDirektkandidaturEhrenamtColumn();
  }

  protected AbstractColumnEntry<Kandidatur> getDirektkandidaturKuenstlernameOrdensnameColumn() {
    return getBasisDirektkandidaturColumnBuilder().getDirektkandidaturKuenstlernameOrdensnameColumn();
  }

  protected AbstractColumnEntry<Kandidatur> getDirektkandidaturZusammengestezteAnschriftColumn() {
    return getBasisDirektkandidaturColumnBuilder().getDirektkandidaturZusammengestezteAnschriftColumn();
  }

  protected AbstractColumnEntry<Kandidatur> getDirektkandidaturStrasseColumn() {
    return getBasisDirektkandidaturColumnBuilder().getDirektkandidaturStrasseColumn();
  }

  protected AbstractColumnEntry<Kandidatur> getDirektkandidaturHausnummerColumn() {
    return getBasisDirektkandidaturColumnBuilder().getDirektkandidaturHausnummerColumn();
  }

  protected AbstractColumnEntry<Kandidatur> getDirektkandidaturHausnummerzusatzColumn() {
    return getBasisDirektkandidaturColumnBuilder().getDirektkandidaturHausnummerzusatzColumn();
  }

  protected AbstractColumnEntry<Kandidatur> getDirektkandidaturWohnungsnummerColumn() {
    return getBasisDirektkandidaturColumnBuilder().getDirektkandidaturWohnungsnummerColumn();
  }

  protected AbstractColumnEntry<Kandidatur> getDirektkandidaturPlzColumn() {
    return getBasisDirektkandidaturColumnBuilder().getDirektkandidaturPlzColumn();
  }

  protected AbstractColumnEntry<Kandidatur> getDirektkandidaturWohnortColumn() {
    return getBasisDirektkandidaturColumnBuilder().getDirektkandidaturWohnortColumn();
  }

  protected AbstractColumnEntry<Kandidatur> getDirektkandidaturOrtsteilColumn() {
    return getBasisDirektkandidaturColumnBuilder().getDirektkandidaturOrtsteilColumn();
  }

  protected AbstractColumnEntry<Kandidatur> getDirektkandidaturZustellanweisungColumn() {
    return getBasisDirektkandidaturColumnBuilder().getDirektkandidaturZustellanweisungColumn();
  }

  protected AbstractColumnEntry<Kandidatur> getDirektkandidaturGewaehltVorperiodeColumn() {
    return getBasisDirektkandidaturColumnBuilder().getDirektkandidaturGewaehltVorperiodeColumn();
  }

  protected AbstractColumnEntry<Kandidatur> getDirektkandidaturVerknuepfungColumn() {
    return getBasisDirektkandidaturColumnBuilder().getDirektkandidaturVerknuepfungColumn();
  }

  @Override
  public void collectEagerLoadings(EagerLoadingCollector<Kandidatur> eagerLoadingCollector) {
    getBasisDirektkandidaturColumnBuilder().collectEagerLoadings(eagerLoadingCollector);

    super.collectEagerLoadings(eagerLoadingCollector);
  }

  private BasisDirektkandidaturColumnBuilder getBasisDirektkandidaturColumnBuilder() {
    return basisDirektkandidaturColumnBuilder;
  }

  protected AbstractColumnEntry<Kandidatur> convertToDirektkandidaturColumn(AbstractWahlvorschlagColumn< ? super Wahlvorschlag> column) {
    return getBasisDirektkandidaturColumnBuilder().convertToDirektkandidaturColumn(column);
  }
}
