package de.ivu.elect.interfaces.core;

import java.io.Serializable;
import java.util.Objects;

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

@XmlAccessorType(XmlAccessType.FIELD)
public class StandortReferenz implements Serializable {

  private static final long serialVersionUID = 1L;

  /**
   * HINT: Es gibt keinen Unique Key auf dem Standort, sodass wir hier keinen sinnvollen Anhaltspunkt haben, außer
   * (nur innerhalb der Datei) den PK zu verwenden.
   *
   * HINT (required = false): Für manche Elemente ist der Standort optional, dann gibt's keine ID.
   */
  @XmlElement(required = false)
  private Long id;

  public Long getId() {
    return id;
  }

  public void setId(Long id) {
    this.id = id;
  }

  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    StandortReferenz that = (StandortReferenz) o;
    return Objects.equals(id, that.id);
  }

  @Override
  public int hashCode() {
    return Objects.hash(id);
  }

  @Override
  public String toString() {
    return "StandortReferenz{" + "id=" + id + '}';
  }
}
