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

import javax.inject.Inject;

import de.ivu.elect.business.security.UseCasePermission;
import de.ivu.elect.business.wahlvorschlagsperson.boundary.WahlvorschlagsPersonExtendedDAO;
import de.ivu.elect.business.wahlvorschlagsperson.entity.WahlvorschlagsPerson;
import de.ivu.elect.presentation.person.action.AbstractPersonendatenPersonendatenDateiExportSearchAction;
import de.ivu.elect.presentation.security.AbstractGebietSecurity;
import de.ivu.elect.presentation.wahlvorschlagsperson.WahlvorschlagsPersonDateiExportSearchView;
import de.ivu.elect.presentation.wahlvorschlagsperson.menu.WahlvorschlagsPersonSearchMenuItemEntry;

public class WahlvorschlagsPersonDateiExportSearchAction extends AbstractPersonendatenPersonendatenDateiExportSearchAction<WahlvorschlagsPerson> {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient WahlvorschlagsPersonExtendedDAO wahlvorschlagsPersonExtendedDAO;

  @Inject
  private transient WahlvorschlagsPersonSearchMenuItemEntry wahlvorschlagsPersonSearchMenuItemEntry;

  public WahlvorschlagsPersonDateiExportSearchAction() {
    super();
  }

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

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

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

  @Override
  protected WahlvorschlagsPerson attach(WahlvorschlagsPerson wahlvorschlagsPerson) {
    return wahlvorschlagsPersonExtendedDAO.attach(wahlvorschlagsPerson);
  }
}
