
package de.ivu.elect.dokumente.wahlvorschlag;

import de.ivu.document.generator.template.annotations.DocumentSimpleField;
import de.ivu.elect.business.gruppe.entity.Gruppe;

public class GruppeDokument extends AbstractGruppeDokument {

  private static final long serialVersionUID = 1L;

  public static final GruppeDokument EMPTY_OBJECT = new GruppeDokument();

  private final Gruppe gruppe;

  /**
   * @deprecated
   * @see AbstractGruppeDokument#privilegiert
   */
  @Deprecated
  @DocumentSimpleField("Privilegiert (Legacy)")
  public final boolean priviligiert;

  @DocumentSimpleField("IstPartei")
  public final boolean partei;

  @DocumentSimpleField("IstEinzelbewerber")
  public final boolean einzelbewerber;

  @DocumentSimpleField("IstReferendumVorlage")
  public final boolean referendumVorlage;

  @DocumentSimpleField("IstWaehlergruppe")
  public final boolean waehlergruppe;

  @DocumentSimpleField("IstVereinigung")
  public final boolean vereinigung;

  public GruppeDokument() {
    this(null);
  }

  public GruppeDokument(Gruppe gruppe) {
    super(gruppe);

    this.gruppe = gruppe;

    if (gruppe == null) {
      this.partei = false;
      this.einzelbewerber = false;
      this.referendumVorlage = false;
      this.waehlergruppe = false;
      this.vereinigung = false;
    } else {
      this.partei = gruppe.isPartei();
      this.einzelbewerber = gruppe.isEinzelbewerber();
      this.referendumVorlage = gruppe.isReferendumVorlage();
      this.waehlergruppe = gruppe.isWaehlergruppe();
      this.vereinigung = gruppe.isVereinigung();
    }

    this.priviligiert = this.privilegiert;
  }

  public boolean equalsGruppe(Gruppe gruppe) {
    return this.gruppe == gruppe || this.gruppe != null && this.gruppe.equals(gruppe);
  }
}
