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;

public class NichtNegativZahlStimmzettelKopfdatumValidator extends AbstractStimmzettelKopfdatumValidator {

  private static final long serialVersionUID = 1L;

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

    if (StringUtils.isNotBlank(value)) {

      Long valueAsLong = getLongValue(art, gruppe, stimmzettelKopfdaten);
      if (valueAsLong == null || valueAsLong < 0) {

        return StimmzettelErfassungValidationEntry.createError("wes.stimmzettel.validator.wert.zahl.nicht.negativ");
      }
    }

    return StimmzettelErfassungValidationEntry.SUCCESS;
  }
}
