
package de.ivu.elect.dokumente;

import java.io.Serializable;

import de.ivu.document.generator.template.annotations.DocumentMethod;
import de.ivu.document.generator.template.annotations.DocumentParam;

/**
 * Zähler für laufende Nummern
 *
 * Neue Methoden auch in Confluence (https://support.elect-it.com/wiki/display/ELECT/Spezielle+Objekte) und im Handbuch
 * (L:\Wahlen_neueStruktur\Handbücher\Dokumente\Erstellen und Anpassen von Dokumentvorlagen für IVU.elect) ergänzen! gab
 */
public class DokumentCounter implements Serializable {

  private long count = 0;

  @DocumentMethod
  public String reset() {
    count = 0L;
    return "";
  }

  @DocumentMethod
  public Long value() {
    return count;
  }

  @DocumentMethod
  public Long next() {
    count++;
    return count;
  }

  @DocumentMethod
  public String increment() {
    count++;
    return "";
  }

  @DocumentMethod
  public String set(@DocumentParam("count") Long count) {
    this.count = count;
    return "";
  }

  @DocumentMethod
  public boolean isEven() {
    return count % 2 == 0;
  }

  @DocumentMethod
  public boolean isOdd() {
    return !isEven();
  }

  @Override
  public String toString() {
    return Long.toString(value());
  }
}
