From 926bf553392c5b585579aaade7f0b7140c3f2575 Mon Sep 17 00:00:00 2001 From: Oliver Drotbohm Date: Wed, 20 Feb 2019 17:33:36 +0100 Subject: [PATCH] #825 - Polishing. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added StringLinkRelation.hashCode() to be consistent with ….equals(…). Original pull request: #826. --- .../hateoas/StringLinkRelation.java | 17 ++++++++++++++++- .../hateoas/LinkRelationUnitTest.java | 1 + 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/springframework/hateoas/StringLinkRelation.java b/src/main/java/org/springframework/hateoas/StringLinkRelation.java index a5b01e56..ac018cfe 100644 --- a/src/main/java/org/springframework/hateoas/StringLinkRelation.java +++ b/src/main/java/org/springframework/hateoas/StringLinkRelation.java @@ -21,6 +21,7 @@ import lombok.RequiredArgsConstructor; import lombok.Value; import java.io.Serializable; +import java.util.Locale; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -76,6 +77,19 @@ class StringLinkRelation implements LinkRelation, Serializable { return value(); } + /* + * (non-Javadoc) + * @see java.lang.Object#hashCode() + */ + @Override + public int hashCode() { + return relation.toLowerCase(Locale.US).hashCode(); + } + + /* + * (non-Javadoc) + * @see java.lang.Object#equals(java.lang.Object) + */ @Override public boolean equals(Object o) { @@ -86,8 +100,9 @@ class StringLinkRelation implements LinkRelation, Serializable { if (o == null || getClass() != o.getClass()) { return false; } - + StringLinkRelation that = (StringLinkRelation) o; + return this.relation.equalsIgnoreCase(that.relation); } } diff --git a/src/test/java/org/springframework/hateoas/LinkRelationUnitTest.java b/src/test/java/org/springframework/hateoas/LinkRelationUnitTest.java index f38ec9f0..7f4fca18 100644 --- a/src/test/java/org/springframework/hateoas/LinkRelationUnitTest.java +++ b/src/test/java/org/springframework/hateoas/LinkRelationUnitTest.java @@ -54,6 +54,7 @@ public class LinkRelationUnitTest { assertThat(LinkRelation.of("self")).isEqualTo(LinkRelation.of("SELF")); assertThat(LinkRelation.of("SeLf")).isEqualTo(IanaLinkRelations.SELF); + assertThat(LinkRelation.of("self").isSameAs(LinkRelation.of("SELF"))).isTrue(); assertThat(IanaLinkRelations.SELF.isSameAs(LinkRelation.of("seLF"))).isTrue(); }