WebUrlImpl extends UrlImpl implements WebUrl { @Override public boolean equals(Object object) { if (object instanceof WebUrlImpl) { WebUrlImpl url = (WebUrlImpl) object; if (!super.equals(object)) return false; if (version != url.getVersion()) return false; if (language == null && url.getLanguage() != null || (language != null && !language.equals(url.getLanguage()))) return false; if (!getFlavor().equals(url.getFlavor())) return false; if (!site.equals(url.getSite())) return false; return true; } else if (object instanceof Path) { return super.equals(object); } return false; } WebUrlImpl(Site site, String path);  WebUrlImpl(Site site, Path url);  WebUrlImpl(Site site, Path url, String path);  WebUrlImpl(Site site, String path, long version);  WebUrlImpl(Site site, String path, long version, RequestFlavor flavor);  WebUrlImpl(Site site, String path, long version, RequestFlavor flavor,
      Language language);  WebUrlImpl(WebUrlImpl url, String path); Site getSite(); String getLink(); String getLink(long version); String getLink(Language language); String getLink(String flavor); String getLink(long version, Language language, String flavor); String normalize(); String normalize(boolean includeVersion, boolean includeLanguage,
      boolean includeFlavor); RequestFlavor getFlavor(); long getVersion(); Language getLanguage(); boolean hasLanguagePathSegment(); @Override int hashCode(); @Override boolean equals(Object object); @Override String toString();  }
@Test public void testEqualsObject() { assertTrue(liveUrl.equals(liveUrl)); assertTrue(flavoredLiveUrl.equals(flavoredLiveUrl)); assertTrue(flavoredLocalizedLiveUrl.equals(flavoredLocalizedLiveUrl)); assertFalse(liveUrl.equals(flavoredLiveUrl)); assertFalse(liveUrl.equals(flavoredLocalizedLiveUrl)); }