diff --git a/xml/impl/src/com/intellij/ide/browsers/LocalFileUrl.java b/xml/impl/src/com/intellij/ide/browsers/LocalFileUrl.java index 7307725b6082..026133e0278b 100644 --- a/xml/impl/src/com/intellij/ide/browsers/LocalFileUrl.java +++ b/xml/impl/src/com/intellij/ide/browsers/LocalFileUrl.java @@ -67,6 +67,11 @@ public final class LocalFileUrl implements Url { return path.equals(((LocalFileUrl)o).path); } + @Override + public boolean equalsIgnoreParameters(@Nullable Url url) { + return equals(url); + } + @Override public int hashCode() { return path.hashCode(); diff --git a/xml/impl/src/com/intellij/ide/browsers/UrlImpl.java b/xml/impl/src/com/intellij/ide/browsers/UrlImpl.java index 05fa403faf67..a54887877014 100644 --- a/xml/impl/src/com/intellij/ide/browsers/UrlImpl.java +++ b/xml/impl/src/com/intellij/ide/browsers/UrlImpl.java @@ -145,14 +145,24 @@ public final class UrlImpl implements Url { return false; } + UrlImpl url = (UrlImpl)o; + return equalsIgnoreParameters(url) && (parameters == null ? url.parameters == null : parameters.equals(url.parameters)); + } + + @Override + public boolean equalsIgnoreParameters(@Nullable Url o) { + if (this == o) { + return true; + } + if (!(o instanceof UrlImpl)) { + return false; + } + UrlImpl url = (UrlImpl)o; if (!scheme.equals(url.scheme)) { return false; } - if (authority != null ? !authority.equals(url.authority) : url.authority != null) { - return false; - } - if (parameters != null ? !parameters.equals(url.parameters) : url.parameters != null) { + if (authority == null ? url.authority != null : !authority.equals(url.authority)) { return false; } String decodedPath = getPath(); diff --git a/xml/openapi/src/com/intellij/ide/browsers/Url.java b/xml/openapi/src/com/intellij/ide/browsers/Url.java index 4320ee98c242..bc913d470a1c 100644 --- a/xml/openapi/src/com/intellij/ide/browsers/Url.java +++ b/xml/openapi/src/com/intellij/ide/browsers/Url.java @@ -25,4 +25,6 @@ public interface Url { @Nullable String getParametersPart(); + + boolean equalsIgnoreParameters(@Nullable Url url); }