
package de.ivu.elect.business.personenpruefung.control.wahlrecht;

import javax.enterprise.inject.Specializes;
import javax.inject.Inject;

import de.ivu.elect.business.kandidatur.entity.Kandidatur;
import de.ivu.elect.business.person.entity.Personendaten;
import de.ivu.elect.business.wahlausschuss.entity.Wahlausschussmitglied;

@Specializes
public class CorePersonendatenWahlrechtMatcherResolver extends PersonendatenWahlrechtMatcherResolver {

  private static final long serialVersionUID = 1L;

  @Inject
  protected KandidaturWahlrechtMatcher kandidaturWahlrechtMatcher;

  @Inject
  protected WahlausschussmitgliedWahlrechtMatcher wahlausschussmitgliedWahlrechtMatcher;

  public CorePersonendatenWahlrechtMatcherResolver() {
    super();
  }

  @Override
  public AbstractPersonendatenWahlrechtMatcher getMatcher(Personendaten personendaten) {
    if (personendaten.isInstanceOf(Kandidatur.class)) {
      return kandidaturWahlrechtMatcher;
    }

    if (personendaten.isInstanceOf(Wahlausschussmitglied.class)) {
      return wahlausschussmitgliedWahlrechtMatcher;
    }

    return super.getMatcher(personendaten);
  }
}
