
package de.ivu.elect.interfaces.core;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;

@XmlAccessorType(XmlAccessType.FIELD)
public class ReferendumOption extends Wahlvorschlag {

  private static final long serialVersionUID = 1L;

  @XmlElement(required = true)
  private String label;

  @XmlElement(required = false)
  private String kurzbezeichnung;

  // required=false für Abwärtskompatibilität
  @XmlElement(required = false)
  private Long position;

  public ReferendumOption() {
    super();
  }

  public String getLabel() {
    return label;
  }

  public void setLabel(String label) {
    this.label = label;
  }

  public String getKurzbezeichnung() {
    return kurzbezeichnung;
  }

  public void setKurzbezeichnung(String kurzbezeichnung) {
    this.kurzbezeichnung = kurzbezeichnung;
  }

  public Long getPosition() {
    return position;
  }

  public void setPosition(Long position) {
    this.position = position;
  }

  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }

    if (o == null || getClass() != o.getClass()) {
      return false;
    }

    if (!super.equals(o)) {
      return false;
    }

    ReferendumOption that = (ReferendumOption) o;

    if (!position.equals(that.position)) {
      return false;
    }

    return true;
  }

  @Override
  public int hashCode() {
    int result = super.hashCode();
    result = 31 * result + position.hashCode();
    return result;
  }
}
