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

import javax.inject.Inject;

import de.ivu.elect.business.kandidatur.boundary.KandidaturExtendedDAO;
import de.ivu.elect.business.kandidatur.entity.Kandidatur;
import de.ivu.elect.business.security.UseCasePermission;
import de.ivu.elect.presentation.kandidatur.KandidaturDateiExportSearchView;
import de.ivu.elect.presentation.kandidatur.menu.KandidaturSearchMenuItemEntry;
import de.ivu.elect.presentation.person.action.AbstractPersonendatenPersonendatenDateiExportSearchAction;
import de.ivu.elect.presentation.security.AbstractGebietSecurity;

public class KandidaturDateiExportSearchAction extends AbstractPersonendatenPersonendatenDateiExportSearchAction<Kandidatur> {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient KandidaturExtendedDAO kandidaturExtendedDAO;

  @Inject
  private transient KandidaturSearchMenuItemEntry kandidaturSearchMenuItemEntry;

  public KandidaturDateiExportSearchAction() {
    super();
  }

  @Override
  protected UseCasePermission getRequiredPersonendatenPermission() {
    return kandidaturSearchMenuItemEntry.getUseCasePermission();
  }

  @Override
  public AbstractGebietSecurity getGebietSecurity() {
    return kandidaturSearchMenuItemEntry.getGebietSecurity();
  }

  @Override
  protected String getGoToSearchViewId() {
    return KandidaturDateiExportSearchView.VIEW_ID;
  }

  @Override
  protected Kandidatur attach(Kandidatur kandidatur) {
    return kandidaturExtendedDAO.attach(kandidatur);
  }
}
