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

/**
 * Hilfsklasse, die nicht nur die Stimmen zaehlt, sonder sich auch merkt, wieviele Beiträe zu der Summe es gab. Das wird
 * verwendet, um zu unterscheiden, ob es keinen, nur einen oder mehr als einen Beitrag gegeben hat.
 */
public class Stimmenzaehler {

  private long anzahlStimmen;
  private long count;

  public Stimmenzaehler() {
    this(0, 0);
  }

  private Stimmenzaehler(long anzahlStimmen, long count) {
    this.anzahlStimmen = anzahlStimmen;
    this.count = count;
  }

  public Stimmenzaehler minus(Long abzuziehen) {
    if (abzuziehen == null) {
      return this;
    }
    return new Stimmenzaehler(anzahlStimmen - abzuziehen, count - 1);
  }

  public void add(long anzahlStimmen) {
    count++;
    this.anzahlStimmen += anzahlStimmen;
  }

  public Long get() {
    return count <= 0 ? null : anzahlStimmen;
  }

}
