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

      Link link = (Link) o;

      if (packages != null ? !packages.equals(link.packages) : link.packages != null) {
        return false;
      }
      if (url != null ? !url.equals(link.url) : link.url != null) {
        return false;
      }

      return true;
    }
 @Override
 public int hashCode() {
   int result = packages != null ? packages.hashCode() : 0;
   result = 31 * result + (url != null ? url.hashCode() : 0);
   return result;
 }