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

import java.util.List;

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

import de.ivu.elect.business.benutzerverwaltung.boundary.BenutzerExporter;
import de.ivu.elect.business.benutzerverwaltung.control.BenutzerExchangeContext;
import de.ivu.elect.business.benutzerverwaltung.entity.Benutzer;
import de.ivu.elect.business.exchange.control.AbstractExporter;
import de.ivu.elect.business.security.UseCasePermission;
import de.ivu.elect.presentation.View;
import de.ivu.elect.presentation.exchange.AbstractExportSearchView;
import de.ivu.elect.presentation.exchange.ExportDescription;

@Named(BenutzerExportSearchView.COMPONENT_NAME)
@View(viewId = BenutzerExportSearchView.VIEW_ID, useCase = UseCasePermission.BENUTZER_EXPORTIEREN)
public class BenutzerExportSearchView extends AbstractExportSearchView<List<Benutzer>, BenutzerExchangeContext> {

  private static final long serialVersionUID = 1L;

  public static final String COMPONENT_NAME = "benutzerExportSearchView";

  public static final String VIEW_ID = "/benutzerverwaltung/benutzer-export-search.xhtml";

  @Inject
  private transient BenutzerExporter benutzerExporter;

  @Inject
  private transient BenutzerExportDescription benutzerExportDescription;

  public BenutzerExportSearchView() {
    super();
  }

  @Override
  protected AbstractExporter<List<Benutzer>, BenutzerExchangeContext> getExporter() {
    return benutzerExporter;
  }

  @Override
  protected BenutzerExchangeContext getContext() {
    return new BenutzerExchangeContext(getMandant(), getBenutzer(), true);
  }

  @Override
  public ExportDescription getExportDescription() {
    return benutzerExportDescription;
  }
}
