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

import java.util.Collection;

import de.ivu.elect.jee.entity.Entity;
import de.ivu.elect.jee.entity.EntityLongPK;
import de.ivu.elect.jee.entity.tk.EntityTK;
import de.ivu.elect.jee.entity.tk.EntityUK;

/**
 * Enthält ein oder mehrere fachlich zusammengehörige {@link Stimmeingabe}-Objekte sowie verknüpfte Informationen und Comfort-Methoden.
 */
public interface StimmeingabeStimmen extends Entity<EntityLongPK, EntityUK> {

  String STYLE_CLASS_HIDDEN = "hidden";

  String STYLE_CLASS_NUMBER_LETTER = "ui-inputtext-number-letter";

  String STYLE_CLASS_NUMBER = "ui-inputtext-number";

  String STYLE_CLASS_SUM = "ui-datatable-sum";

  String STYLE_CLASS_EMPTY = "ui-datatable-empty";

  String STYLE_CLASS_SEPARATOR = "ui-datatable-separator";

  String STYLE_CLASS_ERROR = "ui-state-error";

  String STYLE_CLASS_WARNING = "ui-state-warn";

  boolean hasTk(EntityTK tk);

  String getKennung();

  String getBezeichnung();

  boolean isPolitischeGruppe();

  Collection<Stimmeingabe> getStimmeingaben();

  Collection<Stimmeingabefehler> getStimmeingabefehlerLetzterErgebniseingang();

  String getRowStyleClass();
}
