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

import java.util.List;

import javax.annotation.Nullable;

import org.apache.commons.lang3.StringUtils;

import de.ivu.elect.business.gruppe.entity.Gruppe;
import de.ivu.elect.business.stimmzettel.entity.Stimmzettel;
import de.ivu.elect.business.stimmzettel.entity.StimmzettelErfassungValidationEntry;
import de.ivu.elect.business.stimmzettel.entity.StimmzettelKopfdatum;
import de.ivu.elect.business.stimmzettel.entity.StimmzettelKopfdatumArt;


import static de.ivu.elect.business.stimmzettel.entity.StimmzettelErfassungValidationEntry.SUCCESS;
import static de.ivu.elect.business.stimmzettel.entity.StimmzettelErfassungValidationEntry.createWarn;

public class WertErforderlichStimmzettelKopfdatumValidator extends AbstractStimmzettelKopfdatumValidator {
  private static final long serialVersionUID = 1L;

  @Override
  public StimmzettelErfassungValidationEntry validiere(StimmzettelKopfdatumArt art, @Nullable Gruppe gruppe, List<StimmzettelKopfdatum> stimmzettelKopfdaten, List<Stimmzettel> stimmzettel) {

    if (art.isReadonly() || art.isSummeAusGruppen() && gruppe == null) {
      return SUCCESS;
    }

    String value = getValue(art, gruppe, stimmzettelKopfdaten);
    if (StringUtils.isBlank(value)) {
      return createWarn("wes.stimmzettel.validator.wert.erwartet");
    }

    return SUCCESS;
  }
}
