class LocalUnitPair {

  Local local;
  Unit unit;

  /**
   * Constructs a LocalUnitPair from a Unit object and a Local object.
   *
   * @param local
   *          some Local
   * @param unit
   *          some Unit.
   */
  public LocalUnitPair(Local local, Unit unit) {
    this.local = local;
    this.unit = unit;
  }

  /**
   * Two LocalUnitPairs are equal iff they hold the same Unit objects and the same Local objects within them.
   *
   * @param other
   *          another LocalUnitPair
   * @return true if other contains the same objects as this.
   */
  @Override
  public boolean equals(Object other) {<FILL_FUNCTION_BODY>}

  @Override
  public int hashCode() {
    return local.hashCode() * 101 + unit.hashCode() + 17;
  }

  public Local getLocal() {
    return local;
  }

  public Unit getUnit() {
    return unit;
  }
}

    if (other instanceof LocalUnitPair) {
      LocalUnitPair temp = (LocalUnitPair) other;
      return temp.local == this.local && temp.unit == this.unit;
    } else {
      return false;
    }
  
<no_super_class>