package de.ivu.elect.business.gebietsbaum.control;

import java.io.Serializable;

import javax.inject.Inject;

import de.ivu.elect.business.gebietsbaum.boundary.AbstractWahldurchfuehrungsgebietDAO;
import de.ivu.elect.business.gebietsbaum.boundary.WasGebietEditHelper;
import de.ivu.elect.business.wahl.entity.Wahl;

public abstract class AbstractAWerteAktualisiererFactory implements Serializable {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient WasGebietEditHelper wasGebietEditHelper;

  public AWerteAktualisierer createAWerteAktualisierer(Wahl wahl) {
    return new DefaultAWerteAktualisierer(wahl, getWahldurchfuehrungsgebietDAO(), wasGebietEditHelper.getUmgangHinterlegteAWerte(wahl));
  }

  protected abstract AbstractWahldurchfuehrungsgebietDAO getWahldurchfuehrungsgebietDAO();

}
