URL { @Override public boolean equals(Object object) { if (object == null) { return false; } if (object instanceof URL) { URL otherURL = (URL)object; String otherURLString = otherURL.toString(); return this.toString().equals(otherURLString); } else if (object instanceof String) { String otherURLString = (String)object; return this.toString().equals(otherURLString); } else { return false; } } URL(); @Override String toString(); void setProtocol(String protocol); String getProtocol(); void setUsername(String username); String getUsername(); void setPassword(String password); String getPassword(); void setHost(String host); String getHost(); void setPort(Integer port); Integer getPort(); void setPath(String path); String getPath(); String getQuery(); void setQuery(String value); String getQueryProperty(String name); Properties getQueryProperties(); static void parseQueryProperties(String q, Properties props); @Override boolean equals(Object object); @Override int hashCode();  }
@Test public void testEquals() throws Exception { URL url0 = URLParser.parse("http: URL url1 = URLParser.parse("http: Assert.assertEquals(url0, url1); }