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

import static java.util.Arrays.asList;

import java.util.List;

import de.ivu.elect.business.wahlvorschlagsperson.entity.WahlvorschlagsPerson;
import de.ivu.elect.business.wahlvorschlagsperson.entity.WahlvorschlagsPersonTyp;
import de.ivu.elect.jee.presentation.dynamicform.FormBuilder;

/*
 * NOTE ELECTMUC-521, dass extern abgeglichene Personendaten nicht mehr bearbeitbar sind. Falls die extern abgeglichene Personendaten abweichen, müssen diese manuell erfasst werden.
 */
public class AufstellungsversammlungMitunterzeichnerViewFormBuilder extends AbstractWahlvorschlagsPersonViewFormBuilder {

  private static final long serialVersionUID = 1L;

  public AufstellungsversammlungMitunterzeichnerViewFormBuilder() {
    super();
  }

  @Override
  public List<WahlvorschlagsPersonTyp> getRelevantWahlvorschlagsPersonTypen() {
    return asList(WahlvorschlagsPersonTyp.AUFSTELLUNGSVERSAMMLUNG_LEITER, WahlvorschlagsPersonTyp.AUFSTELLUNGSVERSAMMLUNG_MITUNTERZEICHNER);
  }

  @Override
  public void addProperties(FormBuilder formBuilder, WahlvorschlagsPerson aufstellungsversammlungMitunterzeichner, boolean propertiesReadonly) {
    boolean readonlyOrPersonenregisterAbgeglichen = propertiesReadonly || isPersonenregisterAbgeglichenAndNotPersonenregisterAbgleichUeberschreibbar(aufstellungsversammlungMitunterzeichner);

    addWahlvorschlagsPersonProperties(formBuilder, aufstellungsversammlungMitunterzeichner, readonlyOrPersonenregisterAbgeglichen);
    addWahlvorschlagsPersonPersonendatenProperties(formBuilder, aufstellungsversammlungMitunterzeichner, readonlyOrPersonenregisterAbgeglichen);
    addWahlvorschlagsPersonAnschriftProperties(formBuilder, aufstellungsversammlungMitunterzeichner, aufstellungsversammlungMitunterzeichner.getAnschrift(), readonlyOrPersonenregisterAbgeglichen);
  }
}
