Repository: wicket Updated Branches: refs/heads/master 9ed4849be -> 47aa1461d
WICKET-6362 HeaderItems with different PageParameters are treated as identical Implement proper #equals() and #hashCode() for all HeaderItems Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/47aa1461 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/47aa1461 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/47aa1461 Branch: refs/heads/master Commit: 47aa1461d58b9a5660fc11032db952ce4df36a33 Parents: 9ed4849 Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Thu May 11 21:04:28 2017 +0200 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Thu May 11 21:04:28 2017 +0200 ---------------------------------------------------------------------- .../AbstractJavaScriptReferenceHeaderItem.java | 19 +++++++++++++++++++ .../wicket/markup/head/CssContentHeaderItem.java | 14 ++++++++------ .../apache/wicket/markup/head/CssHeaderItem.java | 18 ++++++++++++++++++ .../markup/head/CssReferenceHeaderItem.java | 15 ++++++++++----- .../markup/head/CssUrlReferenceHeaderItem.java | 14 +++++++++----- .../markup/head/JavaScriptContentHeaderItem.java | 15 +++++++++------ .../wicket/markup/head/JavaScriptHeaderItem.java | 18 ++++++++++++++++++ .../head/JavaScriptReferenceHeaderItem.java | 15 ++++++++++----- .../head/JavaScriptUrlReferenceHeaderItem.java | 15 +++++++++------ .../wicket/markup/head/MetaDataHeaderItem.java | 16 +++++++++++----- .../wicket/markup/head/OnDomReadyHeaderItem.java | 12 +++++++----- .../wicket/markup/head/OnEventHeaderItem.java | 18 +++++++++--------- .../wicket/markup/head/OnLoadHeaderItem.java | 15 ++++++++------- .../wicket/markup/head/PriorityHeaderItem.java | 16 ++++++++-------- .../wicket/markup/head/StringHeaderItem.java | 14 ++++++++------ .../markup/head/filter/FilteredHeaderItem.java | 15 ++++++++------- .../wicket/http2/markup/head/PushHeaderItem.java | 19 +++++++++++++++++++ .../AbstractAutoCompleteBehavior.java | 16 ++++++++++++++++ 18 files changed, 204 insertions(+), 80 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/AbstractJavaScriptReferenceHeaderItem.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/head/AbstractJavaScriptReferenceHeaderItem.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/AbstractJavaScriptReferenceHeaderItem.java index 06f898d..de85ad8 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/head/AbstractJavaScriptReferenceHeaderItem.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/AbstractJavaScriptReferenceHeaderItem.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.markup.head; +import java.util.Objects; + /** * A {@link org.apache.wicket.markup.head.HeaderItem} that supports <em>async</em>, * <em>defer</em> and <em>charset</em> attributes @@ -86,4 +88,21 @@ public abstract class AbstractJavaScriptReferenceHeaderItem extends JavaScriptHe this.charset = charset; return this; } + + @Override + public boolean equals(Object o) + { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + AbstractJavaScriptReferenceHeaderItem that = (AbstractJavaScriptReferenceHeaderItem) o; + return async == that.async && + defer == that.defer && + Objects.equals(charset, that.charset); + } + + @Override + public int hashCode() + { + return Objects.hash(async, defer, charset); + } } http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/CssContentHeaderItem.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/head/CssContentHeaderItem.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/CssContentHeaderItem.java index 80c3609..0367f8d 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/head/CssContentHeaderItem.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/CssContentHeaderItem.java @@ -18,6 +18,7 @@ package org.apache.wicket.markup.head; import java.util.Arrays; import java.util.Collections; +import java.util.Objects; import org.apache.wicket.request.Response; import org.apache.wicket.core.util.string.CssUtils; @@ -90,16 +91,17 @@ public class CssContentHeaderItem extends CssHeaderItem } @Override - public int hashCode() + public boolean equals(Object o) { - return getCss().hashCode(); + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + CssContentHeaderItem that = (CssContentHeaderItem) o; + return Objects.equals(css, that.css); } @Override - public boolean equals(Object obj) + public int hashCode() { - if (obj instanceof CssContentHeaderItem) - return ((CssContentHeaderItem)obj).getCss().equals(getCss()); - return false; + return Objects.hash(css); } } http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/CssHeaderItem.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/head/CssHeaderItem.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/CssHeaderItem.java index aab17c9..d2f05ef 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/head/CssHeaderItem.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/CssHeaderItem.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.markup.head; +import java.util.Objects; + import org.apache.wicket.core.request.handler.IPartialPageRequestHandler; import org.apache.wicket.core.util.string.CssUtils; import org.apache.wicket.request.Response; @@ -296,4 +298,20 @@ public abstract class CssHeaderItem extends HeaderItem } response.write("\n"); } + + @Override + public boolean equals(Object o) + { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + CssHeaderItem that = (CssHeaderItem) o; + return Objects.equals(condition, that.condition) && + Objects.equals(markupId, that.markupId); + } + + @Override + public int hashCode() + { + return Objects.hash(condition, markupId); + } } http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/CssReferenceHeaderItem.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/head/CssReferenceHeaderItem.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/CssReferenceHeaderItem.java index ee23131..0e0c1ce 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/head/CssReferenceHeaderItem.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/CssReferenceHeaderItem.java @@ -18,6 +18,7 @@ package org.apache.wicket.markup.head; import java.util.Arrays; import java.util.List; +import java.util.Objects; import org.apache.wicket.request.IRequestHandler; import org.apache.wicket.request.Response; @@ -128,14 +129,18 @@ public class CssReferenceHeaderItem extends CssHeaderItem implements IReferenceH @Override public int hashCode() { - return getReference().hashCode(); + return Objects.hash(super.hashCode(), reference, media, pageParameters); } @Override - public boolean equals(Object obj) + public boolean equals(Object o) { - if (obj instanceof CssReferenceHeaderItem) - return ((CssReferenceHeaderItem)obj).getReference().equals(getReference()); - return false; + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + if (!super.equals(o)) return false; + CssReferenceHeaderItem that = (CssReferenceHeaderItem) o; + return Objects.equals(reference, that.reference) && + Objects.equals(media, that.media) && + Objects.equals(pageParameters, that.pageParameters); } } http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/CssUrlReferenceHeaderItem.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/head/CssUrlReferenceHeaderItem.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/CssUrlReferenceHeaderItem.java index 0421668..386fa65 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/head/CssUrlReferenceHeaderItem.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/CssUrlReferenceHeaderItem.java @@ -17,6 +17,7 @@ package org.apache.wicket.markup.head; import java.util.Arrays; +import java.util.Objects; import org.apache.wicket.request.Response; import org.apache.wicket.request.UrlUtils; @@ -90,14 +91,17 @@ public class CssUrlReferenceHeaderItem extends CssHeaderItem @Override public int hashCode() { - return getUrl().hashCode(); + return Objects.hash(super.hashCode(), url, media); } @Override - public boolean equals(Object obj) + public boolean equals(Object o) { - if (obj instanceof CssUrlReferenceHeaderItem) - return ((CssUrlReferenceHeaderItem)obj).getUrl().equals(getUrl()); - return false; + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + if (!super.equals(o)) return false; + CssUrlReferenceHeaderItem that = (CssUrlReferenceHeaderItem) o; + return Objects.equals(url, that.url) && + Objects.equals(media, that.media); } } http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptContentHeaderItem.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptContentHeaderItem.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptContentHeaderItem.java index a514e18..2b3f8d5 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptContentHeaderItem.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptContentHeaderItem.java @@ -18,6 +18,7 @@ package org.apache.wicket.markup.head; import java.util.Arrays; import java.util.Collections; +import java.util.Objects; import org.apache.wicket.request.Response; import org.apache.wicket.core.util.string.JavaScriptUtils; @@ -91,16 +92,18 @@ public class JavaScriptContentHeaderItem extends JavaScriptHeaderItem } @Override - public int hashCode() + public boolean equals(Object o) { - return getJavaScript().hashCode(); + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + if (!super.equals(o)) return false; + JavaScriptContentHeaderItem that = (JavaScriptContentHeaderItem) o; + return Objects.equals(javaScript, that.javaScript); } @Override - public boolean equals(Object obj) + public int hashCode() { - if (obj instanceof JavaScriptContentHeaderItem) - return ((JavaScriptContentHeaderItem)obj).getJavaScript().equals(getJavaScript()); - return false; + return Objects.hash(super.hashCode(), javaScript); } } http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptHeaderItem.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptHeaderItem.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptHeaderItem.java index 920ba5d..0b43443 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptHeaderItem.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptHeaderItem.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.markup.head; +import java.util.Objects; + import org.apache.wicket.core.request.handler.IPartialPageRequestHandler; import org.apache.wicket.core.util.string.JavaScriptUtils; import org.apache.wicket.request.Response; @@ -371,4 +373,20 @@ public abstract class JavaScriptHeaderItem extends HeaderItem response.write("<![endif]-->\n"); } } + + @Override + public boolean equals(Object o) + { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + JavaScriptHeaderItem that = (JavaScriptHeaderItem) o; + return Objects.equals(condition, that.condition) && + Objects.equals(markupId, that.markupId); + } + + @Override + public int hashCode() + { + return Objects.hash(condition, markupId); + } } http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptReferenceHeaderItem.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptReferenceHeaderItem.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptReferenceHeaderItem.java index f130149..ca52cfb 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptReferenceHeaderItem.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptReferenceHeaderItem.java @@ -20,6 +20,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import org.apache.wicket.core.util.lang.WicketObjects; import org.apache.wicket.request.IRequestHandler; import org.apache.wicket.request.Response; import org.apache.wicket.request.cycle.RequestCycle; @@ -28,6 +29,7 @@ import org.apache.wicket.request.mapper.parameter.PageParameters; import org.apache.wicket.request.resource.ResourceReference; import org.apache.wicket.resource.bundles.IResourceBundle; import org.apache.wicket.util.lang.Args; +import org.apache.wicket.util.lang.Objects; import org.apache.wicket.util.string.Strings; /** @@ -133,14 +135,17 @@ public class JavaScriptReferenceHeaderItem extends AbstractJavaScriptReferenceHe @Override public int hashCode() { - return getReference().hashCode(); + return java.util.Objects.hash(super.hashCode(), reference, pageParameters); } @Override - public boolean equals(Object obj) + public boolean equals(Object o) { - if (obj instanceof JavaScriptReferenceHeaderItem) - return ((JavaScriptReferenceHeaderItem)obj).getReference().equals(getReference()); - return false; + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + if (!super.equals(o)) return false; + JavaScriptReferenceHeaderItem that = (JavaScriptReferenceHeaderItem) o; + return java.util.Objects.equals(reference, that.reference) && + java.util.Objects.equals(pageParameters, that.pageParameters); } } http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptUrlReferenceHeaderItem.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptUrlReferenceHeaderItem.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptUrlReferenceHeaderItem.java index fb4caf9..9c7bdbf 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptUrlReferenceHeaderItem.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/JavaScriptUrlReferenceHeaderItem.java @@ -18,6 +18,7 @@ package org.apache.wicket.markup.head; import java.util.Arrays; import java.util.Collections; +import java.util.Objects; import org.apache.wicket.request.Response; import org.apache.wicket.request.UrlUtils; @@ -91,16 +92,18 @@ public class JavaScriptUrlReferenceHeaderItem extends AbstractJavaScriptReferenc } @Override - public int hashCode() + public boolean equals(Object o) { - return getUrl().hashCode(); + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + if (!super.equals(o)) return false; + JavaScriptUrlReferenceHeaderItem that = (JavaScriptUrlReferenceHeaderItem) o; + return Objects.equals(url, that.url); } @Override - public boolean equals(Object obj) + public int hashCode() { - if (obj instanceof JavaScriptUrlReferenceHeaderItem) - return ((JavaScriptUrlReferenceHeaderItem)obj).getUrl().equals(getUrl()); - return false; + return Objects.hash(super.hashCode(), url); } } http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/MetaDataHeaderItem.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/head/MetaDataHeaderItem.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/MetaDataHeaderItem.java index 35b3cbd..1835a75 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/head/MetaDataHeaderItem.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/MetaDataHeaderItem.java @@ -20,6 +20,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.Objects; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; @@ -29,7 +30,7 @@ import org.apache.wicket.util.string.Strings; import org.apache.wicket.util.value.ValueMap; /** - * {@link HeaderItem} for meta informations such as <meta> tags or + * {@link HeaderItem} for meta information such as <meta> tags or * canonical <link> * * @author andrea del bene @@ -219,16 +220,21 @@ public class MetaDataHeaderItem extends HeaderItem return headerItem; } - + @Override - public boolean equals(Object obj) + public boolean equals(Object o) { - return obj instanceof MetaDataHeaderItem && ((MetaDataHeaderItem) obj).generateString().equals(generateString()); + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + MetaDataHeaderItem that = (MetaDataHeaderItem) o; + return Objects.equals(tagAttributes, that.tagAttributes) && + Objects.equals(tagMinimizedAttributes, that.tagMinimizedAttributes) && + Objects.equals(tagName, that.tagName); } @Override public int hashCode() { - return generateString().hashCode(); + return Objects.hash(tagAttributes, tagMinimizedAttributes, tagName); } } http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/OnDomReadyHeaderItem.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/head/OnDomReadyHeaderItem.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/OnDomReadyHeaderItem.java index 9d3d5d8..45ec472 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/head/OnDomReadyHeaderItem.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/OnDomReadyHeaderItem.java @@ -18,6 +18,7 @@ package org.apache.wicket.markup.head; import java.util.Collections; import java.util.List; +import java.util.Objects; import org.apache.wicket.Application; import org.apache.wicket.request.Response; @@ -103,15 +104,16 @@ public class OnDomReadyHeaderItem extends HeaderItem @Override public int hashCode() { - return getJavaScript().hashCode(); + return Objects.hash(javaScript); } @Override - public boolean equals(Object obj) + public boolean equals(Object o) { - if (obj instanceof OnDomReadyHeaderItem) - return ((OnDomReadyHeaderItem)obj).getJavaScript().equals(getJavaScript()); - return false; + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + OnDomReadyHeaderItem that = (OnDomReadyHeaderItem) o; + return Objects.equals(javaScript, that.javaScript); } @Override http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/OnEventHeaderItem.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/head/OnEventHeaderItem.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/OnEventHeaderItem.java index b171616..b69e7a4 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/head/OnEventHeaderItem.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/OnEventHeaderItem.java @@ -19,6 +19,7 @@ package org.apache.wicket.markup.head; import java.util.Collections; import java.util.List; import java.util.Locale; +import java.util.Objects; import org.apache.wicket.Application; import org.apache.wicket.core.util.string.JavaScriptUtils; @@ -161,19 +162,18 @@ public class OnEventHeaderItem extends HeaderItem @Override public int hashCode() { - return getTarget().hashCode() ^ getEvent().hashCode() ^ getJavaScript().hashCode(); + return Objects.hash(target, event, javaScript); } @Override - public boolean equals(Object obj) + public boolean equals(Object o) { - if (obj instanceof OnEventHeaderItem) - { - OnEventHeaderItem other = (OnEventHeaderItem)obj; - return other.getTarget().equals(getTarget()) && other.getEvent().equals(getEvent()) && - other.getJavaScript().equals(getJavaScript()); - } - return false; + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + OnEventHeaderItem that = (OnEventHeaderItem) o; + return Objects.equals(target, that.target) && + Objects.equals(event, that.event) && + Objects.equals(javaScript, that.javaScript); } @Override http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/OnLoadHeaderItem.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/head/OnLoadHeaderItem.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/OnLoadHeaderItem.java index 76e45c0..51e34bf 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/head/OnLoadHeaderItem.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/OnLoadHeaderItem.java @@ -18,13 +18,13 @@ package org.apache.wicket.markup.head; import java.util.Collections; import java.util.List; +import java.util.Objects; import org.apache.wicket.Application; import org.apache.wicket.core.util.string.JavaScriptUtils; import org.apache.wicket.request.Response; import org.apache.wicket.request.resource.ResourceReference; import org.apache.wicket.settings.JavaScriptLibrarySettings; -import org.apache.wicket.util.lang.Args; import org.apache.wicket.util.string.Strings; /** @@ -102,17 +102,18 @@ public class OnLoadHeaderItem extends HeaderItem } @Override - public int hashCode() + public boolean equals(Object o) { - return getJavaScript().hashCode(); + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + OnLoadHeaderItem that = (OnLoadHeaderItem) o; + return Objects.equals(javaScript, that.javaScript); } @Override - public boolean equals(Object obj) + public int hashCode() { - if (obj instanceof OnLoadHeaderItem) - return ((OnLoadHeaderItem)obj).getJavaScript().equals(getJavaScript()); - return false; + return Objects.hash(javaScript); } @Override http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/PriorityHeaderItem.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/head/PriorityHeaderItem.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/PriorityHeaderItem.java index 70a72dc..93813e0 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/head/PriorityHeaderItem.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/PriorityHeaderItem.java @@ -18,6 +18,7 @@ package org.apache.wicket.markup.head; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import org.apache.wicket.request.Response; @@ -90,19 +91,18 @@ public class PriorityHeaderItem extends HeaderItem implements IWrappedHeaderItem } @Override - public int hashCode() + public boolean equals(Object o) { - return getWrapped().hashCode(); + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PriorityHeaderItem that = (PriorityHeaderItem) o; + return Objects.equals(wrapped, that.wrapped); } @Override - public boolean equals(Object obj) + public int hashCode() { - if (obj instanceof PriorityHeaderItem) - { - return ((PriorityHeaderItem)obj).getWrapped().equals(getWrapped()); - } - return false; + return Objects.hash(wrapped); } @Override http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/StringHeaderItem.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/head/StringHeaderItem.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/StringHeaderItem.java index 7d7426f..c1502ff 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/head/StringHeaderItem.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/StringHeaderItem.java @@ -17,6 +17,7 @@ package org.apache.wicket.markup.head; import java.util.Collections; +import java.util.Objects; import org.apache.wicket.request.Response; import org.apache.wicket.util.lang.Args; @@ -80,16 +81,17 @@ public class StringHeaderItem extends HeaderItem } @Override - public int hashCode() + public boolean equals(Object o) { - return getString().hashCode(); + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + StringHeaderItem that = (StringHeaderItem) o; + return Objects.equals(string, that.string); } @Override - public boolean equals(Object obj) + public int hashCode() { - if (obj instanceof StringHeaderItem) - return ((StringHeaderItem)obj).getString().equals(getString()); - return false; + return Objects.hash(string); } } http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/FilteredHeaderItem.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/FilteredHeaderItem.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/FilteredHeaderItem.java index 120f41d..18745a2 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/FilteredHeaderItem.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/FilteredHeaderItem.java @@ -18,6 +18,7 @@ package org.apache.wicket.markup.head.filter; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import org.apache.wicket.markup.head.HeaderItem; import org.apache.wicket.markup.head.IWrappedHeaderItem; @@ -109,17 +110,17 @@ public class FilteredHeaderItem extends HeaderItem implements IWrappedHeaderItem @Override public int hashCode() { - return getWrapped().hashCode(); + return Objects.hash(wrapped, filterName); } @Override - public boolean equals(Object obj) + public boolean equals(Object o) { - if (obj instanceof FilteredHeaderItem) - { - return ((FilteredHeaderItem)obj).getWrapped().equals(getWrapped()); - } - return false; + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + FilteredHeaderItem that = (FilteredHeaderItem) o; + return Objects.equals(wrapped, that.wrapped) && + Objects.equals(filterName, that.filterName); } @Override http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java ---------------------------------------------------------------------- diff --git a/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java b/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java index bb4c985..1660ef7 100644 --- a/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java +++ b/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java @@ -24,6 +24,7 @@ import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; import java.util.Date; import java.util.List; +import java.util.Objects; import java.util.Set; import java.util.TreeSet; @@ -414,4 +415,22 @@ public class PushHeaderItem extends HeaderItem } return (HttpServletRequest)assumedHttpServletRequest; } + + @Override + public boolean equals(Object o) + { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PushHeaderItem that = (PushHeaderItem) o; + return Objects.equals(urls, that.urls) && + Objects.equals(pageWebResponse, that.pageWebResponse) && + Objects.equals(pageWebRequest, that.pageWebRequest) && + Objects.equals(page, that.page); + } + + @Override + public int hashCode() + { + return Objects.hash(urls, pageWebResponse, pageWebRequest, page); + } } http://git-wip-us.apache.org/repos/asf/wicket/blob/47aa1461/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java ---------------------------------------------------------------------- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java index 82ed509..7164ee4 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java @@ -19,6 +19,7 @@ package org.apache.wicket.extensions.ajax.markup.html.autocomplete; import java.util.Arrays; import java.util.List; +import java.util.Objects; import org.apache.wicket.Application; import org.apache.wicket.Component; @@ -92,6 +93,21 @@ public abstract class AbstractAutoCompleteBehavior extends AbstractDefaultAjaxBe getJavaScriptLibrarySettings().getWicketAjaxReference(); return Arrays.<HeaderItem>asList(JavaScriptHeaderItem.forReference(wicketAjaxReference)); } + + @Override + public boolean equals(Object o) + { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + WrappedHeaderItem that = (WrappedHeaderItem) o; + return Objects.equals(item, that.item); + } + + @Override + public int hashCode() + { + return Objects.hash(item); + } } public static final ResourceReference AUTOCOMPLETE_JS = new JavaScriptResourceReference(
