
package de.ivu.elect.sitzberechnung.verteilung;

public class AbstractTeilnehmer<T> implements Teilnehmer {

  private final T object;

  private final long anzahlStimmen;

  public AbstractTeilnehmer(T object, long anzahlStimmen) {
    super();

    this.object = object;

    this.anzahlStimmen = anzahlStimmen;
  }

  @Override
  public long getStimmen() {
    return anzahlStimmen;
  }

  public T getObject() {
    return object;
  }

  @Override
  public String toString() {
    return this.getClass().getSimpleName() + "(" + displayObject() + ", " + getStimmen() + ")";
  }

  protected String displayObject() {
    return getObject().toString();
  }
}
