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

import java.util.Arrays;
import java.util.List;

import de.ivu.elect.business.stimmeingabe.control.plausi.GruppeListenstimmenAnteilComparedToVorperiodeKleinerGleichSchwellwertCustomData;
import de.ivu.elect.business.stimmeingabe.entity.GruppeStimmenAnteilComparedToVorperiodeSchwellwertTyp;
import de.ivu.elect.business.stimmeingabe.entity.StimmeingabePlausiKonfigurationPropertyContext;
import de.ivu.elect.jee.presentation.dynamicform.AbstractEnumProperty;

public class GruppeListenstimmenAnteilComparedToVorperiodeKleinerGleichSchwellwertCustomDataSchwellwertTypProperty extends AbstractEnumProperty<GruppeStimmenAnteilComparedToVorperiodeSchwellwertTyp> {

  private final GruppeListenstimmenAnteilComparedToVorperiodeKleinerGleichSchwellwertCustomData customData;

  private final Long schwellwertId;

  private final StimmeingabePlausiKonfigurationPropertyContext context;

  private List<GruppeStimmenAnteilComparedToVorperiodeSchwellwertTyp> values;

  public GruppeListenstimmenAnteilComparedToVorperiodeKleinerGleichSchwellwertCustomDataSchwellwertTypProperty(GruppeListenstimmenAnteilComparedToVorperiodeKleinerGleichSchwellwertCustomData customData, Long schwellwertId, StimmeingabePlausiKonfigurationPropertyContext context) {
    this.customData = customData;
    this.schwellwertId = schwellwertId;
    this.context = context;
  }

  @Override
  public String getDefaultLabel() {
    return getMessage("GruppeListenstimmenAnteilComparedToVorperiodeKleinerGleichSchwellwertCustomData.schwellwert.typ.");
  }

  @Override
  public boolean getDefaultRequired() {
    return false;
  }

  @Override
  public GruppeStimmenAnteilComparedToVorperiodeSchwellwertTyp getValue() {
    return customData.getSchwellwert(schwellwertId).getSchwellwertTyp();
  }

  @Override
  public void setValue(GruppeStimmenAnteilComparedToVorperiodeSchwellwertTyp schwellwertTyp) {
    customData.setSchwellwertTyp(schwellwertId, schwellwertTyp);
  }

  @Override
  public List<GruppeStimmenAnteilComparedToVorperiodeSchwellwertTyp> getValues() {
    if (values == null) {
      values = Arrays.asList(GruppeStimmenAnteilComparedToVorperiodeSchwellwertTyp.values());
    }
    return values;
  }

  @Override
  protected Class<GruppeStimmenAnteilComparedToVorperiodeSchwellwertTyp> getEnumClass() {
    return GruppeStimmenAnteilComparedToVorperiodeSchwellwertTyp.class;
  }
}
