
package de.ivu.elect.business.stimmeingabe.entity;

import static org.apache.commons.lang3.StringUtils.isNotBlank;

import java.util.ArrayList;
import java.util.Collection;

public abstract class AbstractZwischensummeEingabe extends Stimmeingabe implements ZwischensummeEingabeBase {

  private static final long serialVersionUID = 1L;

  private transient Collection<Stimmeingabe> abhaengigeStimmeingaben = new ArrayList<>();

  public AbstractZwischensummeEingabe() {
    super();
  }

  public void addAbhaengigeStimmeingabe(Stimmeingabe stimmeingabe) {
    abhaengigeStimmeingaben.add(stimmeingabe);
  }

  public void addAbhaengigeStimmeingaben(Collection<Stimmeingabe> stimmeingaben) {
    abhaengigeStimmeingaben.addAll(stimmeingaben);
  }

  public Collection<Stimmeingabe> getAbhaengigeStimmeingaben() {
    return abhaengigeStimmeingaben;
  }

  @Override
  public boolean isZwischensummeEingabe() {
    return true;
  }

  @Override
  public boolean isErgebnisrelevant() {
    return false; // Zwischensummen müssen nie mit in das Ergebnis übernommen werden
  }

  public boolean hasSummenNameAnzeigbar() {
    return isNotBlank(getSummenName()) && getSummenIndex() != null && getSummenIndex() >= 0;
  }

  public boolean isSummenIndex(Long summenIndex) {
    return summenIndex != null && summenIndex.equals(getSummenIndex());
  }
}
