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

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

/**
 * Schlüssel für zwei Personendaten, bei dem die Reihenfolge der Personendaten keine Rolle spielt
 */
public class PersonendatenPairKey implements Serializable {

  private static final long serialVersionUID = 1L;

  private final Personendaten one;

  private final Personendaten another;

  public PersonendatenPairKey(Personendaten one, Personendaten another) {
    super();

    this.one = one;
    this.another = another;
  }

  @Override
  public int hashCode() {
    return one.hashCode() + another.hashCode();
  }

  @Override
  public boolean equals(Object obj) {
    if (!(obj instanceof PersonendatenPairKey)) {
      return false;
    }

    PersonendatenPairKey other = (PersonendatenPairKey) obj;

    return Objects.equals(one, other.one) && Objects.equals(another, other.another) || Objects.equals(one, other.another) && Objects.equals(another, other.one);
  }
}
