Skip to content

Commit 88a3791

Browse files
committed
Improve equals methods
1 parent 1f7413d commit 88a3791

9 files changed

Lines changed: 25 additions & 45 deletions

File tree

src/main/java/com/yocto/yoclib/imap/protocol/ProtocolBinaryLiteral.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import java.nio.charset.StandardCharsets;
44
import java.util.Arrays;
55
import java.util.Base64;
6-
import java.util.Objects;
76

87
public class ProtocolBinaryLiteral extends ProtocolObject {
98

@@ -32,12 +31,7 @@ public ProtocolBinaryLiteral(String value){
3231
public boolean equals(Object o) {
3332
if (!(o instanceof ProtocolBinaryLiteral)) return false;
3433
ProtocolBinaryLiteral that = (ProtocolBinaryLiteral) o;
35-
return isNonSynchronizing == that.isNonSynchronizing && Objects.deepEquals(value, that.value);
36-
}
37-
38-
@Override
39-
public int hashCode() {
40-
return Objects.hash(Arrays.hashCode(value), isNonSynchronizing);
34+
return this.isNonSynchronizing == that.isNonSynchronizing && Arrays.equals(this.value, that.value);
4135
}
4236

4337
public byte[] getValue(){

src/main/java/com/yocto/yoclib/imap/protocol/ProtocolList.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package com.yocto.yoclib.imap.protocol;
22

33
import java.util.Arrays;
4-
import java.util.Objects;
5-
import java.util.stream.Collectors;
64

75
public class ProtocolList extends ProtocolObject {
86

@@ -16,12 +14,7 @@ public ProtocolList(ProtocolObject[] objects){
1614
public boolean equals(Object o) {
1715
if (!(o instanceof ProtocolList)) return false;
1816
ProtocolList that = (ProtocolList) o;
19-
return Objects.deepEquals(objects, that.objects);
20-
}
21-
22-
@Override
23-
public int hashCode() {
24-
return Arrays.hashCode(objects);
17+
return Arrays.deepEquals(this.objects, that.objects);
2518
}
2619

2720
public ProtocolObject[] getObjects() {

src/main/java/com/yocto/yoclib/imap/protocol/ProtocolLiteral.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package com.yocto.yoclib.imap.protocol;
22

3-
import java.util.Objects;
4-
53
public class ProtocolLiteral extends ProtocolString {
64

75
private final boolean isNonSynchronizing;
@@ -21,12 +19,7 @@ public boolean equals(Object o) {
2119
if (!(o instanceof ProtocolLiteral)) return false;
2220
if (!super.equals(o)) return false;
2321
ProtocolLiteral that = (ProtocolLiteral) o;
24-
return isNonSynchronizing == that.isNonSynchronizing;
25-
}
26-
27-
@Override
28-
public int hashCode() {
29-
return Objects.hash(super.hashCode(), isNonSynchronizing);
22+
return this.isNonSynchronizing == that.isNonSynchronizing;
3023
}
3124

3225
public boolean isNonSynchronizing(){

src/main/java/com/yocto/yoclib/imap/protocol/ProtocolSectionPartial.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,7 @@ public Integer getPartialLength() {
6262
public boolean equals(Object o) {
6363
if (!(o instanceof ProtocolSectionPartial)) return false;
6464
ProtocolSectionPartial that = (ProtocolSectionPartial) o;
65-
return Objects.equals(atom, that.atom) && Objects.equals(subordinate, that.subordinate) && Objects.equals(partialOffset, that.partialOffset) && Objects.equals(partialLength, that.partialLength);
66-
}
67-
68-
@Override
69-
public int hashCode() {
70-
return Objects.hash(atom, subordinate, partialOffset, partialLength);
65+
return Objects.equals(this.atom, that.atom) && Objects.equals(this.subordinate, that.subordinate) && Objects.equals(this.partialOffset, that.partialOffset) && Objects.equals(this.partialLength, that.partialLength);
7166
}
7267

7368
@Override

src/main/java/com/yocto/yoclib/imap/protocol/ProtocolString.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,7 @@ protected ProtocolString(String value){
1414
public boolean equals(Object o) {
1515
if (!(o instanceof ProtocolString)) return false;
1616
ProtocolString that = (ProtocolString) o;
17-
return Objects.equals(value, that.value);
18-
}
19-
20-
@Override
21-
public int hashCode() {
22-
return Objects.hashCode(value);
17+
return Objects.equals(this.value, that.value);
2318
}
2419

2520
public String getValue(){

src/main/java/com/yocto/yoclib/imap/protocol/ProtocolSubordinate.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package com.yocto.yoclib.imap.protocol;
22

33
import java.util.Arrays;
4-
import java.util.Objects;
5-
import java.util.stream.Collectors;
64

75
public class ProtocolSubordinate extends ProtocolObject {
86

@@ -20,12 +18,7 @@ public ProtocolObject[] getObjects(){
2018
public boolean equals(Object o) {
2119
if (!(o instanceof ProtocolSubordinate)) return false;
2220
ProtocolSubordinate that = (ProtocolSubordinate) o;
23-
return Objects.deepEquals(objects, that.objects);
24-
}
25-
26-
@Override
27-
public int hashCode() {
28-
return Arrays.hashCode(objects);
21+
return Arrays.deepEquals(this.objects, that.objects);
2922
}
3023

3124
@Override

src/test/java/com/yocto/yoclib/imap/tests/protocol/ProtocolAtomTest.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,24 @@
66

77
import static org.junit.jupiter.api.Assertions.assertEquals;
88
import static org.junit.jupiter.api.Assertions.assertFalse;
9+
import static org.junit.jupiter.api.Assertions.assertNotEquals;
910
import static org.junit.jupiter.api.Assertions.assertTrue;
1011

1112
public class ProtocolAtomTest {
1213

14+
@Test
15+
public void testEquals(){
16+
assertEquals(new ProtocolAtom("a"),new ProtocolAtom("a"));
17+
assertEquals(new ProtocolAtom("ab"),new ProtocolAtom("ab"));
18+
assertEquals(new ProtocolAtom("abc"),new ProtocolAtom("abc"));
19+
20+
assertNotEquals(new ProtocolAtom("a"),null);
21+
assertNotEquals(null,new ProtocolAtom("a"));
22+
23+
assertNotEquals(new ProtocolAtom("ab"),"ab");
24+
assertNotEquals("ab",new ProtocolAtom("ab"));
25+
}
26+
1327
@Test
1428
public void testGetValue(){
1529
assertEquals("a",new ProtocolAtom("a").getValue());

src/test/java/com/yocto/yoclib/imap/tests/protocol/ProtocolBinaryLiteralTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.yocto.yoclib.imap.tests.protocol;
22

33
import com.yocto.yoclib.imap.protocol.ProtocolBinaryLiteral;
4-
import com.yocto.yoclib.imap.protocol.ProtocolLiteral;
54

65
import org.junit.jupiter.api.Test;
76

src/test/java/com/yocto/yoclib/imap/tests/protocol/ProtocolListTest.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
package com.yocto.yoclib.imap.tests.protocol;
22

3-
import com.yocto.yoclib.imap.protocol.*;
3+
import com.yocto.yoclib.imap.protocol.ProtocolAtom;
4+
import com.yocto.yoclib.imap.protocol.ProtocolList;
5+
import com.yocto.yoclib.imap.protocol.ProtocolLiteral;
6+
import com.yocto.yoclib.imap.protocol.ProtocolObject;
7+
import com.yocto.yoclib.imap.protocol.ProtocolQuoted;
48

59
import org.junit.jupiter.api.Test;
610

0 commit comments

Comments
 (0)