class Layer3Edge implements Comparable<Layer3Edge> {

  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (!(o instanceof Layer3Edge)) {
      return false;
    }
    Layer3Edge that = (Layer3Edge) o;
    return Objects.equals(_interfaceAddresses1, that._interfaceAddresses1)
        && Objects.equals(_interfaceAddresses2, that._interfaceAddresses2)
        && Objects.equals(_nodeInterface1, that._nodeInterface1)
        && Objects.equals(_nodeInterface2, that._nodeInterface2);
  }

  public  Layer3Edge(
      NodeInterfacePair nodeInterface1,
      NodeInterfacePair nodeInterface2,
      SortedSet<InterfaceAddress> interfaceAddresses1,
      SortedSet<InterfaceAddress> interfaceAddresses2);

}